┌─────────────────────────────────────────────────────────────┐
│ ██████╗ ███████╗██╗ ██╗ ████████╗██╗███╗ ███╗███████╗
│ ██╔══██╗██╔════╝██║ ██║ ╚══██╔══╝██║████╗ ████║██╔════╝
│ ██║ ██║█████╗ ██║ ██║ ██║ ██║██╔████╔██║█████╗
│ ██║ ██║██╔══╝ ╚██╗ ██╔╝ ██║ ██║██║╚██╔╝██║██╔══╝
│ ██████╔╝███████╗ ╚████╔╝ ██║ ██║██║ ╚═╝ ██║███████╗
│ ╚═════╝ ╚══════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝
│
│ [STATUS: ACTIVE] [VERSION: 2.0] [MODE: PRODUCTION]
└─────────────────────────────────────────────────────────────┘
A military-grade 15-minute sprint timer engineered for maximum productivity and uninterrupted focus sessions.
Precision-engineered focus timer built for developers who demand reliability, accuracy, and zero distractions. No bloat. No bullshit. Just pure, focused development sprints.
[✓] 15-minute sprint timer with millisecond precision
[✓] Pomodoro cycle: Enforced 10-min breaks after 4 sessions
[✓] Web Worker background execution (tab-independent)
[✓] Persistent state across page reloads/crashes
[✓] Enforced audio + visual notifications
[✓] Smart extension warnings (2nd & 3rd+ extensions)
[✓] Session counter tracking (X/4 to break)
[✓] Dark/Light theme with localStorage persistence
[✓] Active task tracking with pulsating indicators
[✓] One-touch keyboard shortcuts (Enter to start)
[✓] Task completion logging & history
[✓] Zero external dependenciesFrontend: Pure Vanilla JavaScript (ES6+)
Styling: CSS3 with CSS Variables
Threading: Web Worker API
Storage: localStorage API
Notifications: Web Notifications API + HTML5 Audio
Architecture: Event-driven, stateful persistence# Clone the repository
git clone https://github.com/bobvasic/Rapid-Development-Timer-Assistant.git
# Navigate to directory
cd Rapid-Development-Timer-Assistant
# Serve locally (Python 3)
python3 -m http.server 8080
# OR use any static server
npx serve .
# Access at: http://localhost:8080┌──────────────────────────────────────────────────────┐
│ Session 1 (15 min) → Complete/Extend │
│ Session 2 (15 min) → Complete/Extend │
│ Session 3 (15 min) → Complete/Extend │
│ Session 4 (15 min) → BREAK ENFORCED │
│ │
│ ☕️ Break Modal → Start 10-Minute Break │
│ Break Timer (10 min) → Notification + Audio │
│ → Cycle resets → Start new session │
└──────────────────────────────────────────────────────┘
Break Enforcement Logic:
- After 4 completed sessions (1 hour), break modal appears
- User must start break before continuing
- Complete/Extend buttons hidden until break taken
- Break completion resets session counter to 0/4
- All state persists across page reloads
┌──────────────────────────────────────────────────────┐
│ 1st Extension → ✓ Normal (no warning) │
│ 2nd Extension → ⚠️ ORANGE WARNING (focus!) │
│ 3rd+ Extension → 🚨 RED ALERT (finish it!) │
└──────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Different Tab → ✓ Timer continues │
│ Different Window → ✓ Notification appears │
│ Different App → ✓ OS-level alert + audio │
│ Page Reload → ✓ Timer restores │
│ Audio Playback → ✓ Enforced after user act │
└─────────────────────────────────────────────────┘
- System Notifications: OS-level alerts appear regardless of active window
- Audio Enforcement: Unlocked on first interaction, bypasses autoplay policies
- Persistent Alerts: Notifications require manual dismissal
- Multi-Attempt Playback: Retry mechanism ensures audio plays
- Timestamp-Based: Accurate time tracking using
Date.now() - Auto-Save: State saved every second to localStorage
- Crash Recovery: Automatically restores timer on page reopen
- Elapsed Calculation: Smart math recovers exact remaining time
Main Thread Web Worker Thread
│ │
├──[START TIMER]───────────>│
│ │
│<────[TICK UPDATE]─────────┤ (every 1s)
│ │
│<────[COMPLETE]────────────┤ (at 0s)
│ │
🌙 Dark Mode → Automatic theme switching
🟠 Active Indicator → Pulsating orange status dot
📊 Task Log → Complete history with timestamps
⌨️ Keyboard Shortcuts → Enter to start, instant flow
🔔 Visual Feedback → Real-time countdown display
- Enter Task Name → Type your focus objective
- Press Enter or click "Start 15-Minute Sprint"
- Stay Focused → Timer runs in background
- Get Notified → Audio + visual alert at completion
- Complete or Extend → Mark done or add 15 more minutes
┌─────────────────────────────────────────────────────┐
│ 1. Complete 4 focus sessions (15 min each) │
│ 2. Break modal appears (enforced) │
│ 3. Click "☕️ Start 10-Minute Break" │
│ 4. Break countdown begins (10:00 → 0:00) │
│ 5. Notification: "Break Complete!" │
│ 6. Enter new task and start next cycle │
└─────────────────────────────────────────────────────┘
Session Counter: Top-right displays Sessions: X/4
- Increments after each completed 15-minute session
- Resets to
0/4after break completion - Persists across page reloads
[Enter] → Start timer (when in task input field)
[Click] → Toggle dark/light mode (theme button)
| Feature | Status | Notes |
|---|---|---|
| Background Timing | [ACTIVE] |
Web Worker immune to throttling |
| Audio Playback | [ENFORCED] |
Multi-retry with user interaction unlock |
| State Recovery | [PERSISTENT] |
Survives crashes, reloads, closures |
| Cross-Tab Sync | [OPERATIONAL] |
Notification system OS-level |
| Accuracy | [±1s] |
Timestamp-based calculation |
✓ Chrome/Chromium 90+
✓ Firefox 88+
✓ Safari 14+
✓ Edge 90+
✓ Mobile Browsers (iOS/Android)
Rapid-Development-Timer-Assistant/
├── index.html # Main application
├── timer-worker.js # Web Worker for background timing
├── favicon.svg # App icon
└── README.md # This file
[✓] No external API calls
[✓] No tracking or analytics
[✓] No cookies
[✓] No data transmission
[✓] 100% client-side execution
[✓] localStorage only (local machine)Found a bug? Have an enhancement?
# Fork the repo
git fork https://github.com/bobvasic/Rapid-Development-Timer-Assistant.git
# Create feature branch
git checkout -b feature/your-enhancement
# Commit changes
git commit -m "feat: your enhancement description"
# Push and create PR
git push origin feature/your-enhancementMIT License - Use freely, modify as needed, attribution appreciated.
┌────────────────────────────────────────┐
│ System Status: [●] ONLINE │
│ Timer Accuracy: [±1s] │
│ Notification: [●] ACTIVE │
│ Audio System: [●] OPERATIONAL │
│ Web Worker: [●] RUNNING │
│ State Persist: [●] ENABLED │
└────────────────────────────────────────┘
Stay focused. Ship code. Repeat. 🚀
⭐ Star this repo | 🐛 Report Bug | 💡 Request Feature
Made with ⚡ by developers, for developers