--- title: Developer Guide slug: Developer_Guide tags: - Developing Mozilla - NeedsTranslation - TopicStub translation_of: Mozilla/Developer_guide ---

Whether you're an old hand or just getting started, articles you can find starting from this page will help you while you're working on Mozilla development.

Documentation topics

Getting Started
A step-by-step beginner's guide to getting involved with Mozilla.
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.
Automated Testing
How to run Mozilla's automated tests, and how to write new tests.
How to submit a patch
After getting your patch written, you need to get it checked into the tree. This article explains the review process and how to get your patch approved.
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.
Adding APIs to the navigator object {{ gecko_minversion_inline("9.0") }}
How to augment the {{ domxref("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.
Virtual ARM Linux environment
How to set up an ARM emulator running Linux for testing ARM-specific, but not necessarily platform-specific, code. Useful for mobile developers.
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.

Tools

Bugzilla
The Bugzilla database used to track issues for Mozilla projects.
MXR
Browse and search the Mozilla source code repository on the Web.
Bonsai
The Bonsai tool lets you find out who changed what file in the repository, and when they did it.
Mercurial
The distributed version-control system used to manage Mozilla's source code.
Tinderbox
Tinderbox 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.
Crash tracking
Information about the Socorro and Talkback crash reporting systems.
Performance tracking
See performance information for Mozilla projects.
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 where you can talk about Mozilla development issues.
Mozilla Platform Development Cheat Sheet
Brian Bondy's list of frequently referenced information for platform developers.