Tuukka Pitkänen
Back to notes

Rebuilding the portfolio on Next.js 16

next.jsportfolioi18n

The old portfolio worked, but every new project meant touching layout code or duplicating HTML patterns. I wanted a system where structure stays stable and content moves through typed data and translation files.

Next.js 16 with the App Router gave me static project and note routes, server components for SEO, and a contact API without bolting on a separate backend. next-intl keeps Finnish as the default while English stays first-class — same URLs, same components, different message files.

Projects now split into base data (images, slugs, categories) and locale copy (titles, case studies, metadata). That separation makes it easy to add a project once and ship it in both languages on the next deploy.