The challenge
Timers on phones stop or slow down when the screen locks, so time shown on mobile and desktop drifted apart.
What we built
Mobile and desktop Flutter apps on a Strapi backend with real-time updates over WebSockets. The server stores when each timer started, and every device calculates elapsed time from that single reference — so the number is correct the moment you unlock your phone, even if the app was closed.