A NeetCode-style, interactive JavaScript course with a Go-powered CLI runner and a React web UI. Clone it, run it locally, learn JavaScript from fundamentals to production.
"Forge your JavaScript mastery through runnable lessons, production-shaped examples, and test-driven checkpoints."
- 🖥️ CLI-First: Run, test, and submit lessons from your terminal
- 🧪 Test-Driven: Every lesson has automated tests you must pass
- 📊 Progress Tracking: Local progress stored in
~/.js-forge/progress.json - 🌐 Web UI: Browse curriculum, view lessons, track progress in a beautiful interface
- 🏗️ Production Patterns: Learn real-world patterns, not toy examples
- 🎯 12 Checkpoints: Self-evaluation with confidence metrics
- 🏆 Achievement Badges: Gamified learning experience
- 🔒 Progressive Unlocking: Complete lessons to unlock advanced topics
git clone https://github.com/yourusername/js-forge.git
cd js-forgecd cmd/runner
go build -o js-forge
# Move to PATH or use alias
alias js-forge="$(pwd)/js-forge"js-forge init# List all lessons
js-forge list
# Run a lesson starter code
js-forge run month-01/week-01/lesson-01
# Run tests against your solution
js-forge test month-01/week-01/lesson-01
# Submit when all tests pass
js-forge submit month-01/week-01/lesson-01
# Check progress
js-forge progress
# Get next lesson suggestion
js-forge nextcd web
npm install
npm run devOpen http://localhost:3000 to browse the curriculum visually.
| Week | Topics | Lessons |
|---|---|---|
| Week 1 | Environment, Variables, Types | 3 lessons |
| Week 2 | Control Flow, Functions, Scope | 3 lessons |
| Week 3 | Objects, Arrays, Data Structures | 3 lessons |
| Week 4 | Equality, Strict Mode, Debugging | 3 lessons |
Checkpoint: Build a CLI analysis tool
| Week | Topics | Lessons |
|---|---|---|
| Week 5 | Async JS, Event Loop, Promises | 3 lessons |
| Week 6 | Classes, Modules, Generators | 3 lessons |
| Week 7 | DOM, Storage, Web Workers | 3 lessons |
| Week 8 | Testing, Bundlers, TypeScript | 3 lessons |
Checkpoint: Build a library with tests & types
| Week | Topics | Lessons |
|---|---|---|
| Week 9 | Component Architecture, State, Routing | 3 lessons |
| Week 10 | APIs, Auth, Real-Time | 3 lessons |
| Week 11 | Performance, Accessibility, Security | 3 lessons |
| Week 12 | TaskForge Capstone Project | 1 project |
Final Deliverable: Production-ready task management system
| Command | Description |
|---|---|
js-forge init |
Initialize progress tracking |
js-forge list |
List all available lessons |
js-forge next |
Suggest next lesson |
js-forge run <lesson> |
Run lesson starter code |
js-forge test <lesson> |
Run tests for a lesson |
js-forge submit <lesson> |
Submit solution & record progress |
js-forge progress |
Show overall progress |
js-forge hint <lesson> |
Show hints for a lesson |
js-forge/
├── cmd/runner/ # Go CLI application
│ └── main.go
├── internal/
│ ├── validator/ # Exercise validation logic
│ ├── runtime/ # JS environment management
│ └── reporter/ # Progress reporting
├── curriculum/ # All course content
│ ├── month-01/
│ ├── month-02/
│ └── month-03/
├── shared/
│ └── test-utils/ # JavaScript test runner
├── web/ # React web UI
│ ├── src/
│ └── package.json
├── go.mod
└── README.md
Each lesson follows this structure:
lesson-XX/
├── README.md # Lesson instructions & context
├── starter/
│ └── index.js # Your starting point (TODOs inside)
├── solution/
│ └── index.js # Reference solution (hidden)
└── tests/
└── spec.js # Automated test suite
- Read the
README.mdto understand the problem - Implement the TODOs in
starter/index.js - Run
js-forge testto validate your solution - Submit with
js-forge submitwhen all tests pass
- 📋 Curriculum Roadmap: Visual tree of all lessons with progress indicators
- 📖 Lesson Viewer: Read content, view starter code, reveal hints
- 📊 Progress Dashboard: Stats, badges, streaks, activity history
- 🔗 Deep Links: Direct URLs to any lesson (
/lesson/month-01/week-01/lesson-01)
This course is designed for the 01edu peer-learning model:
- Pair Programming: Complex topics (Closures, Promises) have suggested pair sessions
- Peer Review: Students review 2 peers' solutions per checkpoint
- Mentorship: Advanced students mentor after Month 1 completion
- Gamification: Achievement badges and streak tracking
This curriculum follows the roadmap.sh JavaScript Roadmap:
- ✅ Beginner topics (variables, types, control flow, functions)
- ✅ Intermediate topics (async, classes, modules, error handling)
- ✅ Advanced topics (memory, performance, security)
- ✅ Extended: Frontend architecture, full-stack integration
- Fork the repository
- Create a feature branch
- Add your lesson following the template in
curriculum/TEMPLATE/ - Run tests:
go test ./... - Submit a pull request
MIT License — feel free to use for personal learning or institutional teaching.
Start forging your JavaScript skills today.
git clone https://github.com/yourusername/js-forge.git
cd js-forge && js-forge init && js-forge next