Mindket

freeCodeCamp

Newversion 2 · updated
Star459k

Overview

The open source codebase and curriculum of freeCodeCamp.org, a community where you can learn to code for free, run by a donor-supported 501(c)(3) charity. The setup notes cover learning on the site, running the platform on macOS, Linux, WSL2, a Dev Container or Codespaces, and sending a change.

freeCodeCamp is an open-source project on GitHub in the Education category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

At a glance

Runs in
  • freeCodeCamp.org: the live site, in a browser, with nothing to install
  • macOS and Linux: the maker’s Local Machine setup, with Git, Node.js, pnpm and Docker Compose
  • Windows: the setup page says the project supports macOS and Linux only and to set up WSL2 first. GitHub Codespaces needs nothing installed on your machine
  • A Dev Container: VS Code, Docker Desktop and the Dev Containers extension, on your own machine
Start with
git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git
cd freeCodeCamp
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git

Platform

macOSOperating system
LinuxOperating system
DockerContainer
WindowsOperating system
VS CodeCode editor

About

What it is

freeCodeCamp is the open source codebase and curriculum of freeCodeCamp.org, which its README says “is run by a donor-supported 501(c)(3) charity”. The README also calls the site “a friendly community where you can learn to code for free” and says “This code is running live at freeCodeCamp.org”. The repository holds the platform and the curriculum behind it: lessons, workshops, labs, reviews and quizzes. Mindket’s setup notes say how to learn on the site, run the platform yourself, work on the curriculum and send a change.

  1. Open freeCodeCamp.org/learn and pick a certification
  2. Work through lessons, workshops, labs, reviews and quizzes
  3. Finish the 5 required projects
  4. Pass the exam
  5. Claim the certification
What is in the repository
FolderWhat it holds
curriculum/The lessons, grouped into superblocks, chapters, modules, blocks and challenges (legacy superblocks list blocks flat), with JSON files that set their order. These files are copyright freeCodeCamp.org and are not in the notes.
client/The web app people use, which the maker’s docs call the client. Its text for superblocks and blocks sits in client/i18n/locales/english/intro.json.
api/The API server. The setup page says it answers on port 3000 and serves its documentation at /documentation.
docker/The Docker Compose files that start MongoDB and Mailpit.
.devcontainer/The Dev Container and GitHub Codespaces setup.
e2e/The Playwright end to end tests.
packages/ and tools/Shared code, and the scripts for seeding the database, making new lessons and running the challenge editor.

Who it suits

Anyone who wants to learn web development, Python, databases or a professional language for free, and developers who want to help build the platform or its lessons. You do not need the repository to learn. The site is the product. The repository matters when you want to read how the lessons are stored, run your own copy or send a fix.

Who uses it, and how
IndustryWho uses itHow they use itExample
Self-studyAdults moving into techFollow a certification on the site, from the first lesson to the examA learner starts Responsive Web Design, finishes its required projects, passes the exam and claims the certification.
Language learningDevelopers who want English, Spanish or Chinese for workWork through a language certification, module by moduleA developer takes A2 English for Developers, which has warm-ups, lessons, practice exercises, review pages and quizzes.
Interview preparationJob seekersUse the interview material the README listsA job seeker works through Coding Interview Prep and Project Euler, both on the README’s list.
Curriculum contributorsVolunteers who improve the curriculum, its project user stories and its testsRun only the block they changed, test it, then open a pull requestA volunteer fixes one workshop step, builds just that block and runs its tests before pushing.
Platform contributorsDevelopers who know JavaScript, React and Node.jsRun the client and the API on their own machine and fix a bug or a screenA contributor fixes a contrast problem and titles the pull request in the maker’s format, such as fix(a11y): improved search bar contrast.

Skip the repository if you only want to learn. The site needs no install, and the maker’s setup is a development environment, not a production guide.

Where to use it

