Skip to content

itsjavi/interval-timer

Repository files navigation

Interval Timer

A simple, beautiful interval timer SPA for workouts or focus sessions. The app orchestrates time-based phases (delay → work → break) with sound cues, clear visual feedback, and predictable repetition behavior.

Features

  • Configurable work intervals and break periods
  • Optional start delay countdown
  • Infinite or fixed repetition modes
  • Audio cues during countdown (synthesized, no external files)
  • Mobile-first responsive design with large tap targets
  • Settings persistence via local storage
  • Dark/light theme support

Tech Stack

Layer Technology
Framework React 19 + TypeScript
Build Vite with React Compiler
Styling Tailwind CSS 4
Components shadcn/ui
State Jotai
Audio Tone.js
Icons Lucide React
Deployment GitHub Pages (static SPA)

Getting Started

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm build

# Preview production build
pnpm preview

Project Structure

src/
├── components/      # React components
│   └── ui/          # shadcn/ui primitives
├── lib/             # Timer logic, state, and utilities
├── main.tsx         # App entry point
└── styles.css       # Global styles (Tailwind)

Documentation

For detailed business logic, state machine behavior, audio rules, and UI feedback guidelines, see AGENTS.md.

Deployment

The app automatically builds and deploys to GitHub Pages via the workflow in .github/workflows/gh-pages.yaml. Every push to main triggers a new deployment.

License

MIT

About

a simple interval timer

Resources

License

Stars

Watchers

Forks

Releases

No releases published