A Design-Agnostic Next.js Blog

The first technical shape of this site: content, routing, categories, tags, and theme tokens kept apart.

The site begins with a simple rule: content structure and visual design should not be tangled together.

Posts live as MDX files with frontmatter. Categories and tags are modeled separately from the components that render them. Visual choices are collected as CSS custom properties so a future theme can change the aesthetic without rewriting the blog.

Early tradeoffs

Local MDX keeps the first version small and easy to reason about. It also keeps writing close to version control, which is a good fit for a developer blog.

If the site later needs editorial workflows, drafts, or multi-author permissions, the content layer can move to a CMS without changing the route model.