Learning happens on freeCodeCamp.org. The notes have a file for the site and for each place the code can run. The maker documents no setup for a coding agent, and its FAQ sets rules for AI tools.

  • freeCodeCamp.org: the live site, in a browser, with nothing to install
  • macOS and Linux: the maker’s Local Machine setup, with Git, Node.js, pnpm and Docker Compose
  • Windows: the setup page says the project supports macOS and Linux only and to set up WSL2 first. GitHub Codespaces needs nothing installed on your machine
  • A Dev Container: VS Code, Docker Desktop and the Dev Containers extension, on your own machine
  • GitHub Codespaces: a 4-core, 16 GB machine on GitHub’s servers, with nothing installed locally
  • Coding agents: the notes add a file with prompts and cautions, and the maker’s FAQ rules on AI tools

How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with a file for each way of using freeCodeCamp. Learning on the site needs nothing installed. Running the platform needs a fork of the repository first, which is your own copy on GitHub.

What you need first
WayWhat the maker lists
Learn on the siteA browser. The README links the certifications’ Learn pages and a sign-in page.
Local machine4 CPU cores, 8 GB of RAM, 10 GB of disk, Git, Node.js 24.x, pnpm 12.x and Docker Compose 2.x.
WindowsWSL2, and the page recommends an Ubuntu LTS release that Playwright supports. It also lists a Windows version that meets the WSL requirements, 6 or more cores, 12 GB of RAM or more and 20 GB of free disk or more.
Dev ContainerGit, Docker Desktop given 4 CPUs and 16 GB of memory, VS Code and the Dev Containers extension.
GitHub CodespacesA fork on GitHub. A free monthly quota applies, then it is paid.
  1. Fork the repository on GitHub. That gives you your own copy.
  2. Clone your fork and add the main repository. Use the first block below, with your GitHub name in place of YOUR_USER_NAME.
  3. Free port 27017. Stop any MongoDB server already using it.
  4. Install, seed and start the app. Run the second block. WSL2 users run pnpm run playwright:install-build-tools before pnpm install.
  5. Open http://localhost:8000. A full curriculum build takes several minutes first.

The setup page numbers these steps for a local machine. The first block clones your fork and adds the main repository as a second remote:

git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git
cd freeCodeCamp
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git

The second block creates the environment file, installs, starts MongoDB and Mailpit, seeds a test user and starts the app:

cp sample.env .env
pnpm install
docker compose -f docker/docker-compose.yml -f docker/docker-compose.ports.yml up -d
pnpm run seed
pnpm run develop

The page says a full curriculum build takes several minutes.

How to use it

Pick the job first. To learn, use the site. To change the platform or the lessons, run your copy and build only what you touch.

Commands the maker lists
CommandWhat the maker says it does
pnpm run developStarts the API server and the client with a full curriculum build, for thorough testing.
FCC_BLOCK='workshop-curriculum-outline' pnpm run developBuilds and runs only that block. FCC_SUPERBLOCK and FCC_CHALLENGE_ID work the same way.
pnpm run seedCreates test users and inserts them into MongoDB, with exams and surveys.
pnpm run seed:certified-userCreates a test user with certifications fully completed. It signs you out.
FCC_BLOCK='workshop-curriculum-outline' pnpm run test-curriculum-contentTests one block of the curriculum. Run pnpm -F=@freecodecamp/curriculum install-puppeteer once first.
pnpm test-apiRuns the server test suite. pnpm test-client and pnpm playwright:run cover the client and the end to end tests.
pnpm run cleanUninstalls all dependencies and cleans up caches.

To send a change, work on a new branch for each issue and never on main. The maker asks for conventional commit messages and pull request titles in the form type, optional scope and a short description. The types are fix, feat, refactor and docs. A pull request that changes how a page behaves should come with Playwright integration tests. The page’s example title is:

fix(curriculum): tests for the do...while loop challenge

Example

You want to see how the first lesson block of Responsive Web Design is stored. In curriculum/structure/superblocks/responsive-web-design-v9.json, the first chapter is html, its first module is basic-html and its first block is workshop-curriculum-outline. The block’s file in curriculum/structure/blocks/ gives it the label workshop and the layout challenge-grid, and lists its steps in order. Each step is a Markdown file named after its id, in curriculum/challenges/english/blocks/workshop-curriculum-outline/. Build and test only that block:

