A fork-friendly platform for creating self-directed research curricula. Built with SvelteKit, Sveltia CMS, and a front-end agnostic content architecture.
Note: After deploying, follow the CMS Setup instructions to enable content editing.
This template helps you create depth-first learning experiences—structured paths through foundational texts that help learners go deep on a topic.
The starter content teaches you how to use it. Read the included curriculum to learn the methodology, then replace it with your own domain of expertise.
Features:
Your site is now live at a random Netlify URL.
my-philosophy-curriculum)PUBLIC_SITE_URL = your full URLThe CMS needs OAuth to edit your GitHub repository. This requires:
Create a GitHub OAuth App
Deploy the Auth Worker
docs/cms-setup.md)Add Environment Variables in Netlify
CMS_REPO = your GitHub username/repo (e.g., johndoe/my-curriculum)CMS_AUTH_URL = your Cloudflare Worker URLSee docs/cms-setup.md for detailed instructions.
your-site.netlify.app/admin/curriculum-template/
├── content/ # All content (CMS-managed)
│ ├── clusters/ # Thematic groupings
│ ├── lessons/ # Individual lessons
│ ├── pages/ # Static pages (home, about)
│ └── settings/ # Site configuration
├── prompts/ # AI prompts for curriculum building
│ ├── 01-domain-definition.md
│ ├── 02-reading-discovery.md
│ └── 03-curriculum-structure.md
├── src/
│ ├── lib/
│ │ ├── data/ # Content loading logic
│ │ └── types/ # TypeScript definitions
│ └── routes/ # SvelteKit pages & API endpoints
├── static/
│ └── admin/ # CMS configuration
└── docs/ # Additional documentation
Content is stored as Markdown files with YAML frontmatter. The CMS provides a visual editor, but you can also edit files directly.
| Type | Location | Description |
|---|---|---|
| Cluster | content/clusters/ |
Thematic grouping of 2-5 lessons |
| Lesson | content/lessons/ |
Individual reading with context and reflection |
| Page | content/pages/ |
Static pages (home, about) |
| Settings | content/settings/ |
Site title, description, author |
Each lesson includes:
| Endpoint | Format | Description |
|---|---|---|
/api/curriculum.json |
JSON | Full curriculum data |
/api/manifest.json |
JSON-LD | Schema.org structured data |
/feed.xml |
RSS 2.0 | Content syndication |
/sitemap.xml |
XML | Search engine sitemap |
The included starter content teaches the full methodology:
The prompts/ directory contains ready-to-use prompts for:
See METHODOLOGY.md for the complete curriculum-building guide.
# Clone your fork
git clone https://github.com/YOUR_USERNAME/YOUR_REPO.git
cd YOUR_REPO
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
The site will be available at http://localhost:5173.
Edit via CMS (Settings → Site Settings) or directly in content/settings/site.json:
{
"title": "Your Curriculum Title",
"description": "Your curriculum description",
"author": "Your Name"
}
Edit CSS custom properties in src/app.css:
:root {
--color-primary: #2563eb;
--color-background: #ffffff;
--color-text: #1f2937;
}
Via CMS (recommended):
/admin on your deployed siteVia Obsidian (local editing):
content/ as an Obsidian vaultVia Git (manual):
content/| Component | Technology | Purpose |
|---|---|---|
| Framework | SvelteKit | Web framework with SSR |
| CMS | Sveltia CMS | Git-based headless CMS |
| Auth | Cloudflare Workers | OAuth for CMS |
| Hosting | Netlify | Continuous deployment |
| Content | Markdown + YAML | Portable, version-controlled |
| Document | Description |
|---|---|
| METHODOLOGY.md | Complete curriculum-building guide |
| CONTENT_ARCHITECTURE.md | Content schema and types |
| AGENTS.md | Instructions for AI agents |
| docs/cms-setup.md | CMS OAuth setup (Sveltia) |
| docs/obsidian-setup.md | Local editing with Obsidian |
| docs/styling-guide.md | Visual customization (colors, fonts, borders) |
Contributions welcome! Please:
Built for depth, not breadth.