A sleek flip clock with Pomodoro timer.
07/2025 - Present
Frontend Developer
Solo
completed
A flip clock and Pomodoro timer that's as precise as it looks. Simple surface, surprisingly complex underneath.
The goal was to create an experience that feels both visually polished and technically robust.
Flipi is built as a client-only, time-sensitive system:
Date.now) as the source of truthCentralized store for:
Lightweight and optimized for frequent updates
Decision: Use system time instead of interval-based counters.
Why:
setInterval is throttled in inactive tabsImplementation:
Outcome:
Decision: Separate animation triggers from time calculations.
Why:
Outcome:
Decision: Use Web Workers and Service Workers for off-main-thread execution.
Why:
Trade-offs:
Decision: Recreate physical flip clock behavior using CSS 3D transforms. Getting the flip animation to feel mechanical (not floaty) took significant iteration on timing curves and the layering of front/back card elements. Small details — like the shadow at the fold — make a big difference.
Why:
Implementation:
Timers often pause or slow down in inactive tabs.
Solution:
Visual transitions must match actual time progression.
Solution:
Ensuring timers continue functioning in PWA/offline mode.
Solution:
This project highlighted challenges in building time-sensitive systems on the web: