Andromeda

Building and deploying

View as Markdown

What runs when, and the tasks you can run yourself.

The build

andromeda:build converts every entry into .andromeda/: parsed, validated, rendered, with components expanded. It is hooked into assets:precompile, so the Dockerfile that ships with Rails 8 — and therefore Kamal, and most other deploy paths — already runs it.

Along the way it checks what a page would otherwise only find out when it is served: every image in a body must exist, and every :reference must name an existing entry. Anything missing fails the build, listed with its file, after the entries that did convert have been written.

.andromeda/ is a build artifact. The installer adds it to .gitignore and .dockerignore; it is written inside the image at build time.

Tasks

TaskWhat it does
andromeda:buildConvert everything (runs during assets:precompile)
andromeda:checkReport the same problems the build would, without writing anything — for CI
andromeda:fixRewrite camelCase frontmatter keys to snake_case
andromeda:clobberRemove .andromeda/ (runs during assets:clobber)

In development

There is no watcher to run. A file is converted the first time something asks for it after its content changed, so editing a post and reloading is all there is to it.

In production

The parser never runs while serving a request; pages read the converted result. An entry that was never built raises Andromeda::BuildMissing, whose message names the task to run — a loud failure at boot beats a page that silently converts content on the critical path.

The database

Content needs no database. If your application has one, nothing changes; if it does not, andromeda:build still runs inside a Docker build where no database is reachable, because conversion only ever touches files.

Last updated September 29, 2026