As a writer, I live in my word processor. Precisely which app we rely on for TidBITS has changed over the years, starting with Nisus Writer Classic, then BBEdit, and now Google Docs. When we used Nisus Writer Classic, we also relied on a fileserver running AppleShare over IP to collaborate on files using a classic IN (available for editing) and OUT (checked out by someone) folder/versioning/renaming scheme. During our BBEdit years, we switched the collaboration side to the Subversion version control system, essentially treating our text like code (see “Wanted: Better Document Collaboration System,” 3 April 2006). And when we migrated to our current WordPress-based content management system (see “Next-Generation TidBITS Infrastructure in the Works,” 20 November 2017), we switched to doing all of our article writing and editing in Google Docs, which offers top-notch collaboration capabilities.
Of course, Google Docs is a Web app, and by default, it would nestle in among all the other tabs in a Web browser. That’s unacceptable for me since I often have multiple documents open along with way too many tabs for pages that I need to read, refer back to, or act on. (“Hi, my name is Adam, and I’m a tabaholic.”) As a result, I’ve always run Google Docs in a site-specific browser (SSB)—a utility that lets you turn a particular site or set of sites into a standalone app that has its own identity in the Dock, the App Switcher, and so on. Plus, I always switch to my primary word processor from wherever I am in other apps by pressing F1—that’s a Keyboard Maestro macro now, but I’ve been doing this since before Keyboard Maestro existed.
Apart from the core desire to turn Google Docs into a standalone app, I have several other requirements:
- Window and tab support: I work on a lot of documents, partly while juggling multiple TidBITS articles, but even more so in my role as president of the Finger Lakes Runners Club, which relies heavily on Google Docs and Google Sheets for administration, collaboration, and recordkeeping. I always keep one window open for TidBITS documents and another for FLRC documents; each has between 3 and 20 open tabs at any one time.
- Multiple domain support: I always keep the Google Drive Web app open as the first tab in each of those windows, and I double-click documents in Google Drive to open them in new tabs. The SSB thus needs to allow both drive.google.com and docs.google.com to co-exist in the same app.
- Receive incoming Google Docs links: When I click a docs.google.com URL in Slack or Trello for TidBITS, or in Mimestream or Discourse for FLRC, I want it to open in a new tab in my Google Docs app. (It very well may open in the wrong window, but that’s a trivial annoyance.) SSBs can’t control URL destinations on their own, of course, but there are Mac utilities that can—I’ve tested BrowserFairy and Choosy and will discuss them more at the end.
- Send external links to my default Web browser: I frequently click links in articles to read them or test that they go to the right place. I want those links to open in my default Web browser—Brave at the moment—for two reasons. First, it’s what I expect—all clicked links other than docs.google.com should open in Brave. Second, having them open in Brave makes it easy for me to view them on my left-hand screen while writing on my right-hand screen.
- Grammarly support: I’m a grudgingly huge fan of the Grammarly writing assistant service. Typos, doubled words, and other mistakes creep through in anyone’s writing, and while I don’t take many of Grammarly’s writing suggestions, it’s essential for catching hard-to-see errors. Grammarly has extensions for Chrome, Firefox, and Safari, but not all SSBs support browser extensions.
For a few years, I’ve relied on the free Epichrome, a Chrome- or Brave-based SSB created by Github user dmarmor (see “Make Site-Specific Browsers with Google Chrome,” 6 March 2015). Epichrome met all my criteria above with help from BrowserFairy or Choosy, although a recent significant update caused it to open external links clicked in Google Docs internally and send them to my main Web browser—an annoying duplication. I reported that bug, but shortly after, dmarmor announced that he would stop development on Epichrome at the end of 2021.
With the writing on the wall about Epichrome’s eventual fate, I decided it was time to look elsewhere. Here’s what I found—if you know of another SSB for the Mac that might meet my criteria, let me know in the comments.
BZG’s Coherence X makes it easy to create SSBs for numerous Web apps with a single click, although it offers configuration options that let you adjust the app name and starting URL. You can of course create an SSB for any other site you wish as well.
Coherence X’s advanced options are essential. The Get App Icon buttons let you download a different icon from the Web or choose an image file on your Mac (do a Google Images search for “AppName icon” for lots of choices). The Browser Engine button lets you choose between Chrome, Brave, and Edge—all three are Chromium-based engines, but you might prefer the ubiquity of Chrome, the privacy of Brave, or, well, Edge for some reason. (If you have them installed, Google Chrome Canary and Opera are also options.) Finally, the little button of sliders to the right of the three blue buttons provides access to more settings, some of which you’ll need to use:
- Use application as browser: When checked, Coherence X registers the SSB as a Web browser, which is necessary if you want to use a utility like BrowserFairy or Choosy to direct specific URLs to it.
- Use “Incognito” Mode: I have no use for this setting, but I could imagine a situation where you wouldn’t want your SSB to save browsing history, cookies, site data, or information entered in forms. (Remember, private browsing doesn’t hide your activity from websites or the organization that provides your Internet access.)
- Application whitelisting: This option controls how your SSB handles clicks on links within the SSB. When selected, it automatically ensures that links to the same domain as the SSB stay within the SSB. Later, using the Coherence Helper extension, you can set rules for what to do with other links—I prefer that they go to my default Web browser.
- Create as tabbed app: When checked, this option creates an SSB that supports tabs like a regular Web browser. That’s what I want for Google Docs, but if you didn’t want tabs, leave this unchecked to get an SSB that has only a single window.
- Icon style: Pick your preference.
Coherence X works well with BrowserFairy and Choosy. As a Chromium-based browser, it allows the installation of all Chrome extensions, including Grammarly. (BZG claims that you can import extensions and profiles from your browser and use them within created SSBs, but I didn’t run across that feature. It’s not important to me—installing Grammarly is easy enough if you set Coherence Helper to allow browsing to any URL temporarily.) As such, it ticks all my boxes above, and it’s currently my top choice for replacing Epichrome.
I do have one nit. When I click a link in Google Docs, the Coherence X SSB tries to open it in a new tab before the Coherence Helper extension realizes it should go to Brave instead. That results in a flash as a new blank tab opens and immediately closes. Cosmetically annoying, but far less so than the way Epichrome was opening all links in both new tabs and Brave.
Coherence X4 has a trial version that allows you to create three SSBs for free. If you need more than that, a license costs $29.99, or you can get it with a $9.99-per-month Setapp subscription.
As you might expect from its name, Chromeless can create SSBs from any Chromium-based Web browser—even more than Coherence X—and like many others, it lets you create window-only (“standard”) and tabbed apps.
However, Chromeless also lets you create “standard” WebKit-based apps that essentially encapsulate Safari, and it even claims experimental support for creating tabbed apps with the Firefox engine. Such flexibility could be important to some—I just want something that lets me use Grammarly, and Chromeless does that fine with the Brave engine.
Although Chromeless lets you edit the base URL for any SSB and remembers the open tabs across launches like any good Web browser, it always seemed to open a new Google Drive tab for my SSB at launch even though one was already open. A minor annoyance, joined by the fact that you cannot edit either the SSB name or icon.
Because it registers its SSBs as Web browsers, both BrowserFairy and Choosy can direct incoming docs.google.com URLs to the SSB. That was initially a little tricky to set up because Chromeless creates its apps by default in
~/Applications/Chromeless rather than the standard Applications folder. That appears to be a standard thing for Chromium-based browsers, but I was still surprised. It’s also a preference—you can set it to install apps in any location you prefer.
Unfortunately, even though Chromeless installs a Chromeless Helper extension, presumably to handle clicks on URLs, it has no options, and I could discern no way to direct links to open in my default Web browser. Every link I clicked in Chromeless opened in Chromeless itself. That’s a major strike against it.
On the plus side, Chromeless is free and open source, and it’s also available for Windows and Linux if you have SSB needs on those platforms. It’s developed by the same company behind WebCatalog, discussed below.
You say Flotāto, I say Flotăto
Let’s call the whole thing off.
Much as I love the name, Flotato is a non-starter for me in nearly every way. At launch, it shows a window full of icons for SSBs you can create by clicking a Get button. Once you’ve made the app, it appears in your Applications folder like any other app, or you can click Open to launch it from Flotato. You can also create an SSB from any URL.
That’s all fine, of course, but the apps Flotato creates are window-based, rather than tab-based. Although I can make a Google Docs app and even have it start with my Google Drive URL, opening a document takes over the entire window. The only way to open another document is to choose App > New Window and go through Google Drive again. Flotato doesn’t remember window sizes either, so you have to resize every new window you create.
I don’t know what Flotato uses under the hood to create its SSBs, but I suspect it’s WebKit because there’s no mention of supporting Chrome extensions. You can ask Flotato to display the mobile version of a Web app, which could be handy for lightweight Web apps with a minimal interface and well-designed mobile versions, but is meaningless for Google Docs, which thrives in a large-window environment.
Plus, Flotato doesn’t register its SSBs as Web browsers, so BrowserFairy and Choosy can’t send docs.google.com URLs to a Flotato SSB. By default, clicking a link in a Google Doc within Flotato opens it in a new Flotato window, but you can Shift-click to open in the default browser. In theory, at least—roughly half the links I tried to Shift-click threw an error saying that the application can’t be opened.
You can use a single Flotato app at a time for free. You just have to quit one to launch another. To run as many Flotato apps as you want simultaneously, you’ll need to pay $19 for Flotato Pro.
Fluid has been around for a long time on the Mac, but it has never worked well for me. Setting up a new SSB requires providing a URL and app name; you can also choose a location on your Mac for the new app and use either the site’s favicon or another image.
But from there, everything goes downhill. To start, Fluid wouldn’t display the Proxima Nova font that we use in Google Docs and replaced it with some serif font, which is just odd. You can choose to display a toolbar (which gets you an address bar and buttons at the top) with a bookmarks bar and a tab bar below. Perhaps it’s related to Fluid not being updated for the Big Sur design, but I found the stacked gray bars at the top jarring.
Fluid registers its SSBs as browsers, so there was no problem with using BrowserFairy or Choosy to direct incoming docs.google.com URLs to my Fluid SSB. However, even though Fluid has a Whitelist preference pane in which you can theoretically cause clicked links to open your default browser, I found it entirely random. Even clicking the same link twice in quick succession would sometimes result in one click opening the link in Brave and the second click opening it in Fluid’s SSB. Fluid does offer one neat feature—left and right browser panels that can contain their own Web pages. You’ll need to whitelist their URLs, of course.
Because Fluid is based on WebKit, it walks, talks, and quacks like Safari. However, it does not, as far as I can tell, support Safari extensions—or Chrome extensions, of course—which means that I can’t use Grammarly with it. Overall, Fluid just isn’t a contender for use with Google Docs.
Fluid is free for as many SSBs as you’d like to create, but for $5, you can pin Fluid apps to the macOS menu bar, use Userscripts or Userstyles in your apps (I’m not sure what that means either), and use full-screen mode.
Developed by BZG, the same people behind Coherence X, Unite offers a different take on the SSB concept. The key difference between Coherence and Unite is that Coherence X can use any Chromium-based browser as its engine, whereas Unite leverages WebKit 2, the same engine underneath Safari.
Unite’s use of WebKit makes it more of a first-class Mac citizen, lets it enjoy much smaller app sizes, and allows it to encapsulate Web apps in other forms of app wrappers. It can create status bar apps that live in the menu bar, compact apps that try to recreate a phone-like experience, or tabbed apps. None of its special app forms were of interest to me since my primary use is for Google Docs, where I want a normal tabbed SSB.
When it comes to incoming links, Unite works fine with BrowserFairy and Choosy. With regard to outbound links, it suffers from the same problem as Coherence X—a flash as a tab opens and closes while the link loads in my default Web browser.
Alas, Unite has two major strikes against it for my purposes. First, much like Fluid, it cannot open any Google Sheets documents. Whenever I try, I get a Google Sheets message about how something went wrong and an error saying it was unable to load the file.
Second, the negative consequence of its reliance on WebKit prevents it from supporting Web extensions like Grammarly. In short, even if Unite worked with Google Sheets, I’d ding it on the lack of Grammarly support.
The trial version of Unite is free for three apps, or you can buy it for $24.99 or get it with a $9.99-per-month Setapp subscription.
Most of the other site-specific browser solutions I tested are fairly simple, letting you create standalone apps for specific websites. Wavebox is not simple. Wavebox wants to give you a single coherent workspace for all your Web apps. You may find this overwhelming—I did.
To start, you need to create an account. I’m not sure why this is necessary—perhaps syncing of workspaces across devices. Then you need to provide your email address(es), after which Wavebox creates a workspace for you with the sites matching your email domains.
Wavebox is based on Chromium, so it does support Chrome extensions, and it goes so far as to help you install some popular extensions, including Grammarly, during setup. Once you’ve finished the setup assistant, you’re dropped into a browser-like environment with a sidebar for your apps. You can add additional apps or websites to the sidebar.
Initially, it seemed as though Wavebox was going to work the way I wanted. My Google workspace had a pinned tab for Google Drive, and double-clicking a Google Doc in there opened it in a new tab in the same window. However, when I clicked a docs.google.com link in Slack and relied on BrowserFairy or Choosy to open it in Wavebox, it always opened in a new Wavebox window. Subsequent clicks on similar external links also opened as new tabs in that window. As a result, I always ended up with two windows, one with tabs for documents opened from Google Drive and another with tabs for documents opened from other apps. It was, like everything else in Wavebox, confusing. I tried adding Google Docs as an app in the Google workspace and as its own workspace, but that muddied the waters even further.
Dealing with outbound links was equally mind-bending. Wavebox offers numerous options for handling them, including specific options for what to do when various modifier keys are down. I struck out in getting the basic behavior I wanted, which was to have all links open in my default Web browser. Wavebox acknowledges the complexity of its situation with a general knowledgebase article and another listing caveats for links opening in the default browser.
In the end, I gave up on Wavebox in frustration. It’s clearly trying to solve some problem that’s far more complex than my simple desire to encapsulate Google Docs in a site-specific browser. It may address that problem well, but it didn’t do what I wanted.
Even Wavebox’s business model is tangled. There are prominent Download buttons on its main page and no information about pricing in the top navigation bar, suggesting that it’s free. However, in the bottom navigation bar, there is a Pricing link that reveals that Wavebox Pro costs $12.95 per month where you can cancel anytime, $8.32 per month if billed annually, or $9.99 per month for six months, with no indication of how that’s billed (the company clarified the interface after publication). And yes, the options are presented in that mixed-up order. Or you could just use Wavebox Basic—the first time I’ve seen that term—for free, although I could find no chart outlining which features are in Wavebox Basic and which are exclusive to Wavebox Pro.
WebCatalog is the company behind both Chromeless and the WebCatalog SSB solution. You might therefore expect WebCatalog to be an enhanced version of Chromeless, and at a conceptual level, that’s true. Along with the same set of Web apps in the Discover view, WebCatalog adds the idea of Spaces that let you bring together related Web apps, such as the many apps Google provides. You can also create custom spaces and switch between the internal apps with keyboard shortcuts. Spaces even support multiple accounts, so you could have a space that’s logged into different Google accounts, for example.
Apart from some user interface similarities, however, Chromeless and WebCatalog are quite different. WebCatalog doesn’t let you pick a browser engine and instead creates its apps within an Electron shell. Electron is an open-source framework from GitHub that many companies use to create desktop versions of essentially Web-based apps—Slack is an Electron app, for instance. Although Electron relies on the Chromium rendering engine, you can’t make bookmarks, use tabs, or install Chrome extensions.
As such, WebCatalog simply doesn’t work for me. I couldn’t figure out any way to get Google Docs running in a tabbed window, and double-clicking documents from Google Drive opened them in separate windows. Nor could I see any way to install the Grammarly extension. On the plus side, WebCatalog does handle outbound URLs better, so you can specify which should be opened in the SSB and which should be sent to the default Web browser.
You can use WebCatalog for free, but you’re limited to ten installed apps and spaces, and you can have only two accounts per app or space. For $40, the one-time Lifetime plan lifts those restrictions and adds ad blocking and the capability to lock apps with passwords or Touch ID.
Any Old Web Browser
At some point, while writing about how many browser engines Chromeless supported, I had a thought. “Why not just devote an entire browser to Google Docs?” It’s not as though I need to use Microsoft Edge or Opera for anything else. This would work perfectly, with one sticking point: directing clicks on outbound links to my default Web browser.
Both BrowserFairy and Choosy let you create rules that specify where links clicked in a particular app should open, and in quick testing with Slack, those features work correctly. However, they don’t work for links in Web browsers—there’s just no way short of an extension to redirect links from one Web browser to another.
In fact, both BrowserFairy and Choosy offer nearly identical browser extensions, but they provide only two features: a menu bar button in the browser that opens the current page in BrowserFairy/Choosy and a BrowserFairy/Choosy option in the contextual menu when you Control-click a link. Neither captures all clicks by default.
It’s conceivable that there’s some other way to capture all link clicks, even within a Web browser, and redirect them to another browser without additional interaction, but given that Coherence X does everything I want, there’s no need to search further or compromise on dealing with outbound links. Nonetheless, if you can figure out a way to do this, I’m curious.
@adamengst "It’s conceivable that there’s some other way to capture all link clicks within even a Web browser and redirect them to another browser"
Also, Link Unshortener as default web browser follows STM rules:https://t.co/XbPaGf6oc4
— Jeff Johnson (@lapcatsoftware) June 18, 2021
Comparing BrowserFairy and Choosy
I’ve been testing each of these SSBs with both BrowserFairy and Choosy, under the assumption that there might be a difference. However, as you will have noted, they work equivalently—everything that worked in one worked in the other.
That’s not a guarantee, though. I also tested Bumpr, an attractive link redirector written by Scott Ostler and designed in part by friend-of-TidBITS Khoi Vinh. Although I like Bumpr a lot in general, it doesn’t yet support site-specific browsers. A quick search in the Mac App Store revealed additional utilities in this field, including Browser Ninja, OLW: Open Link With, OpenIn, and Redirector, among others. I don’t know if they support SSBs either.
With BrowserFairy, you need to make sure it’s the default Web browser, which is easily done on launch or in the General preference pane. Then you need to add a rule that looks for docs.google.com in the link address and open links covered by that rule in your SSB. It takes only a minute or two to set things up as I have in the screenshot below.
Choosy is slightly more complicated, although more flexible. The first thing to do is add and arrange your Web browsers in the Browsers screen, making sure to put your favorite browser at the top.
Next, in the Rules screen, double-click the Default Behavior rule that applies when no other rule does. You can choose from using your favorite browser, the best running browser, a specific browser, or even a set of browsers (great if you’re a Web designer testing pages in multiple browsers). Or you can have Choosy prompt you to select a browser from a specific set, from the running browsers, or from all available browsers.
Finally, you’ll want to create a new rule that captures docs.google.com links and sends them to your SSB. That’s easily done as well—just copy the screenshot below.
Given that both work well, my suggestion is as follows:
- If you need three or fewer rules, use BrowserFairy, since you can get by fine with the free version. For more than three rules, you would need to subscribe for $0.99 per month or $8.99 per year.
- If you need more than three rules, buy Choosy, which requires a one-time $10 purchase made via PayPal. Choosy also offers an API that lets you trigger it programmatically if you want direct access.
Going the Coherent Route
In the end, I’m going to use the combination of Coherence X and BrowserFairy. Only Coherence X could satisfy all my criteria, and its cosmetic problem with opening and closing tabs while processing outbound links is annoying but not a deal-breaker. Your needs may differ from mine, and if that’s the case, I hope the evaluations above help you pick the best SSB for your situation.