Quick start
This walks through scaffolding a brand-new Minamo site and running it locally. It’s written for a developer setting a site up for the first time — once it’s running, day-to-day editing happens in the admin, covered in the marketing manager track.
Requirements
- Node.js 22.16 or later
- The
gitbinary on yourPATH - A directory you’re happy to turn into a real git repository
There is no database and no other external service to provision. Content, drafts, and every publish are real git operations against the site’s own repository — that’s the whole persistence layer.
Scaffold a site
The create-site command generates the four-folder structure described in Core concepts, complete with a starter theme:
npx -p @minamocms/framework create-site my-site
cd my-site
This produces a real git repository with an initial commit, a working starter site to build from — a theme/ with a layout, nine sections, eight blocks and site settings, starter pages and menus in content/ — and a vhost/ pointing at a pinned version of the CMS. It also prints a real access token to your terminal — copy it now, it is never shown again.
Install and run
cd vhost
npm install
npm start
By default the site listens on port 3000. Visit http://localhost:3000 and you should see the starter theme’s home page rendering the starter content.
While building the theme, use npm run dev instead: it restarts the site whenever a file in theme/ changes. npm run stop stops the site from any terminal, and npm run check renders every page and reports anything broken. See Working on a site locally.
Every new site includes an AGENTS.md file: a complete brief on building a theme and its content, for coding assistants such as Claude Code or Codex. Point yours at it before asking it to build pages.
Run npm run tunnel (or node server.js --tunnel directly) instead to also expose the site through a public HTTPS URL, printed to stdout on boot. This is how you point a hosted admin at a site you’re developing locally, without deploying anywhere yet. Don’t leave a tunnel running unattended — anyone with the URL and a valid token can reach it for as long as the process runs.
Connect the admin
The site itself has no login screen of its own — it’s an API. To edit it through the admin:
- In the admin, register the site by its URL and the token
create-siteprinted above (scoped tocontent,theme, andmediaby default — see the v1 API for what each scope allows). - The admin calls
GET /v1/capabilitiesto confirm it can reach the site and to learn its agent version and content schema version.
Lost that token, or want a second one with narrower scopes for a different client? mint-token generates a fresh one for a site that already exists, without touching any tokens already in use:
npx -p @minamocms/framework mint-token my-site --scopes content,theme
From here, everything else — browsing pages, editing sections, publishing — happens in the admin. See Getting started with the admin.