freecodecamp-curriculum

freecodecamp-curriculum — an installable skill for AI agents.

By reason-machines · 1,400 installs

npx skills add reason-machines/trending-skills --skill freecodecamp-curriculum

Source repository · Upstream listing

freeCodeCamp Curriculum & Platform Development Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. freeCodeCamp.org is a free, open source learning platform with thousands of interactive coding challenges, certifications, and a full stack curriculum. The codebase includes a React/TypeScript frontend, Node.js/Fastify backend, and a YAML/Markdown based curriculum system. Architecture Overview Local Development Setup Prerequisites Node.js 20+ (use nvm or fnm ) pnpm 9+ MongoDB (local or Atlas) A GitHub account (for OAuth) 1. Fork & Clone 2. Install Dependencies 3. Configure Environment Key .env variables to set: 4. Seed the Database 5. Start Development Servers Curriculum Challenge Structure Challenges are stored as YAML/Markdown files under curriculum/challenges/ . Challenge File Format js // This is an in line comment. / This is a multi line comment / js assert(code.match(/(\/\/)/).length 0); js assert(code.match(/(\/\ [\s\S]+?\ \/)/).length 0); js // Your starting code here js // inline comment / multi line comment / Challenge Types Type Value Description HTML 0 HTML/CSS challenges JavaScript 1 JS algorithm challenges JSX 2 React component challenges Vanilla JS 3 DOM manipulation Python 7 Python challenges Project 5 Certification projects Video 11 Video based lessons Creating a New Challenge Using the Helper Script Manual Creation 1. Find the correct directory under curriculum/challenges/english/ 2. Create a new .md file with a unique ID 3. Follow the challenge file format above Validate Your Challenge Writing Challenge Tests Tests use a custom assertion library. Inside hints blocks: JavaScript Challenges js assert.match(code, /let\s+myVariable/); js assert.strictEqual(myFunction(42), true); js const el = document.getElementById('main'); assert.exists(el); Available Test Utilities API Development (Fastify) Route Structure Adding a New API Route Database Access (Mongoose) Client (Gatsby/React) Development Adding a New Page Using the Redux Store i18n Translations Testing Unit Tests (Jest) Curriculum Tests E2E Tests (Playwright) Writing E2E Tests Key pnpm Scripts Reference Superblock & Block Naming Conventions Superblocks map to certifications. Directory names use kebab case: Block directories within a superblock: Common Patterns & Gotchas Challenge ID Generation Every challenge needs a unique 24 character hex ID: Adding Forum Links Every challenge needs a forumTopicId linking to forum.freecodecamp.org: Curriculum Meta Files Each block needs a meta.json : Testing with Authentication Troubleshooting MongoDB Connection Issues Port Conflicts Curriculum Validation Failures Node/pnpm Version Mismatch Client Build Errors Contributing Workflow Commit message prefixes: fix: , feat: , chore: , docs: , refactor: , test: Resources Contribution guide: https://contribute.freecodecamp.org Forum: https://forum.freecodecamp.org Discord: https://discord.gg/PRyKn3Vbay How to report bugs: https://forum.freecodecamp.org/t/how to report a bug/19543