Build quickly with AI, give clients an easy way to edit, and stay in control of your sites forever.

Build with your AI agent. Edit and publish in Primo.

How it works

Files for your agent.
Buttons for your clients.

01 Files

Pull your entire site as files.

Pages, page types, components, content, and fields—all local on your machine.

maison-verde/2 updated
02 Agent

Build with any agent.

Change the design, copy, or features with your AI tool.

Claude Code
Adapt the Maison Verde café starter for mobile
Kept the café’s photography and typography. Added a compact mobile header.
✓ 2 files updated1 / 4
Ask for changes…
03 Editor

Hand it off to your client.

Push to your server. Clients edit, add pages, and publish.

maisonverde.cafe/admin

Working with an agent

What will you ask your agent to do?

Bring a site, a brief, or an idea. See what your agent can turn it into—and what your client can edit.

Bring over an existing site.

Give your agent the current site and its content. Bring the pages and design into Primo, with editing fields for your client.

“Rebuild my current site in Primo, keeping its content and overall design.”

Your existing site
maisonverde.cafe
Maison Verde café homepage, with its original design and content
In Primo, ready to edit
primoEditable
The same café design with an editable headline in Primo
✓ Pages✓ Content✓ Editing fields
A familiar site, with pages and content your client can edit.
Try this prompt

“Rebuild my current site in Primo, keeping its content and overall design.”

Turn client notes into pages.

Share a brief, documents, or meeting notes. Ask your agent to organize the material and draft the pages your site needs.

“Use this brief and these documents to draft our story, menu, and private dining pages.”

Client brief
Maison Verde / notes

Neighborhood café + wine bar

Seasonal menu, local growers

Private dinners: 8–20 guests

Warm, welcoming, no fuss

brief.docx + meeting notes
Our story
The menu
MAISON VERDE Draft page
PRIVATE DINING A table for
your people.

Seasonal food, good wine, and a room of your own. Gather 8–20 guests for an evening at Maison Verde.

Plan your evening ↗
Supplied notes become structured pages, ready for review.
Try this prompt

“Use this brief and these documents to draft our story, menu, and private dining pages.”

Explore different designs.

Try a new layout, palette, or type style. Compare a few directions before choosing one to take further.

“Show me three directions for this homepage, using the same copy.”

Maison Verde Menu · Visit
A sunlit café interior
COFFEE EARLY. WINE LATER.A table for every kind of day.Reserve a table ↗
01 / Classic
MAISON VERDE Menu · Visit
COFFEE EARLY. WINE LATER.A table for every kind of day.Reserve a table ↗
The same café, shown in black and white
02 / Editorial
The same café with an image-led layout
Maison Verde Menu · Visit
COFFEE EARLY. WINE LATER.A table for every kind of day.Reserve a table ↗
03 / Image-led
Three visual directions for the same homepage.
Try this prompt

“Show me three directions for this homepage, using the same copy.”

Build a tool your visitors can use.

Help visitors work out the cost before they enquire. Your agent builds the calculator; your client updates the menus and prices in Primo.

“Build a private dining calculator with guest count, menu choices, and an optional drinks package. Show an itemised estimate and let visitors copy their choices into an enquiry.”

Maison Verde EXAMPLE RATES
Estimate your private dinner.
12
12
8 guests20 guests
What’s on the menu?
Starter

Market vegetables & whipped ricotta

Main

Roast chicken, garden greens & new potatoes

Dessert

Rhubarb crumble & vanilla cream

Estimated total£666
£55.50 per guest
Food · 12 × £48
£576
Private room hire
£90
Drinks
Not included
Ready to ask about a date?
View enquiry text
Try it: change the guests, menu, or drinks. Get a cost estimate and a ready-to-send enquiry.
Try this prompt

“Build a private dining calculator with guest count, menu choices, and an optional drinks package. Show an itemised estimate and let visitors copy their choices into an enquiry.”

Make your site easier to find.

Ask your agent to review page titles, descriptions, headings, and image descriptions. Get clear, useful metadata alongside the content it describes.

“Review our site’s SEO. Improve the page titles and descriptions, and add useful descriptions to our images.”

Search preview
Maison Verdemaisonverde.cafe › private-dining
Private Dining at Maison Verde — A Table for Your People

Gather 8–20 guests for seasonal food, natural wine, and a room of your own. Explore private dining at Maison Verde and plan your evening.

✓ Page titles✓ Descriptions✓ Image descriptions
Image description

Guests sharing dinner around a long table at Maison Verde.

