May 21, 2018

Creating Multiple Windows for Slack on Your Mac Using Single-Site Browsers

Tighten is a consultancy. That means we're not just a product company; we also work on other people's applications and sites.

Frequently, one or more of our developers will be tasked to work with the same client for months. Every day they wake up, open up Slack--which is the primary tool Tighten, as a remote company, uses to build culture and relationships--and switch to the client's Slack.

We've noticed that those folks whose client has their own Slack have less of a chance to participate in Tighten conversations and events. So, I set out to find a way to make it possible to have two local apps for Slack.

Most-desirable-but-not-possible option: Multiple local Slack apps

The best solution--which is not possible, as far as I can tell--is to have two versions of the official Slack running locally with a unique list of workspaces open in each. The app is great, it's standalone, and it has some niceties that aren't present using Slack in the browser.

But even if you try to force Slack to open multiple instances, it'll just collect them together. No luck there.

Less-desirable option 1: The switcher

Obviously, the simplest option is to use the left panel switcher that the Slack app allows for:

Slack Workspace Switcher

However, when you're "in" one Slack workspace, all the rest can sort of disappear by the wayside. We want something that keeps our Slack more present.

Less-desirable option 2: The browser

Our devs could, of course, open Tighten's slack in their browser. But even with pinned tabs, browser windows still sort of ebb and flow; an individual item in a browser doesn't get its own cmd-tab; and the browser doesn't get quite the same quality of some of the keyboard shortcuts and other system integrations.

All-in-all, Slack in a browser window is fine, but a second-class citizen.

Best option 1: Shared channels

I didn't mention this in the original version of this post because I consider it helpful but separate, but enough people mentioned it that I figured I would add it. Recently Slack added a brilliant feature called shared channels that allows you to sync a channel between your Slack and another workspace.

If you can handle your communications with the other workspace within one or a few channels, and you have a relationship set up such that shared channels will work, that's absolutely the best way to go about it. You can avoid the slow-down of multiple workspaces but still get the benefits of collaboration.

The remaining options--and the less-desirable options above--assume you're in a context where that's not an option.

Best option 2: Cloning Slack

This tip is from Tightenite Dave Hicking:

You can duplicate the Slack application file (using Finder) on your Mac and rename the second version, and then you'll just have two instances that you can open side-by-side.

Pro: You get the full power of desktop Slack on both.

Con: If you have more than one workspace, you're now spinning up two instances of a local Slack instance with multiple workspaces. Slack uses up a lot of memory, and two full local Slack instances connected to multiple workspaces each will really amplify that. Also, every notification will be duplicated across all of your workspaces.

Best option 3: Single-Site Browsers

That leaves us with the other best option: single site browsers, or SSBs. An SSB is a desktop app that wraps a web site in its own process and often a simpler browser chrome. SSBs have dropped in popularity over the last few years, but they're still possible. The best tool for creating SSBs on Mac is called Fluid.

When you use Fluid, you point it at a specific web site, and it will generate an SSB for that web site. That means you use Fluid once to generate the SSB, which is a Desktop app that has its own icon and its own process. You then forget about Fluid, and take the generated SSB and place it anywhere on the desktop or the dock. You can now open or close it independently of your browsers, cmd-tab to it as its own entity, and it will generally act as its own completely independent application--even though it's just Webkit.

Pro: You can have a desktop app devoted to just the one Slack workspace you want to run separately from the rest, which means it consume less memory than a full duplicate of the desktop app.

Con: Because it's browser-based, instead of the true Electron Slack app, it's not quite as perfectly integrated with the desktop. For example, CMD-T in the desktop app is the same as CMD-K. But CMD-T in an SSB version opens a new tab in the SSB. Also, every notification will be duplicated in the one workspace you have open in your SSB (assuming you also have it open in your desktop Slack app.)

Setting up a dedicated Slack instance using Fluid

Step 1. Download the free Fluid app.

Step 2. Open the app.

Step 3. Enter your workspace's URL, and the title.

Fluid Slack Settings

Step 4. Create it.

Step 5. Open your new Slack app--right next to your actual Slack app. Boom. Done.

Two Slacks Side By Side

Any other tips or tricks? Hit me up on Twitter.

Comments? I'm @stauffermatt on Twitter


For quick links to fresh content, and for more thoughts that don't make it to the blog.