Documentation site for the Ministry of Many ecosystem. Static SvelteKit app, markdown authored with mdsvex, prerendered to plain HTML. No runtime, no database, no external network assets.
Content is organized into two tracks:
- Understand the ecosystem (
/understand/*) - the privacy model behind Minister. - Build on Minister (
/build/*) - wiring a relying party with@ministryofmany/client.
- SvelteKit 2 + Svelte 5 (runes), Vite
@sveltejs/adapter-static- the whole site prerenders to static filesmdsvex- renders.mdroute pages, each wrapped insrc/lib/DocLayout.svelte- TypeScript
- Node 20+
SvelteKit is configured inline in vite.config.ts (adapter, preprocess, extensions);
there is no separate svelte.config.js.
npm install
npm run dev # dev server on :5173
npm run build # prerender to build/
npm run preview # serve the production build locally
npm run check # svelte-check type checksrc/
app.css global styles (light/dark, prose typography)
lib/
nav.ts the two tracks and their ordered pages
DocLayout.svelte mdsvex layout: renders frontmatter + content
routes/
+layout.svelte sidebar shell + active-link highlighting
+layout.ts prerender = true
+page.svelte landing page (both tracks)
understand/<slug>/+page.md
build/<slug>/+page.md
mdsvex.config.js markdown extensions + layout wiring
-
Create
src/routes/<track>/<slug>/+page.md, where<track>isunderstandorbuild. The route path is/<track>/<slug>. -
Give it frontmatter:
--- title: Your Page Title description: One-line summary shown under the title and as the meta description. order: 8 --- ## First heading ...
DocLayout.svelterenderstitleanddescriptionas the page header, so the body should start at a section heading, not repeat the title. -
Add the page to its track in
src/lib/nav.tsso it shows in the sidebar and on the landing page. Pages sort byorderwithin a track.
mdsvex compiles each page as a Svelte component, so a bare { or < in prose is
parsed as a Svelte expression or tag and breaks the build. Inside backticks or
fenced code blocks these are escaped automatically, so wrap literal braces and
comparisons in code spans - e.g. write `atLeast.n <= 16` and
`{age-over-21, ...}` rather than leaving them bare in a sentence.
npm run build writes a static site to build/. Serve that directory from any
static host. No server runtime is required.