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…
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.
git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git cd freeCodeCamp git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
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.
| Folder | What 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. |
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.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Self-study | Adults moving into tech | Follow a certification on the site, from the first lesson to the exam | A learner starts Responsive Web Design, finishes its required projects, passes the exam and claims the certification. |
| Language learning | Developers who want English, Spanish or Chinese for work | Work through a language certification, module by module | A developer takes A2 English for Developers, which has warm-ups, lessons, practice exercises, review pages and quizzes. |
| Interview preparation | Job seekers | Use the interview material the README lists | A job seeker works through Coding Interview Prep and Project Euler, both on the README’s list. |
| Curriculum contributors | Volunteers who improve the curriculum, its project user stories and its tests | Run only the block they changed, test it, then open a pull request | A volunteer fixes one workshop step, builds just that block and runs its tests before pushing. |
| Platform contributors | Developers who know JavaScript, React and Node.js | Run the client and the API on their own machine and fix a bug or a screen | A 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.
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.
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.
| Way | What the maker lists |
|---|---|
| Learn on the site | A browser. The README links the certifications’ Learn pages and a sign-in page. |
| Local machine | 4 CPU cores, 8 GB of RAM, 10 GB of disk, Git, Node.js 24.x, pnpm 12.x and Docker Compose 2.x. |
| Windows | WSL2, 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 Container | Git, Docker Desktop given 4 CPUs and 16 GB of memory, VS Code and the Dev Containers extension. |
| GitHub Codespaces | A fork on GitHub. A free monthly quota applies, then it is paid. |
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.
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.
| Command | What the maker says it does |
|---|---|
pnpm run develop | Starts the API server and the client with a full curriculum build, for thorough testing. |
FCC_BLOCK='workshop-curriculum-outline' pnpm run develop | Builds and runs only that block. FCC_SUPERBLOCK and FCC_CHALLENGE_ID work the same way. |
pnpm run seed | Creates test users and inserts them into MongoDB, with exams and surveys. |
pnpm run seed:certified-user | Creates a test user with certifications fully completed. It signs you out. |
FCC_BLOCK='workshop-curriculum-outline' pnpm run test-curriculum-content | Tests one block of the curriculum. Run pnpm -F=@freecodecamp/curriculum install-puppeteer once first. |
pnpm test-api | Runs the server test suite. pnpm test-client and pnpm playwright:run cover the client and the end to end tests. |
pnpm run clean | Uninstalls 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
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
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.
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.
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
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 themcurriculum/: 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 setupe2e/: 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 editorsample.env: the example settings you copy to .envThe 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.
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.
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.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.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
Updated by Mindket to the current version of this kit.
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.
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…
Qwen · Kit
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…
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…
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…
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…
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.…