Developer guide

There are lots of ways to contribute to the Mozilla project: coding, testing, improving the build process and tools, or contributing to the documentation. This guide provides information that will not only help you get started as a Mozilla contributor, but that you'll find useful to refer to even if you are already an experienced contributor.

Documentation topics

Getting Started
A step-by-step beginner's guide to getting involved with Mozilla.
For new Mozilla developers
A directory of articles which are particularly helpful for new Mozilla developers.
Working with Mozilla Source Code
A code overview, how to get the code, and the coding style guide.
Build Instructions
How to build Firefox, Thunderbird, SeaMonkey, or other Mozilla applications.
Development process overview
An overview of the entire Mozilla development process.
Managing multiple profiles
When working with prerelease versions of Firefox, it's often helpful to have multiple Firefox profiles, such as one for each channel, or for different kinds of testing.
Getting documentation updated
How to ensure that documentation is kept up to date as you develop.
Mozilla modules and module ownership
This article provides information about Mozilla's modules, what the role of a module owner is, and how module owners are selected.
Code snippets
Useful code samples for a wide variety of things you might need to figure out how to do.
Mozilla development strategies
Tips for how to make the most of your time working on the Mozilla project.
Debugging
Find helpful tips and guides for debugging Mozilla code.
Performance
Performance guides and utilities to help you make your code perform well (and to play nicely with others).
The Mozilla platform
Information about the workings of the Mozilla platform.
Mozilla
Much more additional information about Mozilla coding practices.
Adding APIs to the navigator object
How to augment the window.navigator object with additional APIs.
Interface Compatibility
Guidelines for modifying scriptable and binary APIs in Mozilla.
Customizing Firefox
Information about creating customized versions of Firefox.
Task-Graph Generation
What controls the jobs that run on a push to version control? How can you change that?
Obsolete Build Caveats and Tips
A place to put build tips which are no longer relevant to building the latest version of the code from main but are relevant when building old codebases.
Firefox Source Docs
Web-hosted documentation built from the mozilla-central source code.

Tools

Bugzilla
The Bugzilla database used to track issues for Mozilla projects.
DXR
Next generation of searching Mozilla's source code. In active development.
SearchFox
Another option for Mozilla code searching. Indexes JS as well as C++, includes blame capabilities. In active development.
Mozilla build VM
A VirtualBox compatible virtual machine configured with all the software needed to build and work on Firefox.
TaskCluster
TaskCluster is the task execution framework that supports Mozilla's continuous integration and release processes.
Treeherder
Treeherder shows the status of the tree (whether or not it currently builds successfully). Check this before checking in and out, to be sure you're working with a working tree.
Perfherder
Perfherder is used to aggregate the results of automated performance tests against the tree.
Crash tracking
Information about the Socorro crash reporting system.
Callgraph
A tool to help perform static analysis of the Mozilla code by generating callgraphs automatically.
Developer forums
A topic-specific list of discussion forums and mailing lists where you can talk about Mozilla development issues.
Mozilla Platform Development Cheat Sheet (archive.org)
Brian Bondy's list of frequently referenced information for platform developers. Brian Bondy took down codefirefox.com, but the archived cheatsheet might still be useful.
Firefox development video tutorials
Brian Bondy's video tutorials on Firefox development.