Andromeda

Rails + Astro content

Astro-compatible content collections for Ruby on Rails

Copy the .md and .mdx files from an Astro project into app/content/. Andromeda validates their frontmatter, converts them once at deploy time, and lets your own controllers and views render them.

# Gemfile
gem "andromeda_cms"

$ bundle install
$ bin/rails generate andromeda:install
$ bin/rails generate andromeda:collection posts title:string pub_date:date

Same engine as Astro

Content is parsed by Sätteri, the Markdown and MDX engine Astro 7 uses by default.

Converted at deploy

The parser never runs while serving a request; pages read the converted result.

Ordinary Rails pages

Your controllers, your views, your layout — so login state and caching behave normally.

Files are the interface

A CMS puts content behind a database and a screen. That made sense while people were the only ones writing. Much of the writing and editing now happens with an assistant in the loop, and pointing one at a CMS means first building it an API or an MCP server — a second system, to serve the first.

Content as files needs none of that. Adding a post is adding a file, editing one is an edit, removing one is rm. The change arrives as a diff, is reviewed like any other, and ships with the deploy that carried it.

Alongside Astro, not against it

Astro is a good piece of work, and for a static site it is still the right answer. But when a site needs sessions, forms, background jobs and a database, it wants Rails.

Andromeda exists so that this is not a choice between the two: the collection stays the same directory of files, parsed by the same engine, and moving it into Rails is a copy.

Read the reasoning

Documentation