Personal portfolio of Oleh Vanin — live at exsesx.dev. Built with Next.js 16 and React 19, deployed on Vercel.
- Next.js 16 — App Router, React Compiler, typed routes, experimental View Transitions
- React 19 + Tailwind CSS 4
- Base UI and motion for interaction and animation
- TypeScript, Biome (lint + format)
- Bun workspaces (the root site plus a
remotion/motion-design package)
bun install
bun devThe CV endpoint (/api/resume/pdf) proxies a resume from RXResume and needs
RXRESUME_API_KEY set — copy .env.example to .env and fill it in.
bun run check # Biome lint + format
bun run build # production build (runs TypeScript validation)CI runs both on every push to main and on pull requests
(.github/workflows/ci.yml).
bun run build
bun startsrc/app— routes:/,/projects,/project/[slug], and the/api/resume/pdfCV endpointsrc/components— UI componentssrc/lib— project data, theme logic, navigation, and other helpersremotion/— Remotion motion presentation (bun run remotion:studio,bun run remotion:render)scripts/—generate:social-images(OG images →public/images/og/) andgenerate:sitemap; both run manually, outputs are committedplans/— implementation plans generated by the improve advisor workflow
See AGENTS.md for pull-request conventions and Vercel identifiers used by agent workflows.