A static Astro site for developer education. Content-first, docs-shaped, intentionally minimal. Courses and lessons live in typed content collections with MDX support for richer components.
Most developer education platforms are bloated with heavy frameworks, complex CMS layers, and custom dashboards. learn strips all of that down. It's Astro, Tailwind, and typed content collections. Courses are directories, lessons are files, frontmatter controls the rest.
- Typed content collections
- Course progress tracking
- Homepage is intentionally simple
- Docs-style reading shell
- Copyable code blocks
- Theme toggle
- Server-rendered by default
- Astro 6
- Tailwind CSS v4
- Inter
- JetBrains Mono
- MDX (available for lessons that need components)
- Node.js 22.12+
- pnpm
git clone https://github.com/colinvkim/learn.git
cd learn
pnpm installStart the dev server:
pnpm devBuild for production:
pnpm buildRun any Astro CLI command:
pnpm astro checklearn/
├── src/
│ ├── components/
│ │ ├── content/ # MDX callout components (Note, Tip, Warning, Steps)
│ │ ├── icons/
│ │ └── site/ # Docs-style shell (sidebar, header, layout)
│ ├── content/
│ │ ├── courses/ # Course entries (.md / .mdx)
│ │ └── lessons/ # Lessons nested per course
│ ├── lib/
│ │ └── content/ # Content querying utilities
│ ├── pages/
│ └── styles/
├── public/
├── CONTENT-PREFERENCES.md # Authoring guidelines
├── astro.config.mjs
└── src/content.config.ts # Typed collection schemas
Live in src/content/courses/. Accept .md and .mdx.
title: npm and pnpm
description: Learn what npm and pnpm are, the problem they solve, and how to choose between them with a clear mental model.
status: published
sortOrder: 1
topics:
- npm
- pnpm
tags:
- npm
- pnpmLive in src/content/lessons/<course>/. Accept .md and .mdx.
title: Introduction
description: Start with the big picture.
course: npm-and-pnpm
status: publishedRead CONTENT-PREFERENCES.md before writing or revising lessons.
The short version:
- Write for readers with little or no prior knowledge
- Define terms before depending on them
- Explain one tool or concept at a time
- Compare tools only after each one makes sense on its own
- Use Markdown by default; MDX only when components add real value
MIT. See LICENSE for details.