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.

willowcreekrescue.com/admin
Claude Code
Adoption spotlight willow-creek

Add a featured dogs section above the adoption list, with three photo cards.

Preparing the editor
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.

Help people recognise your site in search results and shared links. Your agent can improve page titles, descriptions, preview images, and image descriptions.

“Review our site’s search and sharing metadata. Improve page titles and descriptions, choose social preview images, and add useful image descriptions.”

Search
Maison Verdemaisonverde.cafe › private-dining
Private Dining at Maison Verde

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

✓ Page titles✓ Share images✓ Image descriptions
Search, social, and iMessage previews for the same page.
Try this prompt

“Review our site’s search and sharing metadata. Improve page titles and descriptions, choose social preview images, and add useful image descriptions.”

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.”

Check your site before launch.

Ask your agent to walk through the site, find broken links, check small screens, and try the forms. Get fixes plus a clear report of what was checked.

“Check our site before launch. Look for broken links, mobile layout problems, and unclear form feedback. Fix what you find and check the changes again.”

maisonverde.cafe · Example reportPre-launch check
3 fixes checked
Broken linkFixed

The button now opens the correct private dining page.

Mobile navigationFixed

A compact menu keeps every page reachable on phones.

Form feedbackFixed

Missing email is flagged clearly before submission.

A launch check with findings, fixes, and a second pass to verify them.
Try this prompt

“Check our site before launch. Look for broken links, mobile layout problems, and unclear form feedback. Fix what you find and check the changes again.”

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.

Try Primo

A full CMS, not just an editor.

Everything your clients need to keep their site growing.

  • Custom page types

    Clients create new pages from templates you define.

  • Custom fields

    Text, images, links, repeaters—an editor shaped around your content.

  • Structured form view

    Manage SEO, metadata, and content beyond the visible page.

  • Real-time collaboration

    Work together in the same draft. Changes appear for everyone.

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), and your code can live in your own repo. primo pull exports your sites as editable Svelte, YAML, and media files; primo build generates a static site you can host elsewhere. Primo is MIT-licensed, so your existing installation and published sites keep running.

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?

+

A block folder contains component.svelte for the design, fields.yaml for editable fields, content.yaml for defaults, and config.yaml for its name and metadata. Here is an example field schema:

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

+

Run primo login https://your-server.com with your Primo account. The CLI saves credentials for that server; scripts can pass --token. primo pull exports the workspace, and primo push imports the selected site data with checks that protect newer CMS edits. Publish from the editor, or use primo publish or primo push --publish with a compatible server. See the CLI publishing guide.

— 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