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.
Documentation
- Getting started Install Andromeda and render your first Markdown page.
- Content and schemas Frontmatter, attribute types, validation and queries.
- MDX components Use your own Rails partials inside Markdown.
- Images Keep images next to the content that uses them.
- Building and deploying What runs when, and the tasks you can run yourself.
- Migrating from Astro Import an existing Astro project in one command.
- Reference Helpers, configuration and errors.
- Why Andromeda Why content belongs in files, and why this exists alongside Astro.