# Betterfox: a user.js that hardens Firefox without breaking sites

> Betterfox is an opinionated about:config preference list for Mozilla Firefox, distributed as a single user.js file. It aims to make everyday browsing more private and faster while keeping site breakage low, and it is not a browser of its own.

**yokoffing/Betterfox** — Firefox user.js for optimal privacy and security. Your favorite browser, but better.

- Repository: https://github.com/yokoffing/Betterfox
- Stars: 10,882 · Forks: 255
- Language: JavaScript
- License: MIT
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/yokoffing-betterfox

## What Betterfox actually changes about Firefox

Betterfox is not a browser, an extension, or a patched build. It is a user.js file: a plain-text list of preference assignments that Firefox reads from a profile folder at startup. The README describes the project as "about:config tweaks to enhance Mozilla Firefox" and states that it makes Firefox more private and secure "without using third-party code." That last phrase is the design constraint. Nothing is injected into the page, no add-on gets access to your tabs, and the changes live in the same preference store you can inspect yourself at about:config.

The target reader is someone who already uses Firefox and does not want to switch browsers to get better defaults. The README names three goals: minimalism, efficiency, and privacy, with the explicit qualifier that privacy changes should not cause site breakage. That qualifier is what separates the project from harder-edged preference lists. The list is curated from three guides in the same repository, Securefox, Peskyfox, and Smoothfox, each covering a different intent: data protection, a distraction-free browsing experience, and Edge-like smooth scrolling respectively. The user.js file is the union of what the maintainer considers essential.

## The user.js mechanism and what happens on restart

A user.js file is applied when Firefox starts. Each line assigns a preference, and the value is written into the profile's prefs.js at launch. The practical consequence is that user.js is not a one-time import. If you later change one of those preferences through the Firefox settings interface, the next restart can overwrite it from user.js again, because the file is re-read every time. To make a change stick, you edit user.js itself, which is why the README points readers at the Common Overrides wiki page before installation rather than after.

That model also explains the repository layout. The top level holds the combined user.js plus the individual guide files (Securefox.js, Peskyfox.js, Smoothfox.js, Fastfox.js), a policies.json for enterprise-style policy deployment, an install.py script, and directories for personal notes and for specific forks (waterfox/, zen/). The split matters: if you only want the scrolling behavior, Smoothfox.js is the file to read, and the README marks it optional. The combined user.js is the recommended entry point for most people.

## Installing Betterfox on Firefox: the documented steps

The README lists a numbered procedure. It begins with creating a backup profile, then downloading the user.js file from the raw GitHub URL by right-clicking and choosing Save Link As. Before moving the file, it asks you to review Common Overrides and Optional Hardening and make any changes you need. Then you locate the profile folder through Firefox itself.

In the URL bar, type the profiles page and press Enter. For the profile you want to use, click Open Folder in the Root Directory section. Move the downloaded user.js into that folder and restart Firefox.

```bash
# in Firefox's URL bar, not a shell
about:profiles
```

After the restart, the README recommends two additional layers that are not part of user.js: an ad blocker such as uBlock Origin with the project's recommended filter lists, and DNS-level protection from a provider listed in the Optional Hardening wiki page. Those two steps are described as complementary, not required for the preference file to take effect.

One detail worth noting before you start: the README states that Betterfox for Firefox 153 ESR is available on a separate branch. If you are on an ESR build, the main-branch user.js may not match your version, and the ESR tree is the documented place to look.

## The breakage trade-off, and where Betterfox is the wrong tool

The README's own framing is the clearest limitation. The project is described as "an opinionated preference list inspired by the law of diminishing returns and the minimum effective dose." That is a deliberate choice to stop short of maximum hardening. The stated goal is privacy "without causing site breakage," which means some protections that a stricter list would enable are left off or made opt-in through the Optional Hardening page.

If your requirement is a browser that is hardened out of the box with no configuration review, Betterfox is the wrong shape of tool. It expects you to read two wiki pages and decide. It also assumes you can find and edit a profile folder, and that you accept preference changes being reapplied at every startup. And because it is a preference list rather than a fork, it cannot change anything that is not exposed as a Firefox preference.

The README adds a distribution warning that is easy to skim past: "Do not trust sites that claim to be Betterfox. This page is the only official source." For a file that ends up inside your browser profile, that is a meaningful supply-chain note. Download it from the repository, not from a mirror.

## Betterfox compared with Arkenfox and LibreWolf

