- SvelteKit app using Svelte 5 (runes syntax) with Tailwind CSS 4.
- Docs content is Markdown via MDSX and organized/validated by Velite.
- Static site build (adapter-static) with Cloudflare Workers previews/deployments.
- Content source:
content/(Markdown; MDSX renders via blueprint). - Velite config:
velite.config.js(collections + schema). - MDSX config:
mdsx.config.jsandsrc/lib/components/mdsx/blueprint.svelte. - Docs data/helpers:
src/lib/docs.ts. - Sidebar/nav config:
src/lib/config/docs.ts. - UI primitives:
src/lib/components/ui/(shadcn-svelte style index exports). - App components:
src/lib/components/. - Routes:
src/routes/.
- Every Markdown file requires frontmatter:
titleanddescription. - Place docs in the matching
content/collection (seevelite.config.js). - If adding a new section, update
velite.config.jsandSECTION_BUILDERSinsrc/lib/config/docs.ts.
- Use Svelte 5 runes:
$props,$state,$derived,{@render ...}. - Keep component structure consistent with existing patterns in
src/routes/andsrc/lib/components/. - When changing
.svelteor.svelte.ts/.svelte.js, run the Svelte MCP fixer.
pnpm dev(local dev; runs Velite watcher + Vite)pnpm dev:wrangler(Workers dev)pnpm buildpnpm previewpnpm checkpnpm lint/pnpm lint:fixpnpm format/pnpm format:check
- Vite config excludes
@lucide/sveltefrom optimizeDeps and chunks icons separately. - Static build output goes to
build/withindex.htmlfallback.