cavera

Front-end developer (UI designer too)

This portfolio's CMS

Architecture

This portfolio's CMS

This site needed to move from hand-edited TypeScript to a real CMS without a rebuild — Notion already held 31 projects, but the redesign only recognized four hardcoded ones. The constraint: every page had to keep working, in two languages, whether or not Notion was reachable.

I scoped and built the content boundary myself: one module every route asks for content, a resolved type that a Notion mapper and a static file both satisfy, and the localization rules that decide what gets to claim a translation.

A site that can be handed a working Notion database and switch content sources with one environment variable — no code change, and no risk of a half-translated page announcing itself as translated. This page is itself the proof: it's served straight from Notion, the same pipeline as everything else here. Four projects shipped with full bilingual content first, and the rest are being filled in as their case studies get written.

Next.js

React JS