> ## Documentation Index
> Fetch the complete documentation index at: https://docs.primo.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Primo is a visual CMS where AI agents edit files and humans edit visually — same source of truth.

Primo is a visual CMS that represents your entire site as files. Pull it down, edit with Claude Code, Cursor, or any agent, push it back. Your team manages content visually in the browser.

```bash theme={null}
docker run -d -p 8080:8080 ghcr.io/primocms/primo:latest
```

## What Makes Primo Different

Most web tools force a tradeoff: code control *or* visual editing. Primo keeps both in the same source of truth.

<CardGroup cols={2}>
  <Card title="Files as the source of truth" icon="file-code">
    Blocks, pages, fields, and content all live as YAML and Svelte on disk. Version them in Git, edit them in any editor.
  </Card>

  <Card title="AI agents edit files" icon="robot">
    Any tool that reads files works — Claude Code, Cursor, Cline. The [official MCP server](/reference/mcp-server) gives agents live schema validation and scaffolding.
  </Card>

  <Card title="Humans edit visually" icon="pen-to-square">
    Non-technical teammates open the site in the browser, click anything, and edit it. No code, no broken designs.
  </Card>

  <Card title="Self-hosted and open source" icon="server">
    Run it on Railway, Fly, a VPS, or your laptop. MIT license, single Docker container, SQLite under the hood.
  </Card>
</CardGroup>

## How It Works

1. **Build with code.** Write Svelte components and attach content fields with YAML. The [CLI](/cli/overview) runs the full CMS locally and watches your files.
2. **Hand off visually.** Invite [collaborators](/collaboration/inviting-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, push it back. Or stay in the browser. Same files either way.

## 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

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/getting-started/quickstart">
    Build your first site in 5 minutes — local or deployed
  </Card>

  <Card title="Install" icon="rocket" href="/getting-started/installation">
    Self-host with Docker, Railway, or Fly.io
  </Card>

  <Card title="Build with the CLI" icon="terminal" href="/cli/overview">
    Develop sites locally with `primo dev` and files as the source of truth
  </Card>

  <Card title="MCP for AI Agents" icon="brain" href="/reference/mcp-server">
    Wire up Claude Code, Cursor, or any MCP client
  </Card>
</CardGroup>

## Built on Svelte

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