Permalink
Switch branches/tags
Nothing to show
Find file Copy path
142 lines (80 sloc) 8.76 KB
Read these guidelines in English عربى 中文 Português русский Español

Contribution Guidelines

Hello 👋!

freeCodeCamp.org is possible thanks to thousands of kind volunteers like you. We are grateful for your contributions, and we are excited to welcome you aboard.

We strictly enforce our "Code of Conduct". Take a moment to read it. It's only 196 words long.

Happy contributing 🎉!

Here are some fun ways you can help

You can choose to contribute to any area that interests you:

  1. Contribute to this open source codebase. Help editing guide articles, coding challenges, or fix bugs on the learning platform.

  2. Help campers on our public forum. Answer their coding questions or give them feedback on their coding projects

  3. Help us add subtitles to our YouTube channel videos.

Contribute to this open source codebase

We have a huge open source codebase of the thousands of coding challenges and guide articles.

You can help us:

Research, Write and Update our guide articles

What are Guide articles?

Guide articles help you get a quick understanding of a technology concept. These are short, plain-English explanations that you can read before going on to more in-depth resources.

You can find an example article about HTML Anchor Elements here.

What can I write an article about?

We welcome your help writing these articles. You don't have to be an expert in a topic to write about it—this entire Guide is open source, so even if you make a mistake, another contributor will eventually correct it.

To help, find a stub article on our Guide website, write the article, then open a pull request to replace the stub with your article. A pull request is how you'll suggest changes. It lets others know about your changes, review them and adopt them.

If you can't find a stub about the topic you'd like to write about, you can open a PR that creates the stub and includes your draft article.

If you would like to help improve guide articles, here's how to work on guide articles.

Create, Update and Fix Bugs in our coding challenges

All our Coding challenges are curated by the community, bringing in expert knowledge from volunteers like you.

You can help expand them and make their wording more clear. You can update the user stories to explain the concept better and even remove redundant ones. You can also improve the challenge tests to make them more accurately test people's code.

If you're interested in improving these coding challenges, here's how to work on coding challenges.

Translate guide articles and coding challenges

You can help us translate our Guide articles and Coding challenges for a language that you speak. Currently we have translated versions in:

We would love your help in improving the quality of these translations. Millions of people use the English language version of freeCodeCamp.org, and we expect millions more to use these translated versions as well.

Help us fix bugs in freeCodeCamp.org's learning platform

Our learning platform runs on a modern JavaScript stack. It has various components, tools and libraries including but not limited to Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, and more.

Broadly,

  • We have a Node.js based API server.
  • A set of React based client applications.
  • A script that we use to evaluate our Frontend projects.

Contributing to this requires some understanding of APIs, ES6 Syntax and a lot of curiosity.

Essentially we expect certain basic familiarity, with some of the aforementioned technologies, tools, and libraries. That said, you are not required to be an expert on them.

Feel free to ask us questions, on the related issue threads, and we will be glad to clarify. When in doubt, you can reach Mrugesh Mohapatra @raisedadead or Stuart Taylor @bouncey from our platform dev team to help you with this.

If you want to help us improve our codebase, here's how to setup freeCodeCamp locally.

Frequently Asked Questions

How can I report a bug, that is not on board?

If you think you've found a bug, first read the "Help I've Found a Bug" article and follow its instructions.

If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug. We have a pre-defined issue template to help you through this.

Please note, that any issues that seek coding help on a challenge, will be closed. The issue tracker is strictly for the codebase related issues and discussions. You should seek assistance on the forum before reporting whenever in doubt.

How can I report a security issue?

Please don't create GitHub issues for security issues. Instead, please send an email to security@freecodecamp.org and we'll look into it immediately.

I am stuck on something that is not in these documentation. How can get help?

Feel free to ask for help in:

We are excited to help you contribute to any of the topics that you would like to work on. Make sure you search for your query before posting a new one. Be polite and patient. Our community volunteers and moderators are always around to guide you through your queries.

I am new to GitHub and Open Source in general:

Read our How to Contribute to Open Source Guide.

What do these different labels mean, that are tagged on issues?

Our community moderators triage issues and pull requests based on their priority, severity and other factors. You can find a complete glossary of their meanings here.

You should go through Help Wanted or first timers welcome issues for quick lookup of what is available for you to work on. These are up for grabs and you do not need a go ahead before working on these.

If these issues lack clarity on what needs to be done, feel free to ask questions in the comments.

I found a typo, should I report an issue before I can make a pull request?

For typos and other wording changes, you can directly open pull requests without first creating an issue. Issues are more for discussing larger problems associated with code, or more structural aspects of the curriculum.