Context-aware mindfulness & motivation — beautifully adapted to your time of day.
🌐 Live Web App · 📦 GitHub Repo
| Feature | Description |
|---|---|
| 🌅 Time-Aware Phases | Content shifts automatically: Morning Momentum → Deep Focus → Wind-Down → Night Calm |
| 💬 Dynamic Quotes | Live quotes from ZenQuotes & Affirmations.dev, with curated fallbacks |
| 🎯 Deep Focus Mode | Silences Chrome notifications, shows a 20-minute countdown timer, and shifts the UI to a calming blue state |
| ☕ Take a Break | Random 1-minute mental reset (Box Breathing, 5-4-3-2-1 Grounding, Body Scan, One-Minute Reset) |
| ✦ Daily Intention | Morning intention + end-of-day reflection, synced via Chrome Storage |
| 🆕 New Tab Page | Full-viewport Zen dashboard with live clock and animated gradients |
| ⚙️ Personalization | Your name in the greeting, synced across popup and new tab |
| 🌐 Web App | Full standalone version deployable to GitHub Pages |
| Time | Phase | Mood |
|---|---|---|
| 6 AM – 10 AM | 🌅 Morning Momentum | Affirmations, gentle goals, positive framing |
| 10 AM – 5 PM | 🎯 Deep Focus | Punchy reminders — breathe, small wins, stay in flow |
| 5 PM – 10 PM | 🌙 Wind-Down | Reflective gratitude, rest, disconnecting |
| 10 PM – 6 AM | ✨ Night Calm | Peaceful content, tomorrow's mindset |
pulse-check/
├── manifest.json # Manifest V3 config
├── background.js # Service worker: quote fetching, phase logic, focus badge
├── shared.js # Shared constants & utilities (used by both extension & web app)
├── popup.html # Extension popup UI
├── popup.css # Popup styles (glassmorphism, sage green)
├── popup.js # Popup logic (chrome.storage, deep focus, intentions)
├── newtab.html # New Tab override
├── newtab.css # Full-viewport new tab styles
├── newtab.js # New Tab logic
├── icons/
│ ├── icon16.png
│ ├── icon32.png
│ ├── icon48.png
│ └── icon128.png # Sage green ECG pulse on dark forest background
└── docs/ # GitHub Pages web app
├── index.html
├── style.css
└── app.js # localStorage + direct fetch (no chrome.* APIs)
- Go to
chrome://extensions - Enable Developer Mode (top-right toggle)
- Click "Load unpacked"
- Select the
pulse-checkfolder (the one containingmanifest.json) - Pin the extension via the puzzle icon in Chrome's toolbar
- Open a new tab for the full dashboard, or click the PulseCheck icon for the popup
A standalone version — no Chrome APIs, works in any browser:
https://preethi900.github.io/pulse-check/
All chrome.storage calls are replaced with localStorage, and quotes are fetched directly via fetch(). Shared logic lives in shared.js and is loaded by both versions.
Click the phase badge (top-right) to activate:
- 🔕 Chrome notifications from PulseCheck are silenced
- ⏱ A 20-minute countdown timer appears in the banner
- 🌑 The popup shifts to a calming deep blue state
- 💾 Timer state persists across popup open/close
- Click the badge again or "Turn off" to exit
| API | Purpose |
|---|---|
| ZenQuotes | Motivational quotes |
| Affirmations.dev | Daily affirmations (fallback) |
If both APIs fail (offline), PulseCheck falls back to a curated local library — you'll always see something meaningful.
- Zero dependencies — Vanilla JS, no build step required
- Manifest V3 — service worker, no background pages
- Shared logic —
shared.jscontains pure constants/utilities used by both the extension and web app - Permissions —
storage,alarms,notifications - Quotes refresh on every popup open (fresh every time)
- Phase recalculated on every popup/tab open