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.
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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?
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.
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.
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.
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 :)
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
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.
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.
Would be practical to have a unified way to install extensions in all of them
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.
Not to say you cant use both tho
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.
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?
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.
This could help me, once its released on linux I give it a shot
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.
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.
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