FCC_BLOCK='workshop-curriculum-outline' pnpm run develop
FCC_BLOCK='workshop-curriculum-outline' pnpm run test-curriculum-content

Mindket read these files on 3 November 2026 and did not run the platform, so no build time is measured here. To test just the first step, the maker’s page uses its id:

FCC_CHALLENGE_ID=6823ac607bfdbc46331b2559 pnpm run test-curriculum-content

For newcomers and experts

If you are new. Start on the site, not in the repository. You do not need Git, Node.js or Docker to learn. The setup page says you can delete your fork at any time and start again, so a mistake there costs little. The contributor FAQ sends beginners to the Basic Git Workflow page. If installing feels heavy, GitHub Codespaces installs nothing on your machine, and its first build takes several minutes.

For experts. The FAQ names the stack: Node.js, MongoDB, OAuth 2.0, React, Gatsby and Webpack. The repository is a pnpm workspace built with Turborepo, which the Git workflow page says the team uses for caching and parallel tasks. MongoDB runs as a replica set, which the compose file starts and initiates for you.

The curriculum build reads JSON structure files, and the FCC_ variables let you build one block, one superblock or one challenge alone. Translated challenges live in the i18n-curriculum submodule, which the file structure page says updates automatically. The FAQ says contributions to translate the curriculum are not accepted for now. In development, sample.env turns on a dev login mode, and the troubleshooting page says that sign-in route needs no password.

Good to know

The notes are Mindket’s own, read from the repository and the maker’s docs on 3 November 2026. They are not made or endorsed by freeCodeCamp.org, and they hold none of its lessons.

  • License: the README says the software is under BSD-3-Clause and the files in /curriculum are copyright © 2014 freeCodeCamp.org. The notes quote neither lesson text nor challenge files. Read the License section before you reuse a lesson
  • Development only: the setup pages describe a development environment. Mindket read no production guide for it, and did not run the platform
  • Versions: the setup page calls a Node.js or pnpm version other than the listed one the most common cause of a failed setup
  • Public port: in a codespace, port 3000 must stay public, and anyone with the URL can reach it. Stop the codespace when you finish
  • Force push: the Git workflow page’s sync step runs git reset --hard upstream/main and then git push origin main --force on your fork. It also warns that you lose any pull request made from your fork’s main
  • AI tools: the FAQ allows them in code, and says the team will not engage with replies on issues, pull requests or discussions that AI wrote. It may close low-effort pull requests
  • Reaching out: setup downloads packages and container images, and sample.env points at freecodecamp.org addresses for the forum, news and radio. The docs do not list what a running copy contacts
  • Removal: delete your clone, and stop and remove the Docker containers and the db-data volume with Docker’s own tools

README and files

README

freeCodeCamp: setup notes

This kit holds setup notes only. Mindket wrote them. The code and the curriculum are the files of the freeCodeCamp/freeCodeCamp repository: https://github.com/freeCodeCamp/freeCodeCamp

These notes are not made or endorsed by freeCodeCamp.org. GitHub's description of the repository is "freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free." The README's first heading is "freeCodeCamp.org's open-source codebase and curriculum". Source: https://github.com/freeCodeCamp/freeCodeCamp/blob/main/README.md

License: two parts, as the README's License section says. "The computer software is licensed under the BSD-3-Clause license." GitHub's repository answer names it BSD 3-Clause "New" or "Revised" License (BSD-3-Clause), and package.json says the same. "The learning resources in the /curriculum directory including their subdirectories therein are copyright © 2014 freeCodeCamp.org". So the lessons, workshops, labs, reviews and quizzes in curriculum/ are not under the BSD license. This kit holds none of them: it describes where they are and how to build and test them, and nothing else. Sources: https://github.com/freeCodeCamp/freeCodeCamp/blob/main/README.md, https://github.com/freeCodeCamp/freeCodeCamp/blob/main/LICENSE.md and https://api.github.com/repos/freeCodeCamp/freeCodeCamp

What it is

The code and the lessons behind freeCodeCamp.org. The README says freeCodeCamp.org "is a friendly community where you can learn to code for free" and "is run by a donor-supported 501(c)(3) charity", and that "This code is running live at freeCodeCamp.org". The FAQ page of the contributor docs says the platform "runs on a modern JavaScript stack" and names Node.js, MongoDB, OAuth 2.0, React, Gatsby and Webpack.

