Show HN: Donut Browser, a Browser Orchestrator

84 andrewzeno 34 5/30/2025, 4:09:55 AM donutbrowser.com ↗
Hi HN,

I'm excited to share my open source project, a browser orchestrator. It's purpose is to make it easy to manage many browser profiles on one system. Currently it only works on MacOS, but since I've built it using Tauri (which is a Rust backend and TypeScript frontend), I expect to add Linux and Windows support in the future.

I've built it primarily for myself as I use a lot of browsers and having an easy way to manage all of my profiles would make (have made, actually) my dock less cluttered haha. Also, part of why I built it is because as someone who doesn't really care about anti-detect features (which I might support in the future), I don't understand how they cost so much for a very limited number of profiles in pretty much all anti-detect browsers. I feel like a lot of people feel the same and will cover their use cases with my free tool.

If you try it, please share your feedback! I haven't seen any open source projects like this and want to learn more about how people might use it.

Comments (34)

TechDebtDevin · 18h ago
This is really awesome, I do this myself with https://github.com/go-rod/rod

I have hacky cli tools I've built with it that manage lots of different browser profiles for scrapers. I need some sort of API though so I'm not sure Donut will do it for me, however, I may find some use for it.

ttoinou · 14h ago
Amazing thank you. I thought about that years ago but since I never saw anyone do it I thought something must be wrong if nobody does it.
Theofrastus · 1d ago
Looks great! Useful for privacy but also to keep work and private life separated. Will be on the lookout for other OS versions!
tgv · 23h ago
Firefox offers multiple ways to do that: you can use containers or launch different profiles from about:profiles. The latter has no way of telling the windows apart, unfortunately. This tool seems quite handy, though.
crtasm · 21h ago
Setting a different visual theme for each Firefox profile works well for me.
ttoinou · 14h ago
Are you… me ? I have 6 browsers for 6 different independent profiles. Instead of using browser profiles I need different browsers for different features (no google tracking, youtube, business services, web development etc.) I was wondering if I was the only one crazy

Would be practical to have a unified way to install extensions in all of them

andrewzeno · 1h ago
Thanks for the suggestion! I'll think how it can be added in a sane manner
diddeb · 12h ago
This is awesome. Thanks for your efforts!

Seeing it's not signed by Apple, I was wondering if you'd be open for a donation to get you a proper account so the app can be distributed more "solidly" without Gatekeeper in the way.

Let me know. More than happy to get you in there.

andrewzeno · 1h ago
Oh wow, this is a very generous offer. Thank you! It might take me a while to get the Apple Developer account to do so, not for the financial reasons. I've noted your concern and will get the app signed the moment I have a chance to do that.
nithssh · 1d ago
This is great for web developers who have to manually write multi-browser compliant code. Fat frameworks might take care of the cross compat stuff, but for those raw dogging, this will be good.
squeegee_scream · 19h ago
Related: https://github.com/johnste/finicky, “A macOS app for customizing which browser to start”. Write a JSON file to tell it when to open a link in a certain browser, to strip certain strings like utm codes, etc
banditelol · 7h ago
I tried this before, but since I often need to open different browser even if a link came from the same app, I ended up moving to https://github.com/will-stone/browserosaurus

Not to say you cant use both tho

andrewzeno · 19h ago
Thanks for sharing! This project has "automatic URL editing", which is something I'd like to add my app. Great to learn that there is a real product with this feature.
leonnatus · 1d ago
This is nice, just the other week I was trying to create different profiles that connect to separate proxies. This is a far nicer solution.
jchw · 19h ago
Not to distract from this but if you're primarily using Firefox I really like Container Tabs for this. With the Multi-Account Container Tabs extension, you can set a SOCKS proxy per container, then set certain origins to always open in a given container. You can even use it with Wireproxy to give tabs an individual Wireguard VPN as an exit route, though Firefox can't authenticate a SOCKS proxy so a secure setup may be challenging.

Sidenote: the Firefox VPN integration is lame. For some reason it's only possible to change the destination per container, but seemingly you can't set some containers to be on VPN and some off. I figured the value-add for Firefox VPN (e.g. over just using Mullvad) would literally be deep integration but sadly it's not very impressive. You can do better with Wireproxy.

