from Hacker News

Show HN: Firebuilder: A complete Firefox customization tool

by explosion-s on 8/24/24, 1:22 PM with 12 comments

Hi HN! I've been working lately on unifying firefox configuration. Many people work on creating custom `userChrome.css` files and modules, browser user scripts, etc, but it's hard to actually use these a lot of the time. It usually involves cloning a repo, finding a folder and lots of copy paste.

My tool (firebuilder) has an interactive CLI to select what to apply, (e.g. firefox hardening, custom CSS, etc) then creates a brand new profile folder for you. You can also seamlessly port from an existing profile folder to preserve all of your history, bookmarks, extensions, etc.

For those more interested in using it programmatically everything is compiled from a config.json file which contains all the config necessary to build the said firefox profile. It currently supports: - userChrome tweaks - user.js (usually hardening related tweaks) - fx-autoconfig scripts - extending existing profiles. You can copy custom files or presets like history, bookmarks, extensions, etc

Also its defaults (if you just have a blank config.json) do the following: - Apply hardening that removes telemetry, sponsors, some mozilla features - Keeps the browser very usable, doesn't remove unnecessary features or make things break - Adds vibrancy for macOS

Firebuilder also supports whatever firefox tool you've been currently working on. It can install custom features from any git based repo, including downloading from releases, and keeping resources as well (so even if your theme sets custom icons you're still good!). Additionally if whatever you've created for firefox has about:config based settings these can be defined in the repo's json file as well.

The codebase is mainly JavaScript, and is then compiled and run with Bun. I've intentionally tried to make it easy to add new features via PR and easy to extend via configuration. See the examples folder for lots of examples.

Feel free to give any feedback, ask questions, etc, and drop a star if you like the project!

  • by ryann_wisc on 8/29/24, 6:26 AM

    Good effort. If it works the way you're saying, I'll be using it a lot
  • by 361994752 on 8/29/24, 5:53 AM

    Because of the hassle of configuring Firefox, I've been using Floorp for quite some time. But it is also not perfect.. This is definitely interesting. If Mozilla can also sync userChrome between machines it will be perfect...
  • by creesch on 8/29/24, 8:38 AM

    This looks really neat! I never really dabbled with firefox customizations on this level as it is a bit of a hassle, easy to mess up and easy to forget the details. Having it all in a json based format where you can easily reapply it on a fresh profile makes it much easier.
  • by OtomotO on 8/29/24, 5:57 AM

    "Keeps the browser very usable, doesn't remove unnecessary features or make things break"

    It does NOT remove UNNECESSARY features?

    Sorry, non native speaker, am I missing a double negation or just not grokking it?

  • by fny on 8/29/24, 11:34 AM

    Is it possible to disable CORS? Ive often wanted to make mashups for personal use and bots where that would be handy.
  • by postepowanieadm on 8/29/24, 6:57 AM

    Nah, can't remove Pocket integration.