---
title: "Why Andromeda"
description: "Why content belongs in files, and why this exists alongside Astro."
url: "https://www.andromedacms.dev/docs/why"
updated_at: 2026-09-24
---

# Why Andromeda

Adding a blog, documentation or a marketing site to a Rails app has usually
meant one of three things: standing up a separate [Astro](https://astro.build)
or Next.js project, installing a CMS gem with its own tables and admin screens, or
wiring up a headless CMS over HTTP.

## Files are the interface

All three put content behind a database and a screen. That made sense while
people were the only ones writing. They are not any more: much of the writing,
editing and restructuring now happens with an assistant in the loop, and an
assistant is good at exactly one thing here — reading and writing files in a
repository it can already see.

Pointing it at a CMS means first building it an API or an MCP server, giving
that its own authentication, and keeping it in sync with the schema. 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 change, and ships with the deploy that carried it — and the tool
doing the writing needs no integration at all, because it already has the
repository.

The schema still does its job: a missing `title` or an unparseable date fails
the build with the file name and the line, so a generated file that is subtly
wrong is caught before it is published rather than after. See
[Content and schemas](https://www.andromedacms.dev/docs/content-and-schemas).

Of everything in Astro's design, this is the part that looks most like where
things are going.

## Alongside Astro, not against it

I like [Astro](https://astro.build), and I have a great deal of respect for the
team behind it. For a static site I still reach for it.

But when a site needs sessions, forms, background jobs and a database, I want
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](https://github.com/bruits/satteri) Astro 7 uses, and
[moving it into Rails](https://www.andromedacms.dev/docs/migrating-from-astro) is a copy.
