Live MVP: https://pochita-tau.vercel.app
Denji is a desktop-first productivity app built with React + TypeScript. It centers on deep focus, intentional time tracking, and clean state management.
At its core, Denji is a Pomodoro engine built to evolve into a full Student Productivity OS — supporting focus sessions, habits, tasks, subjects, and exam planning.
- Focus / Short Break / Long Break modes with automatic transitions
- Configurable durations (focus, short break, long break, sessions before long break)
- Manual reset, skip, and session control
- Persistent session tracking (LocalStorage)
- Today / This Week / Total focus minutes
- Timeline of past sessions
- Charts: focus over time, session-type breakdown (pie), heatmap
- Reset stats option
- Durations: focus, short break, long break, sessions before long break
- Preferences: auto-start next session, sound on/off, volume, dark mode
- Changes apply after the current session (or immediately when stopped)
- Integrated with Google Gemini API (serverless
/api/focus-tip) - Daily productivity tips on the Timer page (focus mode only)
- Cached per day; new tip each day
- Clear visual session state
- Completion sound & optional notifications
- Keyboard shortcuts (space: start/pause,
r: reset,s: skip) - Pause on tab blur
| Layer | Tech |
|---|---|
| UI | React 19, TypeScript |
| Build | Vite 7 |
| Routing | React Router 7 |
| Charts | Recharts |
| Data | LocalStorage |
| AI | Google Gemini API (gemini-2.5-flash) via Vercel serverless |
| Deploy | Vercel (frontend + api/ functions) |
| Test | Vitest |
| Lint | ESLint |
- Pomodoro timer with configurable durations
- Automatic session switching (focus → short/long break → focus)
- Stats dashboard (summary, timeline, bar chart, pie chart, heatmap)
- AI-powered daily focus tips (Gemini)
- Settings (durations + preferences)
- Persistent state (sessions, settings)
- Clean, intentional UX
- Habit tracking
- Subject-based session tracking
- Task integration
- Exam countdown
- Long-term productivity analytics
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server |
npm run build |
TypeScript check + production build |
npm run preview |
Serve production build locally |
npm run test |
Run Vitest tests |
npm run lint |
Run ESLint |
Denji/
├── api/
│ └── focus-tip.js # Vercel serverless: Gemini focus tips
├── src/
│ ├── app/ # App root, layout, routing
│ ├── components/ # Timer, Controls, Stats, Settings, FocusTip, etc.
│ ├── context/ # PomodoroContext
│ ├── features/subjects/ # (WIP) Subject tracking
│ ├── hooks/ # usePomodoroEngine
│ ├── pages/ # Timer, Stats, Settings
│ ├── reducer/ # Pomodoro state logic + tests
│ ├── styles/
│ ├── utils/ # storage, ai, stats, time, etc.
│ └── types.ts
├── vercel.json # SPA rewrites (exclude /api)
├── vite.config.ts
└── package.json
MIT License © Manish (Alen) Permission is hereby granted, free of charge, to any person obtaining a copy of this software, to deal in the software without restriction
See the LICENSE file for details
Denji is built to grow — structured, minimal, and scalable.


