Marketplace starter · Public

A nonprofit website template the whole team can update.

Public is a complete nonprofit site — mission, donate call-to-action, and events — built from Svelte blocks with typed fields. Your agent ships the redesign as code; the program staff update events in the browser. Same files, no developer in the loop for content.

Public — nonprofit website template built on Primo

What's included

Mission

The page that earns the gift. Staff refine the mission and impact copy in place — on the rendered page, no CMS login to chase down.

Donate CTA

A donate section ready to point at Donorbox, Stripe, or Every.org. Swap the link, keep the design — the ask is always one click away.

Events

A repeater of upcoming events. A fundraiser gets added, a past one drops off — the team manages it in the browser, no ticket to a developer.

Real-time collaboration

Multiple staff in the same page at once — live presence, conflict-free edits. The grant-season copy sprint without the merge conflict.

Typed fields

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

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 team 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 nonprofit site in your repo — blocks, pages, content, config.

$ primo new nonprofit --template nonprofit
iii. agent

Make it theirs.

Point any CLI agent at the repo. Set the mission, brand the site, wire the donate link.

$ claude "set up the donate CTA and brand colors"
iv. primo push

Push, then hand it off.

Files sync to the server. Staff manage events and copy in the browser — on the rendered page.

$ 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 team.

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

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

MIT · open source · free forever