Privacy

Accept optional first-party analytics or decline. Functional journey and sound preferences stay on this device.

Read the privacy notice

Open to talks and workshops

All projects
CMS & Webstable

Dynamic CMS section system

A reusable section renderer that maps any content type to a homepage layout.

The problem

Each new content type used to need custom homepage code before it could appear on the site.

My role

Design + build

Dynamic CMS section system

A reusable section renderer that maps any CMS content type to a homepage layout. The public homepage builds its sections from the registered content types at request time, so adding or archiving a type reshapes the site without touching frontend code.

Key decisions

Sections are resolved from the content-type registry at request time, not generated at build time — a codegen step would have reintroduced exactly the coupling this system exists to remove. The renderer is deliberately generic: per-type presentation lives in section settings data, so a type can look different without earning custom code. And the core claim was tested literally rather than assumed — a throwaway content type was registered, showed up on the homepage with no code change, and was deleted again.

Outcome

Any published content type can be mapped to a homepage section with no code changes.

  • 0 hardcoded homepage content types

Limitations

Genericity has a ceiling: a section that needs truly bespoke art direction still needs a developer. That trade is accepted, not accidental.

Stack

Next.jsReactMySQL

Evidence

Published Last updated