Growing Pains: Migrating Slack’s Desktop App to BrowserView

This post details the migration of Slack's desktop application from Electron's webview to BrowserView to address rendering issues and improve stability. It covers the architectural changes required for BrowserView, which behaves more like a Chrome tab and is managed as a native window rather than a DOM element. The post explains how Slack managed Redux stores across multiple processes using electron-redux, ensuring eventual consistency with the main process's store as the single source of truth. It also details the use of redux-observable for handling asynchronous actions and side-effects, enabling decoupled communication between main and renderer processes, and demonstrating its power with examples of managing sign-in windows and tallying workspace usage.