Lyft Alex Hartwell Mar 10, 2023

The Journey to Server Driven UI At Lyft Bikes and Scooters

Article Summary

Lyft Bikes & Scooters was drowning in complexity: 3 vehicle types, multiple markets, and endless switch statements. Their solution? Move the UI logic to the server.

Alex Hartwell and Tim Miko from Lyft's Bikes & Scooters team share their multi-year journey from hardcoded mobile apps to a flexible Server Driven UI architecture. They evolved from simple database models to a sophisticated BFF (backend for frontend) that handles all their product variations.

Key Takeaways

Critical Insight

SDUI shifted business logic from client to server, enabling Lyft to ship new markets and features without app updates while managing massive product complexity.

The article reveals how their atomic component approach creates a snowball effect that makes each new feature exponentially easier to build.

About This Article

Problem

Lyft Bikes & Scooters had a monolithic business model that mixed UI concerns with hardware properties. Mobile engineers had to maintain hacky mappings across three docking configurations: fully docked, fully dockless, and hybrid. There were no standardized abstractions to work with.

Solution

Alex Hartwell and Tim Miko built a dedicated BFF microservice called lbsbff. It uses protobuf to return view representations instead of business models. They established atomic Components and Actions as reusable primitives that separate layout from behavior.

Impact

Feature teams could now experiment independently while using shared SDUI patterns. Configuration changes replaced code changes. Many product variations no longer required simultaneous iOS and Android releases.