primocms/primo
primocms/primo has 2,380 GitHub stars and 566 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 21:18 UTC. Last push 2026-11-02.
Build client-editable sites with Claude, Codex, Cursor, or whatever comes next.
What you can do
- Visual content editing — edit text, images, and links directly on the page, with structured fields for more complex content.
- Reusable blocks and page types — define layouts, conditional fields, and repeaters that clients can work within.
- Multiple sites, one dashboard — organize client sites into groups and connect a domain to each one.
- Static publishing — generate fast HTML and assets, served by Primo or deployed to another static host.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
The open-source CMS for developers and their clients.
Build with Claude Code, Codex, Cursor, or whatever comes next.
Let clients edit content visually.
Get started · Documentation · Website · Marketplace
MIT licensed · Self-hosted · In active development since 2019
https://github.com/user-attachments/assets/6675cf96-6fdc-41fc-98f9-311060417e00
Get started
Paste this into your coding agent:
Create a new Primo site for [my business or project]. Read the quickstart
at https://docs.primo.build/getting-started/quickstart before starting.
Install the Primo CLI, set up a local workspace, help me choose a
marketplace starter, and open the site in the Primo editor.
Your agent can handle local setup and help you build the site. When you're ready to share it, ask it to guide you through deploying an editable CMS with primo deploy.
Prefer the terminal?
Install a supported Node.js LTS release, then run:
npm install -g primo-cli
primo init my-workspace
cd my-workspace
primo new my-site
primo init offers to connect your agent to the Primo MCP tools. primo new creates a site and starts the local CMS in an interactive terminal. From a script, start the editor with primo dev.
Start with a deployed server
Deploy Primo on Railway:
Or run it with Docker:
docker run -d -p 8080:8080 -v primo-data:/app/pb_data ghcr.io/primocms/primo:latest
Open your server's URL to create your first site. See the quickstart for both local and hosted workflows.
For Railway updates, use ghcr.io/primocms/primo:latest to track releases. Older deployments using :main can switch to :latest; :main tracks rolling branch builds.
Overview
Primo gives developers control over their sites and clients a visual editor for managing content. Build pages from reusable Svelte blocks, define what can be edited, and manage multiple client sites from one dashboard.
Your site stays in sync as both a database and a folder of structured files. Work in your code editor or with an AI agent; clients keep editing in the browser.
Features
- Visual content editing — edit text, images, and links directly on the page, with structured fields for more complex content.
- Reusable blocks and page types — define layouts, conditional fields, and repeaters that clients can work within.
- Multiple sites, one dashboard — organize client sites into groups and connect a domain to each one.
- Static publishing — generate fast HTML and assets, served by Primo or deployed to another static host.
- A workflow for code and AI — pull your sites and shared library into local files, edit them with your preferred tools, and push changes back to the CMS. Currently in beta.
The workflow
primo pull yourserver.com # pull sites and the shared library
claude # work with Claude Code, Cursor, or any agent
primo push # save changes to the hosted draft
primo publish # publish the draft to the live site
Clients manage content in the browser throughout. Revision checks protect their edits when you push changes; an explicit overwrite saves a backup. See safe pushes and upgrade instructions.
Content editors can edit content, create child pages, and add or reorder body blocks allowed by the page type. The server restricts block source, field schemas, page types, layout structure, site settings, and role changes to developers. An empty allowed_blocks list locks body structure.
Editors remain trusted publishers: the current browser/CLI publishing flow uploads compiled HTML and JavaScript using their account. These permissions protect design source records; they do not sandbox an editor who deliberately uploads executable compiled output. Use developer accounts for design and server administration.
Built with
One Go binary, PocketBase with SQLite for storage, and Svelte 5 for the editor and your blocks. The same server runs the CMS and serves your published sites.
Project status
The visual CMS, block library, static output, multi-site management, and self-hosted deployment are stable. The CLI and local-file workflow are in beta.
Learn more
- Documentation — installation, fields, page types, collaboration, and publishing.
- How Primo compares — WordPress, Webflow, Astro, and headless CMSs.
- GitHub Discussions — questions and ideas.
- GitHub Issues — bug reports.
- Contributing — help build Primo.
License
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,871 starspublic-apis/public-apis
A collective list of free APIs
497,116 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
441,867 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,166 stars