
build a stripped-down client specifically for this purpose.package a client out of a subset of our JavaScript concerned with just model and notification logic.This got us thinking: what is the lightest weight client we could build that could do everything you needed it to do while it was in the background: maintain your presence, display notifications, and keep your unreads and badges up to date?
Slack client windows full#
Regardless of usage, each of these teams eats up a full quota of memory. Our data tells us that most people who are signed into multiple teams have 1 or 2 that they actively pay attention to during their work day while they check the others less frequently. Collected using a 10% sample of all teams. Distribution of memory usage at p10, p50, p90, and p99 for a single team. This application can consume between ~130MB (p10) and ~960MB (p99) of memory depending on team activity and UI state. Each of these teams is running the full JavaScript web application and maintaining and updating the DOM tree as the state of the team changes. 17% are signed into 3 or more teams, and 5% are signed into 5 or more teams. The problemĪt the time of writing, about 36% of active Slack users are signed into more than one team in the desktop app. To achieve this we had to teach our servers to be smarter, and to design a thin client that did just enough work to keep your work day flowing.

More memory usage means worse performance, degrading our customer’s experience of Slack and their other applications. This memory footprint increases as the user signs into more teams, as each team runs in its own webview. However, these capabilities come at a cost: the desktop client can use a lot of memory. It allows them to communicate and work with all the teams they belong to: reading and writing messages, composing posts, uploading files, taking calls, and responding to notifications. For many of our customers, it is one of just a few apps they keep open on their computer throughout the work day.

Our desktop app is the most widely used and most capable Slack client that we offer.
