| Stack | Role | Year | Status |
|---|---|---|---|
| Vanilla JavaScript, HTML5, CSS3, Canvas API | Frontend Developer | 2022 | Live |

Event Countdown Timer
A feature-rich countdown timer for various life events
Event Countdown Timer — A feature-rich countdown timer for various life events is a technical case study on ancel.co.ke documenting architecture, trade-offs and outcomes. To keep countdowns simple and always available, I built a vanilla JS app with local persistence and clear fallbacks when storage or notifications fail. Ancel Ajanga wrote this case study from hands-on delivery experience in Kenya.
A feature-rich countdown timer web application for creating and managing multiple countdowns for various life events with recurring events and smart notifications.
The Problem
People need a simple way to track countdowns to important events like birthdays, anniversaries and deadlines.
To keep countdowns simple and always available, I built a vanilla JS app with local persistence and clear fallbacks when storage or notifications fail.
The Solution
I built a vanilla JavaScript application with multiple countdown views, recurring events and smart notifications.
Key Technical Terms
- Recurring events:Countdowns can repeat yearly (or at other intervals) so users set once and keep getting reminded; that supports the goal of low-friction tracking for life events.
- Local storage persistence:Events are saved in the browser so they survive refresh and return visits; for this project that avoids a backend while handling quota errors with clear UX.
- Smart notifications:The app uses browser APIs to notify when a countdown reaches zero so users do not miss the moment; that supports the goal of timely, reliable reminders.
The Impact
Users can now easily track multiple countdowns with automatic yearly repetition and visual customization.
< 50KB
< 500ms
Outcomes
- Lightweight, fast application
- Intuitive event management
- Beautiful visual design
- Cross-browser compatibility
Failure Modes & Resilience
LocalStorage full or blocked: we detect and inform the user so they know events may not persist. Notification permission denied: countdowns still work; we do not block the app. Timer drift or tab in background: we recalculate on focus so displayed time stays accurate.
Outcome & Future Potential
Users can now easily track multiple countdowns with automatic yearly repetition and visual customization.
< 50KB
Total application size
< 500ms
Initial load time
Project Gallery
