Dynamic CMS section system
A reusable section renderer that maps any content type to a homepage layout.
- Category
- CMS & Web
- Tech stack
- Next.js
- React
- MySQL
- Metrics
- 0 hardcoded homepage content types
- Role
- Design + build
Content
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.
Problem
Each new content type used to need custom homepage code before it could appear on the site.
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.
Limitations
Genericity has a ceiling: a section that needs truly bespoke art direction still needs a developer. That trade is accepted, not accidental.
Outcome
Any published content type can be mapped to a homepage section with no code changes.
How this was built
Built with AI assistance (Claude Code). The architecture, the decisions and the trade-offs are mine; a lot of the implementation was written in pair with the model. I work this way deliberately — it's why one person can run a system this size — and the reasoning behind every call here is documented above.