Clear page metadata, a search preview, and descriptions for your images.
Try this prompt

“Review our site’s SEO. Improve the page titles and descriptions, and add useful descriptions to our images.”

Make a page you can reuse.

Turn a page into a template with fields for the details that change. Your client can create the next one without starting from scratch.

“Turn our private dining page into a reusable template so my client can add new dining packages.”

primoPage type
Private dining

Fields for every package

Package name
Introduction
Menu
Enquiry link
+ Create a dining package
The evening table
MAISON VERDE New package
PRIVATE DININGThe long
lunch.

Seasonal plates to share, a few good bottles, and an afternoon of your own.

A menu for your tableMarket startersSomething to shareA sweet finish
Enquire about your date ↗
One reusable page type, ready for your client’s next package.
Try this prompt

“Turn our private dining page into a reusable template so my client can add new dining packages.”

The editor

Hand off control, with guardrails built in.

Give clients a powerful, simple CMS to edit content, build pages, and publish changes—all within the structure and design you’ve defined.

maisonverde.cafe/admin

A full CMS, not just an editor.

Everything your clients need to keep their site growing.

How it compares

Custom code.
A client-ready editor.

Primo brings your components, content, and page types into one system—files for your agent and an editor for your clients.

CapabilitiesPrimoWordPressHeadless CMSSite Builders
CodeSvelte components as filesPHP themes and pluginsFrontend filesBuilder; export options vary
Client editingOn the rendered pageBlock editor or adminCMS studio or custom editorVisual canvas
Content modelFields and page types as filesCore, plugins, or codeCode or admin, depending on CMSManaged in the builder
Agent workflowEntire site as local filesCode; content via CLI or APICode; content via CMS APICustom code and integrations
HostingSelf-hosted · MITSelf-hosted or managed · GPLHosted or self-hostedUsually platform hosting

Scroll to compare

Capabilities vary by CMS, plugins, and hosting setup.

Frequently asked questions.

What happens to my content if Primo disappears?

–

Your content lives in SQLite (via PocketBase); your code lives in your repo. primo pull gives you a static export of both at any time. Primo is MIT-licensed — even if we vanished tomorrow, the code you’ve been running keeps running, and every site you’ve built keeps shipping.

Is this production-ready, or a side project?

+

Seven years in, v3.3. Production sites include agencies shipping client work, small commerce stores, documentation sites, and our own marketing pages. Same model since 2019 — agents are a new client of the same system, not a new product.

How is this different from Payload, TinaCMS, or Sanity Studio?

+

Payload is a headless CMS — your schema lives in their admin, content is fetched via API. TinaCMS puts a git-backed editor in front of markdown files. Sanity Studio is a React-based admin on top of their hosted content lake. Primo is none of those: the editor and the renderer both read the same Svelte files and database rows, with no API translation layer between them.

Can I use React instead of Svelte?

+

Not today. Primo is built around Svelte’s compile-time approach — it’s what lets blocks be “just files” the editor and renderer can both read directly. React support inside Primo blocks is not on the roadmap. What is on the roadmap is primo integrate <framework> — a way to layer Primo on top of an existing SvelteKit (and eventually Astro, with Next.js aspirational after that) app, where your production components stay in the framework and Primo just owns content + the editor. So you’d get a visual CMS for pages that live inside your app’s codebase, even though the blocks themselves are still Svelte.

What does a block actually look like?

+

Two files, co-located. The component renders; the schema tells the editor which fields it has.

# blocks/hero/fields.yaml
- name: headline
  label: Headline
  type: text
- name: subheadline
  label: Subheadline
  type: text
- name: cta
  label: CTA
  type: link

How do agents authenticate and push?

+

The CLI reads a PRIMO_TOKEN from your environment — you generate one per site in the admin. primo pull <host> clones the project; primo push uploads only the files that changed. Same auth an editor uses; no API surface to learn. Works over HTTPS to any Primo instance, including self-hosted.

— Matthew, founder

I built Primo because there was no good way to build custom sites I could hand off to my clients with confidence. Seven years later, the model still holds — it just also happens to be the shape agents want, too.

— Matthew, founder

Build with an agent.
Hand it to a human.

Start with your agent or the CLI. Build locally, then deploy an editable CMS when you’re ready.

Create a new Primo site for my client. Set up a local workspace, help me choose a marketplace starter, and open the Primo editor. Read the Primo docs at https://docs.primo.build before starting.

Paste into your AI agent.

MIT · open source · free forever