Skip to main content
Primo is a visual CMS for building sites with Svelte blocks and editable fields. Your team edits content in the browser. As a developer, you can also use the CLI to pull the site into files, edit it with your own tools or a coding agent, and push changes back to the CMS. See how you can edit content, create a blog post, and publish a site in Primo. Download video · Download captions
  1. A complete site, ready for your content.
  2. Click the headline and make it your own.
  3. Replace a photo directly on the page.
  4. Create a blog post from a reusable page type.
  5. The same design, with this post’s own content.
  6. Arrange the homepage with reusable blocks.
  7. Publish when your changes are ready.
  8. View the finished site.

What Makes Primo Different

You define the code, fields, and page layouts. Content editors use those fields and layouts in the browser. The CLI connects a local file workspace to the CMS database.

Work in files

Pull blocks, pages, fields, and content into YAML and Svelte files with the CLI. Version them in Git and edit them in any editor.

AI agents edit files

Any tool that reads files works — Claude Code, Cursor, Cline. The official MCP server gives agents live schema validation and scaffolding.

Humans edit visually

Content editors change the fields you expose and arrange the blocks you allow. You control the code and page type definitions.

Self-hosted and open source

Run it on Railway, Fly, a VPS, or your laptop. MIT license, single Docker container, SQLite under the hood.

How It Works

  1. Build with code. Write Svelte components and attach content fields with YAML. The CLI runs the full CMS locally and watches your files.
  2. Hand off visually. Invite collaborators — they edit content in the browser without touching code.
  3. Edit anywhere, anytime. Pull the site to your laptop, let an agent change a layout, and push it back to the CMS. Publish from the browser when ready. Revision checks protect newer editor changes.

Who It’s For

Primo is built for developers who build sites for other people — freelancers, agencies, and small teams who want full code control without leaving clients stranded.

Quick Start

Quickstart

Create your first site locally or on a deployed server

Install

Self-host with Docker, Railway, or Fly.io

Build with the CLI

Develop sites locally with primo dev and files as the source of truth

MCP for AI Agents

Wire up Claude Code, Cursor, or any MCP client

Built on Svelte

Primo blocks are written in Svelte 5. If you’re new to Svelte, the official tutorial covers what you need: scoped styles, simple HTML-based syntax, and reactive runes ($state, $derived, $effect).