andrewzeno · 1d ago
Hope you like it! I found it a much nicer experience compared to using the Foxyproxy extension or configuring PAC files.
dtj1123 · 19h ago
This looks awesome. Is there any support for automation frameworks like puppeteer?
andrewzeno · 18h ago
Not yet. I'd like to add it in the future, but it's going to be pretty time consuming as frameworks like playwright, which support both Firefox and Chromium, run a patched version of Firefox. I definitely need to learn more about the differences between it and something like Selenium, which can run both Firefox-based and Chromium-based browsers without patches.
vouaobrasil · 1d ago
This actually looks like a cool project. Is it easy to move profiles from one computer to another with it?
andrewzeno · 1d ago
They are stored in ~/Library/Application Support/DonutBrowser/profiles. So right now you can use something like Syncthing to synchronize the data across desktops. Once the project matures enough, I may add add end-to-end encrypted sync. If you just want to manually do it, it's as easy as copying the profile folder and the .json file with the same name.
flowerthoughts · 1d ago
Thanks for sharing, but I'm curious what problem this solves. You're clearly stating what type of solution it is in "it's purpose is to make it easy to manage many browser profiles on one system."

But why am I looking for this solution? I personally use Chrome, and sometimes have to test things on Firefox, but that's either one-offs or using Puppeteer.

The closest I get is under the Default Browser feature: "Forget about opening links in the wrong browser. Donut Browser will allow you to choose what browser you want to use for each link."

Perhaps some example where you've found the default browser feature useful?

andrewzeno · 1d ago
Sorry, just saw your comment. Copying from another thread, I use it to more privately browse the web, separate my personal and professional accounts, and manage links. For example, when I open OneDrive link, I don't want it to open in my work profile. It's not a big deal, but it allows to keep personal and professional lives a little better.

Also, since the ads companies are migrating from solely using your IP and cookies for tracking to creating a comprehensive browser fingerprint, it allows you to better control what data you feed to them.

hoppp · 1d ago
I got 5 browsers installed each has different extensions and I use browser profiles.

This could help me, once its released on linux I give it a shot

phrotoma · 22h ago
What are "anti detect" features?
andrewzeno · 21h ago
Features that make the same browser binary have a different browser fingerprint with a fresh user profile.

For example, faking location data, fonts, browser version, user agent, ssl certificates, available browser features, etc. Different anti-detect browsers offer different sets of features, but none will allow you to, say, pretend to be a Firefox user on Linux when you are a Chromium user on Windows, because it is possible to detect the engine and underlying system based on JavaScript and CSS behavior, if the website really wants to know that.

AFAIK, the most common use case for anti-detect browsers is competitive research, bypassing restrictions (not just location-based), and emulating specific user profile.

tonyhart7 · 22h ago
for creating mass trial account
varun_ch · 1d ago
I think this is someone that would be really helpful to me. I use Firefox, which has fairly ‘meh’ browser profile support at the moment. If I click a link systemwide, it’ll usually open in the wrong profile (whatever Firefox considers the ‘default’)

I used to use Arc, and loved the system they had to let you pick a profile to open a link with.

Would this let me see a prompt when clicking on a link, and let me decide which Firefox profile to use/additionally pick other browsers? That sounds like it would be perfect.

andrewzeno · 1d ago
Yes, it already does! You just need to select donut as the default browser
varun_ch · 1d ago
That sounds great! I actually made something very similar to this (a middle man to set as my default browser), but for some reason it was incredibly slow to open specific Firefox profiles. I’ll take a look at how you implemented yours :)
andrewzeno · 1d ago
In Tauri, registering your app as a handler for a URL schema is very easy, all of the hard work is already done at https://v2.tauri.app/plugin/deep-linking/ haha. If you haven't played with it, I highly recommend it. It's really nice.

Oh, and for web protocols specifically, I also have to prompt the user to register as the default browser for security reasons, but that's about it. Sorry for ruining the magic :D

Pixelious · 21h ago
This looks promising, will definitely give it a shot. Good stuff!
mrtksn · 1d ago
looks pretty cool. Is it for creating multiple accounts on online services? I.e. for creating and managing Instagram and Twitter account accounts.
andrewzeno · 1d ago
You can do that, yes, but if you are going to need too many profiles (Over 10, I would say), your best option is to use an anti-detect browser or something like Camoufox. If it's under 10, the application has proxy support. But outside that, there a many use cases. I use it to privately browse the web, separate my personal and professional accounts, and manage links. If you have multiple accounts and you open a random link, you have an option to select where you want to open it.
mlnj · 23h ago
Was not aware of Camoufox. Looks great.