---
title: Developer guide
slug: Mozilla/Developer_guide
tags:
- Developing Mozilla
- Landing
- Mozilla
- NeedsTranslation
- TopicStub
translation_of: Mozilla/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 handy to refer to even as an old hand.
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.
-
Bugzilla
-
The Bugzilla database used to track issues for Mozilla projects.
-
MXR
-
Browse and search the Mozilla source code repository on the Web.
-
DXR
-
Next generation of searching Mozilla's source code. In active development.
-
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.
-
TBPL (Tinderbox Push Log)
-
Tinderbox Push Log 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 crash reporting system.
-
Performance tracking: Datazilla and Graphs
-
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.
-
Firefox development video tutorials
-
Brian Bondy's video tutorials on Firefox development.