Building a headless CMS on Hugo
A classic monolithic CMS bundles authoring, storage and rendering into one running process. That is convenient — until you start caring about performance, security and scaling. The headless approach decouples those three responsibilities, and that decoupling is exactly what HugoPress is built on. Three layers, three responsibilities The editor — authors write in a block editor (Editor.js). The output is clean structured JSON, not WYSIWYG HTML soup. The domain layer — the CMS turns blocks into finished HTML via the BlockRenderingPipeline. The theme itself knows nothing about Editor.js. Delivery — the rendered content is written as content/<lang>/... and committed to Git. Hugo builds a static site from it. The theme does not know Editor.js. All renderers live on the CMS side, which keeps the template dumb, portable and easy to test.