Skip to main content
Start locally if you want to build on your computer. Deploy a server first if other people need browser access to the CMS. You can move from local development to a deployed server later.

Choose your starting point

Build locally

Install the Primo CLI, create a workspace, and open the local CMS. No hosting account or domain is needed.

Run a shared CMS

Deploy Primo to Railway, Fly.io, or a VPS with persistent storage. Collaborators use the hosted browser editor.

Build locally

You need a supported Node.js LTS release, version 22.13 or later. Check with node --version, then install the CLI and create a workspace:
The interactive primo new command starts the local CMS and prints your editor URL. Open that URL to verify the site loaded. From a script, start the CMS separately with primo dev.
The default author mode uses files as the source of truth, so the CMS editor is read-only. To edit in the browser, stop the running server with Ctrl+C, then run primo dev --author cms. See Author modes before switching between files and browser editing.

Watch: Start Primo locally

The walkthrough starts after Node.js and the Primo CLI are installed. It uses --no-mcp and --skip-dev to show each setup step separately. Download video · Download captions
  1. With Node.js and the CLI installed, create a workspace. This demo skips MCP setup.
  2. Inside the workspace, create a site. --skip-dev leaves starting the server to you.
  3. Validate the site files before starting Primo.
  4. Run primo dev --author files. Open its editor URL: Browse mode keeps local files authoritative.
  5. Stop with Ctrl+C, then run primo dev --author cms to edit in the browser.
Follow the Quickstart for editing and deployment.

Run a shared CMS

Primo runs as one application with a SQLite database. Your host must preserve /app/pb_data across restarts and redeployments.
An editable Primo CMS needs persistent disk storage. A static host such as Netlify, Vercel, or Cloudflare Pages can serve the output of primo build, but cannot run this CMS installation.
Use the Deployment guide for provider setup, account creation, HTTPS, and backups. After deployment, create a site in the dashboard and connect its domain. You can edit the site before connecting a public hostname. The browser workflow does not require the CLI. Install it later if you want to pull the site into files.

Usage analytics

In the v3.3.1 source, self-hosted instances default to usage analytics off, while hosted mode defaults to on. To disable analytics explicitly, set PRIMO_ENABLE_USAGE_STATS=false, then restart or redeploy. Verify the effective setting through telemetry_enabled at /api/primo/info.

Other setup paths

  • Contributing to Primo itself: Run the CMS from source. This develops the application rather than a website.
  • Managed Primo hosting: Check Primo’s website for availability. Railway, Fly.io, and VPS installations are instances you manage yourself.