Slack

When a rewrite isn’t: rebuilding Slack on the desktop

Jul 22, 2019
When a rewrite isn’t: rebuilding Slack on the desktop
SummaryAI, from the source post

This post details the technical approach to rewriting Slack's desktop client, moving from manual DOM updates and eager data loading to React and lazy data loading. It addresses the challenge of multiple Electron processes per workspace by introducing a multi-workspace aware architecture using Redux, where each workspace gets its own Redux store. The post also outlines the 'Ship of Theseus' incremental modernization strategy, using legacy-interop mechanisms (TS.interop and adaptFunctionWithFallback) to gradually replace old code with new, while maintaining interoperability. The success of this approach is demonstrated by significant memory usage reductions.

More from the Mobile Codebase Modernization trail