← ALL PROJECTS

01 / SOFTWARE / DESKTOP / PRODUCT

PurrPause

A local-first Windows companion that turns active work time into gentle, context-aware break reminders.

YEAR
2026
STATUS
Active
ROLE
DESIGN & ENGINEERING
01
INPUTPROCESSINTELLIGENCEINTERFACE

THE CASE STUDY

01 / SECTION

The Problem

People routinely work through long stretches without noticing eye strain, dehydration, poor posture, or the need to move. A normal timer counts wall-clock time, even when the user has stepped away, and repeated alarms quickly become another source of interruption.

PurrPause was designed around a more useful question: how can a desktop companion notice genuine work sessions and encourage breaks without becoming surveillance or productivity policing?

02 / SECTION

Product Experience

The application lives in the Windows system tray and presents reminders through a transparent, borderless calico-cat window. The mascot can remain visible, appear only when a reminder is due, or be disabled while the dashboard continues tracking sessions.

Users can configure eye, water, stretch, movement, Pomodoro, and custom reminders; snooze or dismiss a nudge; reposition and resize the mascot; change its opacity; enable quiet hours; select light, dark, or system themes; and export or restore local data.

03 / SECTION

Architecture

The Electron main process is the source of truth for activity, reminder scheduling, persistence, tray behavior, native windows, and Windows state. A constrained preload bridge exposes typed IPC commands and immutable snapshots to the React renderer.

This boundary keeps filesystem and operating-system access out of the UI. The same React application renders both the dashboard and the dedicated mascot view, while shared TypeScript contracts keep the main process, preload API, and renderer aligned.

04 / SECTION

Activity Model

PurrPause samples Windows idle duration rather than recording keys, pointer coordinates, screenshots, or document contents. When the idle threshold is crossed, it corrects the current focus segment back to the last real input so the grace period is not reported as work.

Lock, sleep, suspend, resume, and unusual timer gaps close or restart timeline segments conservatively. Focus, away, short-break, and long-break intervals remain anchored to real wall-clock positions, producing an honest daily rhythm instead of stretching activity to fill a chart.

05 / SECTION

Reminder Engine

Pure scheduling functions detect thresholds from verified active seconds, combine reminders that become due together, advance handled thresholds, support midnight-crossing quiet hours, and calculate mascot moods. A natural period away from the computer can satisfy a pending break, while ignoring the mascot never turns idle time into focus time.

Windows notification and presentation state is checked on a best-effort basis so visual nudges can wait during full-screen, presentation, busy, or do-not-disturb periods.

06 / SECTION

Reliability and Privacy

Settings, runtime state, activity segments, and reminder history stay in the local application-data directory. State writes are throttled during normal operation, backup imports are validated, and settings migrations merge new defaults without discarding preferences or history.

The project deliberately avoids accounts, analytics, cloud synchronization, content capture, and direct Microsoft Teams presence access. It uses the minimum Windows signals needed to distinguish active and away time.

07 / SECTION

Accessibility and Control

The timeline combines color with stripes and markers rather than relying on red-versus-green meaning. Reduced-motion, mascot-disabled, independent sound, opacity, and quiet-mode controls let people tune or remove the expressive parts of the experience.

The companion is intentionally easy to dismiss. That product constraint shaped the native window behavior, tray controls, reminder-only mode, and separation between tracking and mascot visibility.

08 / SECTION

Validation and Delivery

Deterministic tests cover idle-tail correction, focus and away boundaries, stale sessions after restart, reminder composition, active-time thresholds, quiet hours, custom nudges, and mood selection. Type checking, application builds, and static worker tests form the remaining validation path.

Electron Builder produces an NSIS Windows installer with Start Menu and desktop shortcuts, packaged assets, and optional startup on sign-in. A browser-only demo mode supports renderer development while keeping native behavior explicitly scoped to Electron testing.

09 / SECTION

Result

PurrPause connects product design, native desktop integration, stateful scheduling, privacy, accessibility, and packaging in one usable system. The result is a companion that responds to a person’s actual rhythm while keeping them in control of every reminder and every stored record.

TECHNOLOGY MAP

01TypeScript02Electron03React04Vite05Windows APIs06IPC07Vitest08NSIS