The high-utility, "set it and forget it" browser control panel.
A minimalist reminder system for intervals (habits) and deadlines (renewals).
Features • Tech Stack • How It Works • Getting Started • Deployment
PingPulse was built for the "Deep Work" era. It bridges the gap between static to-do lists and intrusive phone alarms. Whether you need a nudge to drink water every 30 minutes or a 6-month warning to renew a server license, PingPulse handles it entirely within your browser.
Privacy First: 100% of your data stays in your
localStorage. No accounts, no tracking, no databases.
- 🔄 Dual-Mode Engine: Switch instantly between Intervals (Recurring) and Deadlines (One-time).
- ⏳ Live Countdown Cards: Real-time ticking timers for every task on your dashboard.
- 🔔 Native Pings: Uses the Web Notifications API to buzz you even if you're in another tab.
- 🎵 Audio Feedback: A custom, non-annoying chime plays when a "Pulse" is triggered.
- 🚨 Danger Glow: Cards pulse red when a reminder is within 5 minutes of expiring.
- 💤 Smart Snooze: One-click to delay any reminder by 5 minutes.
- 📱 Responsive & Glassy: A dark-themed, glassmorphism UI optimized for desktop and mobile.
| Tool | Purpose |
|---|---|
| Next.js 14 | Core Framework (App Router) |
| Tailwind CSS | Styling & Glassmorphism Effects |
| Lucide React | Minimalist Iconography |
| Web APIs | Notifications, Audio, & LocalStorage |
- Intervals: Calculated as
Date.now() + (minutes * 60000). Once they fire, they auto-reset. - Deadlines: Fixed Unix timestamps. Once they fire, they stay in a "Completed" state.
A background setInterval runs every 10 seconds. It checks your localStorage array, compares timestamps to Date.now(), and triggers the Notification/Audio sequence if a match is found.
First, clone the repository and install the dependencies:
git clone [https://github.com/your-username/pingpulse.git](https://github.com/your-username/pingpulse.git)
cd pingpulse
npm install