Several components are rendering: Client performance at Slack-scale

Learn how Slack scaled client performance through organizational change, Redux optimizations, and metrics-driven development, while building sustainable engineering culture.

Key takeaways
  • Performance culture cannot rely on “hero engineering” - it needs to be distributed across the organization through education, tooling, and guardrails

  • Browser performance constraints give frontend teams only 16ms per frame (60fps) to complete all JavaScript execution, rendering, and styling

  • Redux’s global state updates caused unnecessary re-renders across components - implementing finer-grained subscriptions helped solve this without completely replacing the architecture

  • Metrics and observability were crucial for understanding performance issues and getting buy-in - key press lag became their flagship metric

  • Performance improvements came from understanding systemic issues through investigation rather than just profiling and fixing individual slow functions

  • Paper cuts (many small performance issues) compound over time and are harder to catch with standard regression testing

  • Engineers want to write performant code but need the right tools, knowledge and culture to succeed

  • Long-lived desktop apps like Slack face unique performance challenges compared to typical web pages due to constant updates and interactions

  • Performance work requires both technical solutions and organizational change through education and evangelism

  • Building a performance-conscious engineering culture is more sustainable than one-off optimization efforts or complete rewrites