You will need to fork the freeCodeCamp repository on GitHub to get your own copy of the codebase. This will allow you to follow a Git-based workflow to contribute to freeCodeCamp.
Follow these steps to fork the repository:
Click the button below to fork the freeCodeCamp repository on GitHub.
Next, you need to choose between setting up a cloud IDE or your own machine.
If you’re looking to make a one-time contribution or want the fastest setup, use GitHub Codespaces which provides a ready-to-code environment in your web browser using devcontainers. For long-term contributions where you prefer local development, you can set up freeCodeCamp on your local machine.
Feature
GitHub Codespaces Recommended
Your own machine
Hardware requirements
No minimum hardware requirements
Powerful minimum hardware requirements
Software installation
No need to install any software
Additional software needed
Repository status
Always up-to-date repository
Manual updates required
Setup complexity
Easy setup with devcontainers, works in any browser
Larger download and setup time
Internet dependency
Requires an internet connection to work
Minimal internet connection required once set up
Performance
Consistent cloud-based performance
Depends on your machine capabilities
Usage limits
60 hours free per month for personal accounts
No usage limits
Environment consistency
Identical setup for all contributors via devcontainers
May vary between different machines and OS
Once you have decided, follow the relevant tab below to continue with the setup.
We have automated the development environment setup using devcontainers. With GitHub Codespaces, you get a consistent, ready-to-code environment that runs in your browser with all dependencies pre-installed.
Launch a Codespace from your fork:
Go to your fork at https://github.com/YOUR_USER_NAME/freeCodeCamp
Click the green Code button
Select the Codespaces tab
Click Create codespace on main
Your codespace will automatically set up the development environment using our devcontainer configuration. This includes:
Installing Node.js, pnpm, and all dependencies
Setting up MongoDB
Configuring VS Code extensions
Preparing the environment variables
Wait for the setup to complete (usually 2-3 minutes)
Here is a minimum system requirement for running freeCodeCamp locally:
System Requirements
A fast CPU (4+ cores)
At least 8 GB RAM
macOS, Linux
8-10 GB of free disk space
(Optional) 30-50 Mbps internet connection
Windows users: You will need more resources like memory and CPU than above, to allow running the project on Linux with WSL.
Start by installing the prerequisite software for your operating system.
Run the following commands to validate the versions:
Terminal window
node-v
Terminal window
pnpm-v
Once you have the prerequisites installed, you need to prepare your development environment. This is common for many development workflows, and you will only need to do this once.
Install Git or your favorite Git client, if you haven’t already. Update to the latest version; the version that came bundled with your OS may be outdated.
This will download the entire freeCodeCamp repository to your projects directory.
(Optional) The localized versions of our curriculum are stored in the i18n-curriculum repo. If you intend to run a localized version of the curriculum follow the next steps, or skip to the next section.
Now that you have downloaded a copy of your fork, you will need to set up an upstream remote to the parent repository.
As mentioned earlier, the main repository is referred to as the upstream repository. Your fork is referred to as the origin repository.
You need a reference from your local clone to the upstream repository in addition to the origin repository. This is so that you can sync changes from the main repository without the requirement of forking and cloning repeatedly.
Change the directory to the new freeCodeCamp directory if you aren’t already there:
Terminal window
cdfreeCodeCamp
Add a remote reference to the main freeCodeCamp repository:
Your Codespace comes pre-configured with all dependencies installed and services like the database already running. You can start developing immediately:
In the terminal, run:
Terminal window
pnpmrundevelop
This will start both the API server and the client applications.
Wait for the process to complete. It can take a few minutes, you will see a notification to for the 8000 port when it’s ready.
Click on the notification to open the client application in a new browser tab.
The default API keys and environment variables are stored in the file sample.env. This file needs to be copied to a new file named .env that is accessed dynamically during the installation step.
Terminal window
cpsample.env.env
The keys in the .env file are not required to be changed to run the app locally. You can leave the default values copied over from sample.env as-is.