Show HN: Donut Browser, a Browser Orchestrator

(donutbrowser.com)

91 points | by andrewzeno 9 days ago ago

42 comments

  • wellhome 2 days ago ago

    The anti-detect browser space has essentially become a “bread and butter” necessity — many people with multi-account needs are more than willing to pay for a stable and streamlined experience. Open-source projects that can appeal to these users are great, of course, but once you reach a certain user base, the temptation to commercialize becomes hard to resist (after all, there was a tool that used to promise 1,000 free profiles but later walked back that promise). Hope you can find a sustainable balance in the long run. Big support! (grammar improved by AI)

  • TechDebtDevin 8 days ago 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 8 days ago 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 9 days ago 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 9 days ago 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 9 days ago ago

        Setting a different visual theme for each Firefox profile works well for me.

  • squeegee_scream 8 days ago 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 8 days ago 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 8 days ago 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.

  • nithssh 9 days ago 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.

  • ttoinou 8 days ago 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 8 days ago ago

      Thanks for the suggestion! I'll think how it can be added in a sane manner

      • ttoinou 7 days ago ago

        Cool. Do you also use tons of browsers ? How many total tabs do you usally have ? I can easily have 300 tabs, including 30 useful

        • andrewzeno 7 days ago ago

          Lol I don't think I ever had 300 tabs open. Must be a nightmare to navigate haha. I believe I also used to have 6 browsers, but with Donut it now fluctuates at around 10 profiles, depending on what I need to do.

          In terms of tabs, I rarely have over 30 tabs open. The moment I feel like I'm getting overwhelmed with the number of open things, I close all tabs that I don't absolutely need.

  • diddeb 8 days ago 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 8 days ago 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.

      • diddeb 8 days ago ago

        Awesome. Again, thanks. Can't wait to install this, signed.

  • bookmark99 7 days ago ago

    Super duper stuff. Love the interface and ease of use.

    I can't seem to figure out how to stop and start browsers while restoring my sessions, i'm I missing something obvious?

    • andrewzeno 7 days ago ago

      Thanks! I also like when the UI is not cluttered with different inputs.

      What do you mean by "Stop and start browsers while restoring my sessions"? You should be able to start and stop the browser as long as it's not updating. If there is an update and you decide to install right then, you won't be able to open any profile that uses that browser during the update.

      If you mean importing an existing profile, I haven't added that yet. But it's at the top of my list!

      And if you mean something else... Then I'm not sure. Please either share more details or create a bug report if you feel like this is not the correct behavior.

  • leonnatus 9 days ago 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 8 days ago 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 9 days ago ago

      Hope you like it! I found it a much nicer experience compared to using the Foxyproxy extension or configuring PAC files.

  • vouaobrasil 9 days ago ago

    This actually looks like a cool project. Is it easy to move profiles from one computer to another with it?

    • andrewzeno 9 days ago 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 9 days ago 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 9 days ago 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 9 days ago 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

  • dtj1123 8 days ago ago

    This looks awesome. Is there any support for automation frameworks like puppeteer?

    • andrewzeno 8 days ago 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.

  • phrotoma 9 days ago ago

    What are "anti detect" features?

    • andrewzeno 9 days ago 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 9 days ago ago

      for creating mass trial account

  • varun_ch 9 days ago 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 9 days ago ago

      Yes, it already does! You just need to select donut as the default browser

      • varun_ch 9 days ago 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 9 days ago 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 9 days ago ago

    This looks promising, will definitely give it a shot. Good stuff!

  • mrtksn 9 days ago 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 9 days ago 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 9 days ago ago

        Was not aware of Camoufox. Looks great.

  • crashabr 9 days ago ago

    [dead]

  • CrossdresserSWE 8 days ago ago

    [flagged]