How to understand freecodecamp.org codebase on github

hi, I am an intermediate MERN stack developer, I recently started to contribute to the freecodecamp.org codebase on GitHub, I did fix some first timer issues, as I am trying to tackle some other issues, I am getting stuck, as I am not familiar to large codebase like this,
here are some problems I am facing, and I’d appreciate it if you guys give me some pointers or point to some resources.

  1. Every time I run the project locally, it takes too long to start

  2. my changes are not reflecting when I hit ctrl + s, as it used to normal react, node project.

  3. also I would appreciate it if you guys mention some tips and pointers to make my opensource journey fun and efficient

Welcome there :wave:

It is excellent to hear you are contributing :rocket: .

I am not sure what pointers you would like here? The codebase does take a long time to start up. Part of this is because it is a large codebase. Part of this is because it has a lot of build steps. Part of this is because the tools used, and the way they are used are not necessarily the best for “speed”.

Often, I will not follow the docs, and instead free up some local compute by:

  1. Do not run a local instance of MongoDB. Instead, use MongoDB Atlas (the cloud version).
  2. Do not run pnpm run develop. My old laptop used to freeze doing this, because too much memory was required at one time. So, I run pnpm run develop:client in one terminal, and pnpm run develop:server in another once the former was finished with most/all of its build. In that order!

Otherwise, it might help for you to use our Gitpod setup. It is very easy to use, and is usually a lot more snappy than local development. It is mentioned in the docs

Would you mind being more specific here?

Some changes are a part of the initial build, and are not watched for changes. Other changes (e.g. Markdown file in curriculum/), are watched, but will require a refresh in the browser before they show.

Getting to know a codebase is often best done by just developing specific features in it or fixing bugs, and discovering as you go along. The freeCodeCamp/freeCodeCamp repo is a mono-repo. So, some of the tooling/projects within it are not even necessary to know about for development.

Hope this helps