Radical idea not mentioned: build a client using something other than a web browser runtime?
My exact thought.
I think web has become so ubiquitous that many FE engineers wouldn’t even consider writing a GUI in anything other than html/js/css. The popularity of tools, frameworks, conventions, experience, docs, community, etc all built around web far outweigh native as far as I can tell. On the other hand, projects like React Native help to bridge this gap, so I’m not sure what the reasoning is.
Some is just ease of cross platform support I think. If they were writing for one platform it’s not clear they’d pick the web stack just for its tools/community. But Slack supports six client platforms: Windows, Linux, Mac, Android, iOS, and webapp. The solutions for that are either to write six different native apps, or use web tech, more or less. There’s also, conceptually, the category of cross-platform GUI toolkits that compile to code native for each platform, but those projects seem to be far from healthy these days (Tk? wxWindows?) and I don’t believe any has been extended to support all six of those platforms.
I can appreciate the time savings of just doing things once, but for a company like slack, they should be able to toss a few billions at another dev team or six.