
Engineering service
Firefox & Gecko Browser Development
Deep Gecko and Firefox source-level engineering: Rust, SpiderMonkey, browser UI, privacy behavior, enterprise policies, custom defaults and cross-platform builds. We use policies where they are enough and change the source where they are not, then maintain the result across every Firefox release.
- 15+ years of experience
- 300+ projects delivered
- Clients worldwide
- NDA available
Overview
What this is, and when it is the right call
Firefox is built on the Gecko engine and the SpiderMonkey JavaScript engine, with a growing share of components written in Rust. Its source lives in mozilla-central and is built with the mach tool. It is a different codebase from Chromium, with its own extension system and policy model.
Many Firefox customizations need no fork. Enterprise policies, preferences and autoconfig cover a lot of ground. We start there, and move to source patches only for what configuration cannot reach.
Who this is for
- Organizations that need Firefox configured and locked down across many machines.
- Teams building a privacy-focused or branded browser on Gecko instead of Chromium.
- Companies that want to know whether they need a fork at all before committing to one.
- Products that already ship a Firefox-based build and need help keeping it current.
How it works
Architecture at a glance
Anatomy of a customized Firefox
Your build
Branding, default settings, search, new tab and onboarding.
Configuration and patches
Policies and preferences first; source patches only where needed.
Firefox and Gecko
Gecko engine, SpiderMonkey, browser UI and Rust components, kept as close to upstream as possible.
Build and release
- Windows
- macOS
- Linux
mach builds, CI, installers, signing and update delivery.
- Your productWhat your users see
- Our engineeringModifications and protections
- UpstreamKept as close to unmodified as possible
- Platforms and releaseBuild, sign and deliver
What we offer
What we engineer: Firefox & Gecko Browser Development
mach-Based Build Pipeline Setup
We configure the mach tool and mozconfig files so your team can produce reproducible Firefox builds from mozilla-central on Windows, macOS and Linux.
policies.json and Autoconfig Deployment
We write enterprise policy files and autoconfig scripts that lock settings, manage certificates and control update behavior without touching source code.
WebExtensions Development
We build Firefox extensions against the WebExtensions APIs, including the places where Firefox's implementation differs from Chrome's.
Necko Networking Stack Changes
We modify Necko, Firefox's networking layer, for proxy handling, certificate behavior or request routing that policies cannot reach.
Stylo and Rendering Path Tuning
We work with Stylo, Firefox's Rust-based CSS engine, and the rest of the Gecko rendering path when a project needs rendering behavior changed rather than just styled.
ESR Channel Tracking
We maintain builds against Firefox's Extended Support Release schedule for organizations that need a longer-lived base than the rapid release channel.
Deliverables
What you get
- 01
Customization assessment
A written breakdown of which of your requirements need a policy, an extension or a source patch.
- 02
Policy and preference set
A tested policies.json and preference configuration for your deployment, including autoconfig where it applies.
- 03
Branding and default experience
Name, icons, home and new-tab pages, search engines and first-run flow.
- 04
Source patches, if required
A small patch series on a named Firefox version for anything configuration cannot do.
- 05
Build and release pipeline
A mach-based build setup with CI, packaging, signing and update delivery for the platforms you choose.
- 06
Upgrade runbook
Steps for moving your build onto new Firefox releases, or onto ESR if that suits your needs.
Compare
Three ways to customize Firefox
These are ordered from lightest to heaviest. Most projects should stop at the first option that meets the requirement.
| Method | What it can do | Effort to maintain | Use when |
|---|---|---|---|
| Enterprise policies and preferences | Set defaults, lock settings, control updates, block features, manage extensions and certificates | Low | You want a managed, configured Firefox and stock Firefox binaries are acceptable. |
| Extension or theme | Change page behavior, add UI within extension APIs, restyle the browser | Low to medium | Your feature fits the WebExtensions APIs and can be installed into existing Firefox. |
| Source patches (custom build) | Change browser internals, engine behavior, built-in UI and default features | High | You need behavior that policies and extensions cannot provide, or you ship your own branded browser. |
Why it matters
What this gives you
Configuration Before Code
Most Firefox requirements are met with policies.json and preferences, so you avoid the ongoing cost of a source patch unless you actually need one.
A Rust-Backed Engine
Gecko's CSS engine and several other components are written in Rust, which gives Firefox a different memory-safety profile from a Chromium-based browser.
An Independent WebExtensions Implementation
Firefox implements the WebExtensions standard itself rather than tracking Chromium's, so extension behavior and review process differ from the Chrome Web Store.
Tooling Built for mozilla-central
The mach command line wraps build, test and lint steps for Firefox's specific tree layout, which shortens the ramp-up time for engineers new to the codebase.
Our approach
How a Firefox project runs
Assess
We list your requirements and match each one to the lightest method that can meet it.
You get: A method-by-requirement assessment
Configure
We build and test the policy and preference set on the Firefox release channel you choose, including ESR if a longer-supported base fits your organization.
You get: A tested configuration
Patch where needed
For remaining gaps we write source patches, keeping each one small and documented.
You get: A patch series on a named version
Build and test
We set up mach builds and CI, then test your features and core browsing on each platform.
You get: Reproducible builds and test results
Release and maintain
We set up signing, packaging and updates, and document how to move to new Firefox versions.
You get: Release pipeline and upgrade runbook
When this is not the right fit
A few cases where this approach may not be the best choice for you.
- A policy or an extension solves your problem. We will say so first, as it costs far less to maintain.
- Your product needs Chromium-only features or unchanged Chrome Web Store extensions. Start from Chromium instead.
Tech stack
Technologies we use
The engines, APIs and tools behind our firefox & gecko browser development work.
FAQ
Questions engineers ask before starting
Often policies, preferences and autoconfig are enough, especially for managed deployments. A fork makes sense when you need engine or UI changes they cannot make, or you ship a separately branded browser.
Our services
Related services
Explore more services that work alongside this one.

Talk to a Browser Engineer
Talk to Firefox and Gecko Engineers
Tell us what your Firefox-based product has to do. We will tell you where configuration ends, where source changes begin and what it costs to maintain.

