Introduction

Minamo is a self-hosted web framework for content sites, and the CMS editors use to manage them. It stores every page as a plain JSON file, versions everything in git, and renders sites through a Shopify-style sections-and-blocks theme model.

The problem it solves

Most headless CMS platforms ask you to make the same trade: hand over your content, and trust you can always get it back. Your pages live inside someone else’s database, reachable only through their API, on their terms. Every price increase, feature change, or outage is something that happens to you.

Minamo is built on a simpler idea: your content is just files, and files are yours. There is no proprietary export format and no API you depend on just to read your own words back. If you ever want to leave, migrating away is git clone.

How it works

A Minamo site is two things working together:

  • The Minamo framework — a small, self-hosted Node.js server (the @minamocms/framework package on npm) that owns one site’s content, theme, and media, and exposes a versioned HTTP API (/v1/…).
  • The Minamo CMS — the hosted admin, which talks to one or more sites over that API. It’s where editors log in, browse pages, and publish changes. It never touches a site’s filesystem or git history directly.
Note

The admin and the site agent are two separate codebases with two separate deploy cycles. The only connection between them is the versioned /v1/ API — you can upgrade the admin without touching a site, and upgrade a site without touching the admin.

Who this is for

This documentation is split into two tracks, because two very different people work with a Minamo site day to day:

Where to go next

Read Core concepts next to understand the content, theme, and draft/publish model, or jump straight to Quick start to scaffold a site.