Live auction marketplace for TCG cards, figurines and collectibles. The seller starts a livestream, buyers bid live on each lot. The studio took over a Flutter app and a backend already in production to ship a faster version — without ever taking the service down.
Rebuild a heavy existing codebase while keeping the product live. On the app: 237 StatefulWidgets to migrate to hooks and Riverpod, 93 StateNotifiers to move to @riverpod codegen, GetIt dependency injection to remove, navigation to switch to GoRouter — roughly 2,500 files touched. On the backend: move off MongoDB to PostgreSQL with no downtime window. And keep an interactive video live under 3 seconds of latency without blowing up the cloud bill.
Incremental Strangler Fig migration on both fronts. The Flutter app moves fully to hooks + Riverpod with codegen-generated providers, GetIt DI removed, GoRouter navigation — all in waves, product staying in production. The backend migrates from MongoDB to PostgreSQL 17 via Prisma, table by table. On the streaming side, a hybrid LL-HLS + LiveKit architecture holds latency under 3 seconds, backed by a broadcast infrastructure provisioned on demand and sized live by live to follow the load — cutting cost per viewer-hour by roughly 6 versus a full WebRTC stack. The backend is covered by 6,680 tests, 97% coverage.
In production since 2026, iterating continuously. Cost per viewer-hour divided by 6 versus a pure WebRTC stack. Latency held under 3 seconds on the viewer side.