Everything you need, included.

The tools to build, manage, and scale — without the price tag. Premium plugins available when you're ready to grow.


Writing with Markdown

Markdown Editor

Write in clean Markdown, render anywhere. YAML frontmatter controls metadata, layout, and SEO. Twenty-seven built-in shortcodes let you drop in any component — hero, grid, tabs, carousel, timeline, collections — without touching HTML. Instant server-side rendering means no build step, no hydration lag, no surprises.

  • 27 shortcodes covering layout, content, interaction, and media
  • YAML frontmatter for title, description, layout, and custom fields
  • Shortcode nesting — grids inside heroes, cards inside slideovers, collections inside cards
  • Instant render — save a file, refresh the browser, you're done

27 Shortcodes YAML Frontmatter SSR


Plugin System

Three files. That's all a plugin needs. Add routes, register shortcodes, hook into lifecycle events, inject HTML into the page head or body. The plugin API gives you full access to the CMS internals without forking the core — and there's no revenue share, no licence check, no restrictions on what you ship.

  • plugin.json — manifest, metadata, and icon
  • plugin.js — Fastify plugin with routes, hooks, admin views, and shortcodes
  • config.js — default configuration, editable from the admin Settings page
  • Lifecycle hooks: form:submitted, collection:entryCreated, content:pageUpdated, user:loggedIn
  • Register custom shortcodes with registerShortcode() — available on every page immediately

3-File Plugins Lifecycle Hooks Custom Shortcodes

Modular plugin architecture

Structured data collections

Data Collections

Structured content beyond pages. Define a schema in the admin, create entries, render them anywhere on the public site with [collection]. Pick the display mode per page — table, cards, list, accordion, or custom block template — and switch it without touching the data.

  • CRUD interface in the admin panel with search, sort, pagination, and CSV export
  • Five display modes — table, cards, list, accordion, block (for custom templates)
  • Row filtering with where="field=value" for filtered views per page
  • CTA Actions — trigger server-side logic from any rendered entry
  • Saved Views — complex queries and aggregations (MongoDB-backed, Pro tier)

5 Display Modes Row Filtering CTA Actions


Form Builder

Premium Plugin

Build forms visually — no code. Multi-step wizards, conditional field visibility, dependent dropdowns, cross-field validation, honeypot anti-spam, rate limiting, and email notifications. Configure once, embed anywhere with a single shortcode. The kind of functionality you'd normally spend a week wiring up.

  • Visual builder in the admin — drag, drop, configure
  • Multi-step wizards with page-break fields and progress indicators
  • Conditional logic — show, hide, or require fields based on other values
  • Anti-spam baked in — honeypot field and configurable rate limiting
  • Email notifications and optional redirect or inline success message
  • Embed anywhere with [form name="contact"]

Conditional Logic Multi-step Wizards Anti-spam

Form Builder plugin

Theme palette and colours

Theme Engine

Twenty-eight gradient theme variants — light and dark pairs, warm and cool — built into the core. Full CSS variable control via content/custom.css. Auto day/night switching at sunrise/sunset. Google Fonts integration with one config change. Every site looks different; none look generic. The free Theme Switcher plugin lets visitors pick their own preferred scheme from whatever you enable.

  • 28 gradient variants — light and dark pairs across warm and cool palettes
  • Full CSS variable overrides — rewrite any colour, spacing, or radius in content/custom.css
  • Auto day/night — switch themes at sunrise/sunset with zero JavaScript
  • Google Fonts — set family and size in one place, applied site-wide
  • Theme Switcher plugin (free) — floating picker that lets visitors pick their scheme

28 Themes Auto Day/Night Google Fonts


Payments & Checkout

Premium Plugin

Stripe-powered customer registration and checkout, delivered as a plugin — self-service sign-up flows with payment, subscriptions, and licence delivery. Configured from the admin panel in minutes, not months. Hosted Stripe Checkout means the card data never touches your server.

  • Stripe Checkout — hosted payment pages, PCI compliance handled upstream
  • Self-service sign-up with configurable plans and pricing tiers
  • Subscriptions and one-time payments both supported
  • Licence key generation and delivery via email on successful payment
  • Customer self-service dashboard — plan management, billing history, downloads

Stripe Subscriptions Licences

Stripe Payments and Checkout

Shopping cart and multi-product checkout

Shopping Cart

In development

A proper shopping cart plugin — multi-product checkout, cart persistence across sessions, tax and shipping rules, order management — is in active development. It'll slot in alongside Payments & Checkout when ready, sharing the same Stripe integration and admin UI.

  • Multi-product checkout — browse a catalogue, add, remove, review, pay
  • Cart persistence across sessions and devices
  • Tax and shipping rules configurable per region
  • Order management from the admin panel
  • Customer order history with downloadable receipts

Get in touch if you need early access or want to influence the scope.


REST API and integrations

The API Platform

New

It shipped — and it went further than promised. Every collection is now a first-class external API with token authentication, and you can build custom named endpoints in the admin without writing a line of code. Point a clean URL at a collection query, test it live, hand it to your client.

  • /api/v1/<collection> — versioned REST with filtering (12 operators), sorting, pagination, and per-verb access control: public, token, or role-gated
  • API tokens — project-scoped machine credentials; hashed at rest, shown once, revocable instantly, with expiry and last-used tracking
  • API Builder — design endpoints like /api/x/world-cup/fixtures-day/:date in the admin; path params and query refinements feed the filter engine — definitions are data, never code
  • Try-it console — Send a real, credential-free request from the builder and see exactly what an external caller gets, with copy-as-curl
  • Field allowlists — return title and price without leaking internal columns
  • Cached and safe — public responses cached with automatic invalidation; endpoints can never expose system collections or another project's data

Token Auth No-code Builder Try-it Console

Read the deep dive →


Projects

New

Group everything a client or initiative owns — pages, collections, forms, menus, blocks, users, API endpoints — under one named project. Each project gets an overview hub with artefact tiles and quick-create, its own URL namespace for custom APIs, and per-user access scoping. The built-in Core project owns everything else by exclusion, so nothing is ever a stray.

  • Ten artefact types filed per project, with count tiles and one-click creation
  • Access scoping — scoped users see only their projects' artefacts (plus core), enforced on every list, read, and write
  • URL inheritance — a project's root URL claims its pages automatically; no manual tagging
  • Scaffolder recipes — stand up a whole project (collection, form, actions, roles, users, API tokens and endpoints) in one apply
  • Protected Core — undeletable, never an access boundary, always there

Access Scoping Overview Hub Scaffolder

Projects — organise everything