Browser Developers

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.

See what we engineer
  • 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

  1. Your build

    Branding, default settings, search, new tab and onboarding.

  2. Configuration and patches

    Policies and preferences first; source patches only where needed.

  3. Firefox and Gecko

    Gecko engine, SpiderMonkey, browser UI and Rust components, kept as close to upstream as possible.

  4. 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
Configuration comes first. Source patches are added only where policies and preferences cannot do the job.

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.

Three ways to customize Firefox
MethodWhat it can doEffort to maintainUse when
Enterprise policies and preferencesSet defaults, lock settings, control updates, block features, manage extensions and certificatesLowYou want a managed, configured Firefox and stock Firefox binaries are acceptable.
Extension or themeChange page behavior, add UI within extension APIs, restyle the browserLow to mediumYour 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 featuresHighYou 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

  1. Assess

    We list your requirements and match each one to the lightest method that can meet it.

    You get: A method-by-requirement assessment

  2. 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

  3. 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

  4. 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

  5. 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.

GeckoSpiderMonkeyRustStylomachNeckoWebExtensions APIpolicies.jsonC++ESR

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.

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.

Tell Us What You're Building