We deleted our single-page app and nobody noticed
Lumio replaced its dashboard's single-page app with server-rendered pages and small interactive islands. Omar Saleh on the migration, the numbers and the parts that were harder than expected.
- Thursday 10 June
- Day 2
- 10:30–11:10
- 40 minutes
- Main Stage
- Ground floor, hall A
- Talk
- Advanced
Lumio’s web dashboard was a large single-page app. It shipped 1.4 MB of JavaScript, took eleven seconds to become usable on a mid-range phone over 3G, and was the main reason traders preferred to ring support rather than log in.
Over nine months the frontend team rebuilt it as server-rendered pages with small islands of interactivity, one route at a time, with both versions running side by side. JavaScript fell by eighty per cent and time to usable dropped below three seconds. Support calls about the dashboard halved. Customers did not notice the migration, which was the whole idea.
Omar covers how the team chose which parts stayed interactive, how they kept shared state sane across islands, what happened to their testing strategy, and the two features that were genuinely harder without a client-side router. Bring questions about your own app; he has opinions.
What you will take away
- A route-by-route plan for moving from a single-page app to server-rendered pages
- How to decide what needs to be interactive, with a simple audit you can run this month
- The trade-offs that remain, including the ones Lumio has not solved







