Stabilize, Modularize, Modernize: Scaling Slack’s Mobile Codebases
Jan 12, 2022

Summary
This post details the 'Stabilization' phase of Project Duplo, which aimed to address tech debt in Slack's mobile codebases. It describes the challenges of monolithic app targets, tangled interdependencies, global state, and long build times on both iOS and Android. It also highlights stalled migrations (e.g., Swift adoption on iOS, Kotlin/Moshi adoption on Android) and inconsistent design patterns (MVVM+C on iOS, MVP on Android). The post explains the decision to refactor in place rather than a full rewrite and outlines the three core themes of Project Duplo: Stabilization, Modularization, and Modernization.