Public
Like
Pomodoro
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in miliseconds.
index.ts
https://ommywaters--02a0aa783fa411f0877776b3cceeab13.web.val.run
A customizable Pomodoro timer productivity tool that allows users to create, save, and manage different timer configurations.
- Customizable Timer Settings: Adjust Pomodoro duration, short break, long break, and number of sessions
- Named Timer Presets: Save and reuse timer configurations with custom names
- Session Management: Automatic progression through Pomodoro sessions and breaks
- Visual & Audio Feedback: Clear visual indicators and optional sound notifications
- Persistent Storage: Timer presets are saved and persist between sessions
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database query functions
│ ├── routes/
│ │ └── timers.ts # Timer CRUD API endpoints
│ └── index.ts # Main Hono server
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main application component
│ │ ├── TimerDisplay.tsx # Timer display and controls
│ │ ├── TimerSettings.tsx # Timer configuration form
│ │ └── TimerPresets.tsx # Saved timer presets management
│ ├── index.html # Main HTML template
│ ├── index.tsx # Frontend entry point
│ └── style.css # Custom styles
├── shared/
│ └── types.ts # Shared TypeScript types
└── README.md
- Create a Timer: Set your preferred Pomodoro duration, break times, and number of sessions
- Save Presets: Give your timer configuration a name and save it for future use
- Start Timer: Begin your Pomodoro session with visual countdown and automatic break transitions
- Manage Presets: Load, edit, or delete saved timer configurations
- Pomodoro Session (work time)
- Short Break
- Repeat for specified number of sessions
- Long Break after completing all sessions
- Option to restart the cycle
GET /api/timers
- Get all saved timer presetsPOST /api/timers
- Create a new timer presetPUT /api/timers/:id
- Update an existing timer presetDELETE /api/timers/:id
- Delete a timer preset