Free knowledge, structured from the ground up.
A nonprofit, open-source education platform where every concept maps to its prerequisites.
What is it Β· Overview Β· Quick start Β· Layout Β· Stack Β· Roadmap Β· Contributing Β· Sponsor
Most "free" knowledge online is organized for retrieval, not for learning. You can look up what a Fourier transform is on Wikipedia in 30 seconds. Actually learning it without a class? That's a week of figuring out what to read first.
BlueLearn is a graph of concepts where every page declares its prerequisites. Hit a term you don't know? The prerequisite is one click away. Community-written, optionally expert-verified, AGPL-3.0, free forever.
This repository is the product monorepo: web client, API, and database. The marketing site is closed-source.
π¬ Join the Discord β Β· π bluelearn.org β Β· πΊ YouTube β
A 23-minute walkthrough of what BlueLearn is, why it's nonprofit, and how the prerequisite graph changes how you read a concept page.
You'll need Node.js 20+, pnpm 10+, the Supabase CLI, and Docker (for the local Supabase stack).
# 1. Clone and install
git clone https://github.com/bluelearn-org/bluelearn.git
cd bluelearn
pnpm install
# 2. Start local Supabase (Postgres + Auth on docker)
pnpm supabase:start
# 3. Copy env files and fill in the values supabase printed
cp api/.dev.vars.example api/.dev.vars
# 4. Run app + api side-by-side
pnpm dev:api # Workers dev β http://localhost:8787
pnpm dev:app # Vite dev β http://localhost:3000The Vite dev server proxies API calls to localhost:8787, so the browser
sees one origin and you don't have to fight CORS.
π‘ Tip:
pnpm devruns bothappandapiin parallel through pnpm workspaces.
bluelearn/
βββ app/ React 19 Β· TanStack Start Β· TanStack Router/Query
β shadcn/ui Β· Tailwind 4 Β· Vite
βββ api/ Hono on Cloudflare Workers
β Routes: /subjects Β· /walkthroughs Β· /guides
βββ supabase/ Postgres Β· Auth Β· Storage β migrations + RLS policies
βββ docs/
β βββ architecture.md System overview + diagram
β βββ monorepo.md Why one repo instead of three
β βββ overall-system.md Editorial pipeline + verifier design
β βββ database-schema.md ERD walkthrough
β βββ open-questions.md Active design debates
βββ .github/
βββ workflows/ci.yml app + api in parallel
βββ ISSUE_TEMPLATE/ bug Β· feature Β· guide proposal
βββ PULL_REQUEST_TEMPLATE.md
βββ CODEOWNERS
βββ FUNDING.yml
Why a monorepo? See docs/monorepo.md β short
version: atomic cross-stack changes, one CI, one onboarding flow,
type-safety end-to-end via Hono's hc<AppType>.
| Layer | Tech | Why |
|---|---|---|
| Frontend | React 19 Β· TanStack Start Β· TanStack Router/Query Β· shadcn/ui | Type-safe routing, cache-aware data, accessible primitives |
| API | Hono on Cloudflare Workers Β· @hono/zod-validator |
Edge-fast, tiny, type-safe end-to-end with the frontend |
| Database | Supabase (Postgres 15 Β· GoTrue Auth Β· Storage) | Managed Postgres + RLS, JWT auth, file storage in one |
| Tooling | pnpm workspaces Β· TypeScript Β· ESLint Β· Prettier Β· Vitest | One install, one CI, one style |
| CI/CD | GitHub Actions (parallel jobs per package) | Fast feedback, easy to extend |
| Wire types | Hono AppType exported from api/src/index.ts |
hc<AppType> gives the frontend full request/response types |
Decentralized editorial verification: signing the canonical concept history into a verifiable log. Tools under exploration: SUI Β· Move Β· Walrus. Skills welcome from contributors interested β these are not on the Phase 1 critical path.
| Phase | Status | Focus |
|---|---|---|
| 1 | π’ Active | The Core β data model, graph traversal, basic UI, community seed |
| 2 | βͺ Next | Universal Access β i18n, expert verification tooling, API formalize |
| 3 | βͺ Future | Decentralization β protocol extraction, self-host, independent mirrors |
Full roadmap: bluelearn.org/pages/roadmap.html
Small project, tight loop. New contributors land their first PR within a day on a good week. CONTRIBUTING.md is the full guide.
The shortest path:
- Find a
good first issueor open one. - Comment that you'd like to take it.
- Set up locally and open a draft PR early.
- Ping
#contributingon Discord anytime.
Frontend β TypeScript proficiency, React, TanStack ecosystem (router + query), UI/UX sense. Backend β TypeScript on Workers (Hono), Supabase / Postgres, RLS familiarity. Generalist bonus skills β accessibility, i18n, performance budgets. Phase 3 R&D bonus β web3 smart contracts (SUI, Move), Walrus storage.
Thanks to everyone who has helped shape BlueLearn.
BlueLearn is fiscally sponsored β 501(c)(3) pending. Every dollar funds infrastructure (Supabase, Cloudflare, Discord), editorial review, and making content available offline in low-bandwidth regions.
- One-time / recurring donation β bluelearn.org/donate
- GitHub Sponsors β coming once the org is live
- Help in other ways β star the repo, share the project, open an issue, send a PR
| Stars | |
| Forks | |
| Open issues | |
| Open PRs | |
| Discord members |
- Code β AGPL-3.0-or-later. Any service that exposes this code over a network must publish its source.
- Content β CC BY-SA 4.0. Concept pages and editorial material remix freely with attribution and share-alike.
By contributing you agree your work is licensed under the applicable license above. See CONTRIBUTING.md for sign-off details.
Built openly Β· bluelearn.org Β· Discord Β· GitHub