Skip to content

supapuck-cms

A CMS for small business and organisation sites (small businesses, towns, business associations, venues, clubs). Astro rendering on Netlify, content in Supabase, a visual page editor, and Compose, which writes pages with Claude from your documents, images and links.

Page editor

Drag-and-drop blocks with drafts, preview, patterns, linked patterns and an accessibility check.

Content from one config

Content types, fields and taxonomies are declared in src/site/config.ts. URLs, the editor, Compose and the admin tabs all follow it.

Events

Optional, turned on in Settings: recurring events, a list, month and day calendar, and .ics feeds, with a default time zone and per-event ones.

Compose

Claude builds whole pages, fills fields and edits single blocks from the materials an editor adds, in the site’s house style.

Media

Focal points, standard crops, and AVIF and WebP copies of every upload.

Forms

A form builder with conditional logic, server-side validation, email notifications and payments (Stripe or Square).

Tickets

Paid tickets and free registrations for events: ticket types, capacities, a waitlist, an attendee list with check-in and refunds, and ticket emails.

Members

Membership levels and sign-ups, members-only pages and blocks, and member ticket prices.

Mailing

Mailing lists with confirmed sign-ups, campaigns and a weekly digest through Mailgun, one-click unsubscribe, and clicks told apart into people’s and mail scanners’.

The code is split in two. The core is everything outside src/site/: rendering, the editor, the admin, the database schema. A site is src/site/: its configuration, blocks, card designs, colors and styles. The supapuck-cms repository holds the core and an example site (Example Town). A real site is a fork that replaces src/site/ and keeps supapuck-cms as its upstream remote, so core updates merge in cleanly.