Frontend rebuild for TINE Kjøkken (Sep–Dec 2024) — Next.js on Enonic XP with dynamic routing, ISR, and structured recipe data. One of Norway’s busiest food sites.
Editors publish in Enonic; the Next layer handles speed and templates. Live at tine.no/kjokken — unglamorous infrastructure a lot of people use every week.
TINE Kjøkken is where a lot of Norway looks up dinner — thousands of recipes, seasonal campaigns, and editorial pages with serious traffic. From September to December 2024 I rebuilt the frontend in Next.js while Enonic XP stayed the content backend.
The goal was not a greenfield recipe app. Editors already worked in Enonic; the new layer had to respect that workflow, ship on a fixed timeline, and feel faster and more maintainable than what it replaced — without breaking URLs people bookmark.
Replace the old presentation stack with a modern Next.js frontend that talks to Enonic as a headless CMS. Recipe detail pages, category hubs, campaign landings, and all the supporting content types had to render from Enonic data — with performance and SEO appropriate for one of Norway’s most visited food destinations.
Next.js on the frontend, Enonic XP as the headless CMS and API layer. My work sat in the glue between them: fetching, normalising, and rendering Enonic content — plus the routing and caching strategy that keeps thousands of pages from feeling heavy.
Scale and editorial independence pull in opposite directions. Every shortcut that hard-coded a layout would come back as a support ticket when marketing launched something new. The win was a frontend flexible enough for editors to publish a soup without calling a developer — and fast enough that you never notice the machinery behind tine.no/kjokken.
Four months, then it went live. Unglamorous work that a lot of people touch every week — and that is the point. Headless rebuilds are less about flashy components and more about routing, cache boundaries, and content contracts that survive the next campaign.
Live site: tine.no/kjokken