let-an-agent-build-your-blog
v0.2.0
Published
A small, typed static site generator where content is a contract and presentation is fully agent-customizable.
Readme
Let an agent build your blog
A small static site generator (Bun + TypeScript) optimized for LLM agents.
No template DSL — a component is a function that takes typed content and returns an HTML string. The whole look lives in a few small functions, so an agent can rewrite the presentation layer without touching your writing or the build engine.
Quick start
Requires Bun 1.x.
bunx let-an-agent-build-your-blog my-blog
cd my-blog
bun dev # build + watch + serve at http://localhost:3000 (drafts included)Skip the theme prompt with a flag:
bunx let-an-agent-build-your-blog my-blog --theme cosmic # premade theme
bunx let-an-agent-build-your-blog my-blog --theme custom # design it with an agent
bunx let-an-agent-build-your-blog --list # list themescustom scaffolds the base theme and prints the command to run the customize skill in
Claude Code, Codex, Pi, or any other agent.
How it's organized
content/ → core/ (parse) → site/ (render) → public/content/— posts and pages (Markdown + frontmatter). Frontmatter contract:content/README.md.core/— the build engine. Don't edit.site/— the active theme:site.config.ts,components/,styles/index.css. Yours to rewrite.
Each premade theme is its own branch, so on any branch site/ holds exactly one theme — nothing
for an agent to confuse it with.
Customizing with an agent
The repo ships a customize skill at
.claude/skills/customize/ (mirrored under .agents/).
Describe the look and let it drive — it edits site/ only:
"Make it a warm sepia theme with a serif body font and a centered single-column layout."
"Turn the post listing into a dense table and add a Projects page to the nav."
Build & deploy
bun run build # → public/Set BASE_URL in site/site.config.ts first — it's baked into canonical URLs, Open Graph tags,
the sitemap, and the RSS feed.
Theme gallery
▶ Browse them all live: trebaud.github.io/let-an-agent-build-your-blog (15 themes)
Terminal — default
Monospace Tokyo-Night with a brand@host header.
Live demo · theme/terminal

Minimal
One centered serif column on cream paper.
Live demo · theme/minimal

Editorial
Magazine masthead with a responsive card grid.
Live demo · theme/editorial

Personal
Centered hero with avatar and socials.
Live demo · theme/personal

Retro
90s Web 1.0 in a Windows-95 window.
Live demo · theme/retro

Notebook
Hand-drawn ruled-paper marker style.
Live demo · theme/notebook

Vaporwave
80s neon synthwave, dark by default.
Live demo · theme/vaporwave

Cosmic
Serif over a twinkling night sky.
Live demo · theme/cosmic

Margin — sidebar
Fixed left sidebar with brand, nav and socials; Lora serif content column.
Live demo · theme/sidebar

The Daily Build — newspaper
Classic broadsheet: dark Playfair masthead, featured top story, multi-column article grid.
Live demo · theme/newspaper

Chronicle — timeline
Posts alternate left/right of a center spine with date bubbles.
Live demo · theme/timeline

Bento — grid
Apple-style bento grid: featured cell spans 2 columns, smaller cells each get a distinct accent color.
Live demo · theme/bento

Spread — cover cards
Full-bleed gradient cards per post. Fraunces display serif, vivid pastel gradients in light mode.
Live demo · theme/covercards

License
MIT — see LICENSE.
