Marketplace starter · Salmon & Oak

A restaurant website template the owner updates themselves.

Salmon & Oak is a complete restaurant site — menu, hours, and reservations — built from Svelte blocks with typed fields. The block your agent edits as code and the page the owner edits in the browser are the same files — the editor generates itself from each block’s field schema, no glue code.

What's included

Menu

The menu is content, not markup. Tonight’s special, a price change, an 86’d dish — the owner clicks the menu on the rendered page and types. Layout stays intact.

Hours & location

Holiday hours change Friday at 4pm. Instead of texting you, the owner edits the hours block in the browser — same source of truth your agent reads.

Reservations

A reservations section ready to point at the booking flow the restaurant already uses. Swap the link, keep the design.

Typed fields

Every block declares its fields in fields.yaml — text, rich text, image, link, repeater. The editor UI is generated from that schema.

Drag-and-drop sections

The owner can reorder, add, or remove sections on the page tree without touching code. Changes write straight to the source.

Yours to own

A complete, self-contained site — Svelte components in your repo, MIT-licensed. No framework lock-in, no hidden runtime.

Fork & ship in ~5 minutes

Scaffold the starter into your workspace, point your agent at the repo, push. Then hand the owner the browser.

i. primo-cli

Spin up a workspace.

One command scaffolds a Primo workspace — your sites, as plain files.

$ npx primo-cli init my-workspace
ii. primo new

Fork this starter.

Creates the full restaurant site in your repo — blocks, pages, content, config.

$ primo new bistro --template restaurant
iii. agent

Make it theirs.

Point Claude Code, Cursor, Codex — any CLI agent — at the repo. Swap in the real menu, brand colors, photography.

$ claude "restyle this for the client's brand"
iv. primo push

Push, then hand it off.

Files sync to the server. The owner edits the menu in the browser — on the rendered page, in the fields your blocks declared.

$ primo push

MIT · open source · works with any CLI agent. The –template flag for one-command starter forks is rolling out — today, fork by pulling the starter site and pointing your agent at it.

Build it with an agent. Hand it to the owner.

One command to spin up a workspace. Point any agent at the repo, then hand your client the browser.

$ npx primo-cli init my-workspace
✓ workspace ready · server.yaml written

MIT · open source · free forever

Build sites with any agent, hand them to your clients to edit. One source of truth — files locally, a database on the server.

Resources
© Primo CMS · 2026 · MIT License MIT Open Source