A behind-the-scenes breakdown of this portfolio: Next.js 16.1.3 App Router, next-intl (he default + /en), Sanity CMS, Clerk auth for AI chat, Resend email, and full SEO with sitemap/robots/JSON-LD — optimized for static builds.
This portfolio is built as a static, SEO-first site with carefully-scoped dynamic functionality (AI chat + contact form). The goal is simple: fast UX, predictable rendering, and content managed from Sanity.
- Next.js 16.1.3 App Router + React 19
- Static generation (SSG) for all public pages
- Bilingual routing (he default without prefix, /en for English)
- CMS-driven content via Sanity (skills/services/projects/FAQ/blog)
- Clerk authentication only for the AI chat experience
- CI/CD + Preview deploys on Vercel
- Full SEO: metadata, OpenGraph/Twitter, JSON-LD, sitemap, robots
1) App Router structure keeps the site layout consistent, while each route segment can generate metadata.
2) next-intl handles locale routing — Hebrew as default without a prefix, English under /en.
3) Sanity is the source of truth; the UI renders what’s in the CMS (no “demo data” in code).
4) Clerk is used for auth and UI localization; AI chat is protected behind sign-in.
5) Performance: heavy UI widgets (chatkit/map/charts/animations) are loaded only when needed.