Folders at the top of the repository, as GitHub lists them (https://api.github.com/repos/freeCodeCamp/freeCodeCamp/git/trees/main):

  • api/ and client/: the two parts of the platform. package.json has develop:api and develop:client scripts that run them
  • curriculum/: the lessons and the structure files that order them (see setup/work-on-curriculum.md)
  • docker/: the Docker Compose files that start MongoDB and Mailpit
  • .devcontainer/: the Dev Container and GitHub Codespaces setup
  • e2e/: the Playwright end to end tests (package.json: playwright:run)
  • packages/ and tools/: shared code (the curriculum pages name packages/shared/src/config), and scripts. package.json points to tools/scripts/seed for seeding, tools/challenge-helper-scripts for new projects and tools/challenge-editor for the challenge editor
  • sample.env: the example settings you copy to .env

Two ways to use it

  1. Learn on the site. Nothing to install: open https://www.freecodecamp.org/learn . See setup/learn-on-the-site.md.
  2. Run your own copy to change the platform or the curriculum. The maker's guide describes a development environment, not a production deployment. See the setup files below.

What you need first

The maker's local setup page (https://contribute.freecodecamp.org/how-to-setup-freecodecamp-locally/) lists these for the Local Machine option:

| Need | Version | Note from the page |
|---|---|---|
| Git | latest | The version bundled with your operating system is often outdated |
| Node.js | 24.x | The "Active LTS" version |
| pnpm | 12.x | No note |
| Docker Compose | 2.x | Starts MongoDB for you |
| MongoDB Community Server | 8.x | Optional, only if you prefer to run MongoDB without Docker |

The page also asks for 4 CPU cores, 8 GB of RAM and 10 GB of free disk space on macOS or Linux. package.json says "node": ">=24" and "pnpm": ">=12" under engines, and its packageManager field names pnpm@12.15.0. The Dev Container and GitHub Codespaces options need no Node.js or pnpm install of your own. See their files.

Per-platform notes

  • setup/learn-on-the-site.md: using freeCodeCamp.org with no install, and what the repository's README says is on offer there
  • setup/local-machine.md: macOS and Linux, from the maker's Local Machine tab
  • setup/windows-wsl2.md: Windows, where the setup page says the project supports macOS and Linux only and to set up WSL2 first
  • setup/dev-container.md: VS Code, Docker Desktop and the Dev Containers extension
  • setup/github-codespaces.md: a codespace on GitHub's servers, and its two port traps
  • setup/work-on-curriculum.md: how the curriculum folder is organized, and the commands to build and test one part of it
  • setup/contribute-a-change.md: the Git workflow, the pull request title format and the maker's rules for a pull request
  • setup/troubleshooting.md: the maker's fixes for failed setups
  • setup/ai-agents.md: using Claude Code, Codex, Cursor and other agents (Mindket's notes, since the maker documents no setup for any agent)

Update or remove

To update your copy, follow the maker's Git workflow in setup/contribute-a-change.md. The maker's pnpm run clean "Uninstalls all dependencies and cleans up caches". The docs give no line that stops or removes the Docker containers. The compose file names the project freecodecamp-local and keeps MongoDB's data in a volume called db-data, so use Docker's own tools for both, and delete your clone's folder when you are done.

Outbound connections

  • Setup downloads dependencies and container images. The compose file at docker/docker-compose.yml names the images mongo:8.2 and axllent/mailpit. A Dev Container downloads a prebuilt image of "several gigabytes" on its first start.
  • Mailpit catches the outgoing email of your local copy at http://localhost:8025, instead of delivering it through a real email provider (the contributor docs' page on debugging outgoing emails).
  • sample.env has settings for services such as Auth0, Algolia and Stripe, and points FORUM_LOCATION, NEWS_LOCATION and RADIO_LOCATION at freecodecamp.org addresses. The docs do not list what a running local copy contacts, and Mindket did not run one. The setup page says "The defaults run the app as it is. Change them only if you want your own Auth0, Algolia or Stripe keys." Put no real key in a file you share.
  • A GitHub Codespace runs on GitHub's servers, so your work and its forwarded ports live there. See setup/github-codespaces.md.

Sources

Files
README.md  8 KB
setup/ai-agents.md  4 KB
setup/contribute-a-change.md  5 KB
setup/dev-container.md  3 KB
setup/github-codespaces.md  3 KB
setup/learn-on-the-site.md  4 KB
setup/local-machine.md  5 KB
setup/troubleshooting.md  4 KB
setup/windows-wsl2.md  3 KB
setup/work-on-curriculum.md  6 KB

10 files, 44 KB, downloaded as a zip.

What’s new

  • Version 2 · 2026-11-09

    Updated by Mindket to the current version of this kit.

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

alexfefunAsk HN: Is self-learning front end development through freeCodeCamp reliable?I'm a beginner in frontend development, currently only familiar with basic HTML and JavaScript. I'm looking to learn React next and considering using freeCodeCamp (https://github.com/freeCodeCamp/freeCodeCamp) as my learning resource. Has anyone here used freeCodeCamp for learning frontend,…1 point · 3 repliesAuralith.TecI have completed Learn HTML by Building a Cat Photo App #freecodecamp My first HTML project. I'am so excited for my new journey.🩷2 likes@bdall_1想学编程,却不知道先学什么、学完怎么练? 这 8 个 GitHub 项目可以分别解决这些问题: 1. developer-roadmap 查看不同开发方向的学习路线。 https://t.co/go6lGP0agB 2. freeCodeCamp 跟着课程和练习学习编程。 https://t.co/DYTTAnGdXz 3. free-programming-books 免费的编程书籍和学习资源合集。 https://t.co/uKEYSts8rG 4. build-your-own-x 通过亲手实现数据库、编译器等项目,理解它们的工作原理。 https://t.co/mWAUZSVUso…ZunarJ5Good coding groups for black women?One of the few times I wish we had dms here. :) I do not have many groups to offer, but for educational resources, here you go... Dig around on GitHub for Awesome Lists. There is so much out there: - https://github.com/sindresorhus/awesome#learn -…freeCodeCamp.orgIn programming, we have camel case, snake case, etc. But what about SPOOOOOKY case for Halloween? Yes, it's a thing. Because we said so. For today's coding challenge, go learn what it is on the freeCodeCamp mobile app.2 likes@wanerfu$80commonerSecond Life on GitHubGitHub itself uses the OSI definition in its ReadME guide to open source: > Many people think that Open Source simply means availability of the source code of a project, but that does only tell part of the whole story. > The Open Source Initiative (OSI) provides a commonly accepted definition of…Dudu caçando corongondós com landrola pra cafifaI just earned the Responsive Web Design certification @freeCodeCamp! Check it out here: freecodecamp.org/certificatio...1 like · 1 reply@laogeai不报班学编程,5 个免费资源:freeCodeCamp、developer-roadmap、awesome-python、awesome-go、JavaGuide。 https://t.co/d0vmqUbxppsytseThe Overflow Offline projectYou can also run FreeCodeCamp locally https://github.com/freeCodeCamp/freeCodeCamp/blob/main/docs/... And I funded to work to run that on an Android phone https://play.google.com/store/apps/details?id=space.atrailin...Joel FrancisYou must complete Freecodecamp.2 likes@the_osps• Earn free verified certifications in web development • Complete interactive coding challenges and projects • Get programming help from a friendly community

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar projects

See all in Education

Immich

immich-app · Kit

Immich’s AGPL-licensed server for your photos and videos, with a web app and phone apps. The phone backs up to it and it groups faces. These notes cover Docker…

New118k

Bun

oven-sh · Kit

The all-in-one toolkit for JavaScript and TypeScript apps. One executable holds a Node.js-compatible runtime, a package manager, a test runner and a bundler. T…

New96.7k

canvas-mcp

boyuchengz · Kit

Lets Claude, ChatGPT or another MCP client answer questions about your Canvas LMS courses, such as deadlines, grades and announcements, with read-only access.…

New119