This is one modular starter. The base is a static SvelteKit site. Access (member magazine) and CMS (/admin) are optional overlays. New sites set TEMPLATE_BASE = "static" and ADDONS to "", "access", "cms", or "access,cms" in wrangler.toml.
Two ways to edit content
Static sites read markdown under content/ at build time. The browser never ships a markdown parser.
- Home —
content/welcome.md(home:block for badge, buttons, emblem, featured heading). - Home bands — newsletter and sponsors in
content/home/. - Posts —
content/posts/*.md(listed on Home / Grid). - Basic pages —
content/basic/*.md. - Contact —
content/contact.md(form:block for fields, submit label, consent).
CMS sites use the same fields in /admin. Seed and Admin Reset copy content/ into D1. After that, editors change pages in the admin form: Save draft keeps the public site on the last live snapshot; Publish replaces it; Discard draft restores that live copy. Cloudflare Access is the login for /admin (the template playground can bypass it).
Frontmatter (shared with the CMS)
Every markdown file starts with YAML between --- lines. These keys are the same fields the CMS editor stores.
---
title: Getting Started with this Blueprint # Short label (menus / cards)
headline: Getting Started with this Blueprint # On-page H1; blank reuses title
description: A complete guide on how to config # Short description (used for SEO and cards)
date: 2026-08-17 # Publish date (YYYY-MM-DD)
author: Farend # Author name (optional)
category: documentation # Posts only — badge + grid filter
tags: ["guide", "setup"] # Posts only — shown on the post + search
featured: true # Set to true to showcase on home page
order: 1 # Sort order (listings and sibling nav)
in_header_menu: true # Top-level header item
nav_type: dropdown # basic | dropdown | hero
parent: basic/about # Nest under a parent (omit in_header_menu)
in_footer_menu: true # Footer link
heroImage: /images/hero-bg-800w.jpg # Optional top banner image
gallery: # Optional bottom image gallery
- /images/article-cover.png
- /images/hero-bg-800w.jpg
---
Home pages also take a home: block. Contact pages take a form: block. On a CMS site those are the module builder and the form-fields editor.
Config and theme
All non-CSS config is wrangler.toml (Mailgun, Turnstile, D1, ADDONS). Theme tokens, fonts, and site-light / site-dark live in src/routes/layout.css. Open /showcase to try presets, fonts, and components.