Self-hosted weblog engine

A lighter path between WordPress and Hugo.

Serene Bach v4 is a Go weblog engine that runs as a single binary over CGI or HTTP. Write from the browser, keep SQLite on your server, and rebuild static HTML when your workflow calls for it.

Single binaryCGI supportSQLiteSB3 migrationStatic rebuilds

For people who want browser-based publishing without carrying a large CMS stack.

It keeps the CGI-era ability to place your blog almost anywhere, with SQLite, static rebuilds, and AI integration added in.

Positioning

Choose by publishing workflow.

Serene Bach is for personal blogs and small sites that want browser-based editing without carrying a large CMS stack.

Serene BachWordPressHugo
Runtime Go single binary / CGI / HTTPPHP + database serverStatic generator
Placement Shared host, VPS, Raspberry PiPHP and MySQL hostingStatic hosting
Updates Publish from the admin UIPublish from the admin UIEdit files and rebuild
Dependencies No external DB server, SQLitePHP, MySQL, pluginsBuild tools and themes
Operations Small surface areaOngoing updates and hardeningLight, file-based workflow

Quick start

Run it locally first.

  1. Build the binary
  2. Seed initial data
  3. Open the admin UI
go mod tidy
task seed
task dev

Why Serene Bach

Small to place. Familiar to publish.

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 one binary and SQLite

Pure Go SQLite is embedded, so there is no external database server to run. 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.

Migration

Carry SB3 assets forward.

Import from a Perl-era Serene Bach 3 SQLite database and keep the familiar template model. The goal is to preserve old design assets and publishing habits while moving the runtime to Go.

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, CGI-capable shared host, or static host. Write from the admin UI, then rebuild static HTML when your publishing workflow calls for it.

Data ownership

Keep your data close.

Entries, settings, and analytics live in SQLite and local files

Images and templates remain server-side data you can back up

A self-hosted setup that is less dependent on external platform decisions

Get started

Start with the README.

go mod tidy
task seed
task dev
View on GitHub