The two comparisons people search for most are Arkenfox and LibreWolf, and the difference is structural rather than a matter of which list is longer.

Arkenfox is also a user.js-style preference list for Firefox, so it shares the same delivery mechanism. The README does not compare the two, so the honest statement is that the difference lies in how aggressive each list is and how much manual override work each expects. Betterfox positions itself around the minimum effective dose and explicitly avoids breakage; a list built for maximum hardening will generally require more per-site exceptions. If you want fewer decisions, Betterfox's stated posture is the lighter one. If you want the strictest available defaults and are prepared to maintain overrides, that is a different posture.

LibreWolf is a different category entirely: a Firefox fork that ships hardened defaults, rather than a file you drop into Mozilla's build. The README's Browser Integration section is relevant here. It notes that forks such as Zen, FireDragon, Midori, Mercury, Waterfox, Floorp, Pulse, and Ghostery Private Browser incorporate Betterfox "to some extent," but that they "often modify it in ways that reduce its effectiveness," and it advises applying the user.js file even when using Firefox forks. So the project's own position is that a fork is not a substitute for the file.

## Maintenance, versioning, and the MIT licence

Betterfox tracks Firefox releases rather than sitting still. Recent releases are numbered to match Firefox versions, with 154.0 published on 2026-09-06, 153.0 on 2026-07-24, and 152.0 on 2026-07-02. The repository is not archived and the last push was on 2026-09-07. That versioning scheme is the upgrade cost in one line: when Firefox ships a new major version, you check whether a matching Betterfox release exists and replace your user.js.

Because the file is re-read at startup, an upgrade is a file replacement plus a restart, not a migration. The cost that does not go away is the review step. Any preference you overrode locally has to be re-applied, or kept in a separate file you manage yourself. The repository's personal/ directory and the separate guide files suggest the maintainer expects people to keep their own deltas rather than editing the canonical file in place.

The project is MIT licensed, which is permissive and permits reuse in other projects. That is consistent with the Browser Integration list, where forks ship modified copies. The licence does not carry any warranty, and it does not make the preference values safer or more correct for your threat model. Nothing here is legal advice; if you redistribute Betterfox inside a product, read the LICENSE file in the repository.

## Conclusion

Betterfox suits Firefox users who want privacy and speed changes without adopting a new browser, and who are willing to review Common Overrides and Optional Hardening before restarting. It is the wrong choice if you want a hardened browser out of the box or cannot tolerate any site breakage, since the README frames the list as a trade-off between protection and breakage. Before installing, verify that your Firefox version matches the current release line, check whether an ESR branch exists for your version, and confirm the raw user.js URL is the official one, because the README warns that other sites claim to be Betterfox.

## FAQ

### What is Betterfox for Firefox?

It is an opinionated list of about:config preferences for Mozilla Firefox, delivered as a user.js file that you place in a profile folder. The README describes it as making Firefox more private and secure without using third-party code.

### How do I install Betterfox?

Create a backup profile, download user.js from the raw GitHub URL with Save Link As, review Common Overrides and Optional Hardening, then open about:profiles in Firefox, click Open Folder in the Root Directory section, and move user.js into that folder. Restart Firefox for the preferences to apply.

### What are the differences between Arkenfox and Betterfox?

Both are preference lists for Firefox, so they use the same delivery mechanism. Betterfox frames itself around the minimum effective dose and avoiding site breakage; the README does not document a direct comparison with Arkenfox, so the difference comes down to how aggressive each list is and how much override work each expects.

### How do I set up Betterfox?

The documented setup is the same as installation: back up a profile, download user.js, review Common Overrides and Optional Hardening, place user.js in the profile folder opened from about:profiles, and restart Firefox. Afterward the README suggests adding an ad blocker and DNS-level protection.

### Is Betterfox worth it?

That depends on what you want. The README positions Betterfox as privacy and performance changes without site breakage, at the cost of reviewing two wiki pages and reapplying your own overrides after each update. If you want a hardened browser with no configuration review, a fork is the closer match.

## Sources

- [Issues](https://github.com/yokoffing/Betterfox/issues)
- [License: MIT](https://github.com/yokoffing/Betterfox/blob/main/LICENSE)
- [README](https://github.com/yokoffing/Betterfox/blob/main/README.md)
- [Releases](https://github.com/yokoffing/Betterfox/releases)
- [yokoffing/Betterfox on GitHub](https://github.com/yokoffing/Betterfox)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/yokoffing-betterfox
