Self-hosted weblog engine

A weblog engine for people who still want to own their writing.

Serene Bach v4 carries forward the assets and operating feel of v3, modernized with Go, SQLite, static rebuilds, and AI-assisted writing.

Not as large as WordPress. Not as rigid as a pure static site generator.

It keeps the browser-based CMS workflow while adding self-hosting, static output, and AI integration.

Why Serene Bach

Keep your old assets, and run them in a modern environment.

Bring Serene Bach assets forward

Template compatibility with Serene Bach v3 is a core goal, so existing design assets and publishing habits can keep working.

Run small with Go + SQLite

A single binary, Pure Go SQLite, HTTP server mode, and CGI support make it practical on a small VPS, a local box, or traditional shared hosting.

AI assist inside the editor

Rewrite, continue, summarize, suggest titles, tags, and keywords, and generate image alt text from the posting workflow.

AI writing assist

Not a CMS that writes for you. A CMS that helps you write.

AI assist is built into the entry editor rather than living in a separate app. You can choose OpenAI-compatible APIs, LM Studio, Ollama, or Claude, so cloud APIs and local LLMs are both viable.

API keys are encrypted on the server. AI settings are per-user, so the whole blog does not have to become AI-first just because one author wants assistance.

MCP / llms.txt

From a blog AI can read to a blog AI can work with.

llms.txtllms-full.txtMCP stdioMCP HTTPRead / write scopeAudit log

Deploy small

HTTP server, CGI, and static publishing from the same Go binary.

Run it on a small VPS, Raspberry Pi, shared host, or static host. Write from the admin UI, then rebuild static HTML when your publishing workflow calls for it.

Get started

Run it locally first.

go mod tidy
task seed
task dev
View on GitHub