[HN Gopher] Show HN: Donut Browser, a Browser Orchestrator
___________________________________________________________________
Show HN: Donut Browser, a Browser Orchestrator
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.
Author : andrewzeno
Score : 83 points
Date : 2025-05-30 04:09 UTC (18 hours ago)
(HTM) web link (donutbrowser.com)
(TXT) w3m dump (donutbrowser.com)
| mrtksn wrote:
| looks pretty cool. Is it for creating multiple accounts on online
| services? I.e. for creating and managing Instagram and Twitter
| account accounts.
| andrewzeno wrote:
| 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 wrote:
| Was not aware of Camoufox. Looks great.
| vouaobrasil wrote:
| This actually looks like a cool project. Is it easy to move
| profiles from one computer to another with it?
| andrewzeno wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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
| nithssh wrote:
| 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.
| varun_ch wrote:
| 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 wrote:
| Yes, it already does! You just need to select donut as the
| default browser
| varun_ch wrote:
| 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 wrote:
| 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
| Theofrastus wrote:
| Looks great! Useful for privacy but also to keep work and private
| life separated. Will be on the lookout for other OS versions!
| tgv wrote:
| 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 wrote:
| Setting a different visual theme for each Firefox profile
| works well for me.
| leonnatus wrote:
| 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.
| andrewzeno wrote:
| Hope you like it! I found it a much nicer experience compared
| to using the Foxyproxy extension or configuring PAC files.
| jchw wrote:
| 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.
| phrotoma wrote:
| What are "anti detect" features?
| tonyhart7 wrote:
| for creating mass trial account
| andrewzeno wrote:
| 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.
| Pixelious wrote:
| This looks promising, will definitely give it a shot. Good stuff!
| squeegee_scream wrote:
| 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
| andrewzeno wrote:
| 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.
| dtj1123 wrote:
| This looks awesome. Is there any support for automation
| frameworks like puppeteer?
| andrewzeno wrote:
| 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.
| TechDebtDevin wrote:
| 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 wrote:
| 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.
| ttoinou wrote:
| 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
| diddeb wrote:
| 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.
___________________________________________________________________
(page generated 2025-05-30 23:01 UTC)