Contributing to Mozilla projectsď
This page is here to help you get from âI want to build Firefoxâ to âIâm building my own Firefoxâ to âI can contribute to Firefoxâ. So if youâd like to help Mozilla build the best web browsers in the world, youâre in the right place.
Need help?
The Mozilla community prides itself on being an open, accessible, and friendly community for new participants. If you have any difficulties getting involved or finding answers to your questions, please come and ask your questions in our chatroom, where we can help you get started.
We know even before you start contributing that getting set up to work on Firefox and finding a bug thatâs a good fit for your skills can be a challenge, and weâre always looking for ways to improve this process: making Mozilla more open, accessible, and easier to participate with. If youâre having any trouble following this documentation, or hit a barrier you canât get around, please join us in the Introduction room on Matrix.
What skills do I need?ď
Mozilla maintains small and large projects and we are thrilled to have contributors with very diverse skills:
If you know C++, Rust, JavaScript, HTML or CSS, you can contribute to the core layers of Firefox and many other Mozilla projects.
If you know Rust, you can also contribute to the Rust programming language itself, numerous crates like grcov or Stylo, Firefoxâs parallel CSS engine, WebRender, Firefoxâs GPU-based 2D rendering engine, and Neqo, our QUIC/HTTP3 networking stack.
If you know Kotlin, you can contribute to Firefox for Android (code name: âFenixâ). Fenixâs code is integrated into the same repository as Firefox Desktop.
If you know Swift, you can contribute to Firefox and Firefox Focus for iOS.
If you know C++, you can contribute to our VPN client.
If you know C++ and programming language implementations, you can contribute to SpiderMonkey, our JavaScript engine.
If you know JavaScript, you can contribute to PDF.js, the PDF viewer shipped with Firefox.
If you know C++, JavaScript or machine learning, you can contribute to Firefox Translations, our local, privacy-preserving translation engine.
If you know Make, shell, Perl, or Python, you can contribute to our build systems, release engineering, and automation. If you know Rust, you can also contribute to sccache, our compiler caching tool used to speed up Firefox builds.
If you know Go or JavaScript, you can contribute to Taskcluster, our CI infrastructure.
If you know C, you can contribute to NSS, our cryptography library.
There are even many ways to contribute to the Mozilla mission without programming. If getting involved in design, support, translation, testing, or other types of contributions sparks your interest please see the Volunteer Opportunities wiki or the Mozilla community site.
Perhaps you do not know programming yet, but you want to start learning? There are plenty of resources available on the MDN Web Docs!