Case study: an app brought back
LexVid
2024 to 2025 · Modernisation of an existing app
An ageing legal-education video app, migrated onto a current Expo, data and offline architecture.
Before
- Pinned to an ageing Expo version, so every change was slow and expensive to make
- Data fetching and state handled ad hoc, with no single source of server state
- A spinner on every cold start instead of a library painted from cache
What I did
- Moved the app onto a current Expo release line without a rewrite, while it kept shipping
- Made React Query the one server-state layer and persisted its cache as the offline store
- Built resumable video downloads with real progress and a concurrency-capped queue
- Drove the interface from connection state, so offline is a known state, not a failed request









































