Now in beta

Build your own site, from JSON.

site-gen-app turns theme + page + post JSON into themed, responsive HTML. No frameworks. No build pipeline. Just Bun and a folder.

Why JSON?

Because content is data, not code. Define your design tokens, your pages, and your posts as plain JSON. The generator does the rest — composing blocks, applying themes, emitting clean HTML.

Use any tool to write the JSON: a CMS, a script, an LLM, an editor. The generator doesn't care.

Composable

Block-based pages

Each page is a list of typed blocks. Adding a new block type = one render function.

Themeable

Design tokens

Define colours, fonts, spacing, radius, shadows once. Every block consumes them via CSS vars.

Responsive

Grids that work

Named layouts define column counts per breakpoint. Mobile, tablet, desktop, extra-large.

Skinnable

Color schemes

Section opts into a scheme — every nested element re-skins automatically.

Ada Lovelace

Founding contributor. Talks about JSON schemas more than is healthy.

Alan Turing

Wrote the test suite. Also makes excellent tea.

Grace Hopper

Maintainer. Famously says: 'It's easier to ask forgiveness than permission.'

Tutorial

Designing with tokens

Why the theme JSON only references its own names — and how that pays off when you change your mind.

Build log

Shipping the prototype

A short build log of how site-gen-app went from idea to first build.

Ready to ship?

Drop in your JSON. Run bun run build. Deploy the static output anywhere.

Make the easy thing the right thing. — Old design adage