A fork-friendly platform for creating depth-first learning experiences. Built with SvelteKit and Sveltia CMS.
1. Deploy the site:
2. Deploy the CMS auth worker:
After forking, deploy the auth worker to Cloudflare using this URL (replace with your repo):
https://deploy.workers.cloudflare.com/?url=https://github.com/YOUR_USERNAME/YOUR_REPO/tree/main/workers/cms-auth
Or deploy manually—see docs/cms-setup.md for instructions.
After deploying, see Quick Start to connect everything.
Create structured curricula around foundational texts. The included content teaches you how to use the platform—read it, then replace it with your own domain.
7 clusters, 23 lessons covering:
The CMS needs OAuth to commit to your GitHub repo.
Create GitHub OAuth App:
https://YOUR-WORKER.workers.dev/callbackDeploy the Auth Worker:
GITHUB_CLIENT_ID — from your OAuth appGITHUB_CLIENT_SECRET — from your OAuth appConfigure Netlify: Add these environment variables in Netlify (Site settings → Environment variables):
CMS_REPO = your-username/your-repoCMS_AUTH_URL = https://your-worker.workers.devTrigger a redeploy, then access /admin on your site.
See docs/cms-setup.md for detailed instructions.
your-site.netlify.app/admin/content/
├── clusters/ # 7 thematic groupings
├── lessons/ # 23 lessons
├── pages/ # Home, About
└── settings/ # Site configuration
prompts/ # AI prompts for curriculum building
src/ # SvelteKit application
workers/cms-auth/ # Cloudflare Worker for CMS OAuth
docs/ # Setup guides
| Type | Description |
|---|---|
| Cluster | Thematic grouping of lessons. Foundation clusters appear in "Start Here"; others in "Specializations" |
| Lesson | Individual reading with introduction, key concepts, assignment, and knowledge checks |
| Page | Static pages (home, about) |
| Field | Purpose |
|---|---|
title, slug, description |
Basic metadata |
body |
Introduction/context (markdown) |
key_concepts |
1-3 concepts to focus on |
assignment |
Primary reading with instructions |
knowledge_check |
Reflection questions |
blocks |
Unified content blocks (new format) |
See CONTENT_ARCHITECTURE.md for the complete schema.
| Endpoint | Format | Use Case |
|---|---|---|
/api/curriculum.json |
JSON | Apps, AI agents |
/api/manifest.json |
JSON-LD | Rich search snippets |
/feed.xml |
RSS | Syndication |
/sitemap.xml |
XML | Search engines |
AI-Assisted (Building with AI cluster):
Use the prompts in /prompts/ with Claude, GPT-4, or similar to rapidly generate curriculum structure.
Manual (Building Manually cluster): Step-by-step guide for choosing topics, selecting readings, and structuring lessons without AI.
Both paths are documented in the starter curriculum itself.
git clone https://github.com/YOUR_USERNAME/YOUR_REPO.git
cd YOUR_REPO
npm install
npm run dev
Site runs at http://localhost:5173.
Site settings: Edit via CMS or content/settings/site.json
Colors/fonts: Edit CSS variables in src/app.css
Content editing:
/admincontent/| Component | Technology |
|---|---|
| Framework | SvelteKit |
| CMS | Sveltia CMS |
| Auth | Cloudflare Workers |
| Hosting | Netlify |
| Document | Description |
|---|---|
| CONTENT_ARCHITECTURE.md | Content schema |
| METHODOLOGY.md | Curriculum-building philosophy |
| docs/cms-setup.md | CMS authentication setup |
| docs/obsidian-setup.md | Local editing with Obsidian |
| docs/styling-guide.md | Visual customization |
Built for depth, not breadth.