Own your time, own your data, master your focus.
A privacy-first, multi-tenant productivity & tactical focus suite built with vanilla JavaScript. Pomodoro timer, task management, calendar visualization, deep statistics, mascot companions, tactics RPG focus battles, accountability squads, and an administrative telemetry studio.
"Pomodoro" is Italian for tomato. "Pomidor" (Помидор) is Russian for tomato. Same technique, fresh identity — with a mission:
- Privacy-First & Multi-Tenant Data Partitioning — All tenant state is isolated in client-side storage partitions (
pomidor.tenant.<id>). Zero mandatory backend, zero tracking requirements, hot-swappable user contexts. - Offline-Capable PWA — Service worker caching with automatic background asset hydration and offline-first reliability.
- Bilingual Core — English & Russian natively supported across the entire interface and branding.
- Zero Dependencies — Built completely with Vanilla ES Modules, native Web Components, and CSS custom properties. No npm build steps, no heavy frameworks.
- Accountability & Gamification — Focus rooms, buddy squads, high-fives, and a full turn-based Tactics RPG engine powered by your real-world focus sessions.
- Enterprise-Grade Admin & Telemetry — Real-time performance monitoring, client-side bot detection, GA4 event pipelines, and partition directory inspection.
- Chrono Pomodoro Timer — 25/5, 50/10, 90/20 presets or custom cycles with ambient audio chimes.
- Interactive Focus Mode — Fullscreen distraction-free timer with Zen ripples, breathing glows, particles, and progress arcs.
- Task & Vault Management — Hierarchical task lists, priorities (High/Med/Low), estimates, drag-and-drop ordering, and markdown notes.
- Interactive Calendar & Heatmap — Month & week views, quick-add task modals, and GitHub-style activity heatmaps.
- Deep Analytics — Daily streaks, focus time distributions, productivity velocity charts, and 13 unlockable achievements.
- Default Onboarding Persona — New sessions launch immediately into
tenant_novice("You", Focus Apprentice) with curated starter tasks and onboarding guidance. - Preloaded Rich Personas — Hot-swap between 6 distinct tenant profiles, each with independent tasks, habits, vault notes, and RPG gear:
tenant_novice— You (Focus Apprentice / Pomi Mascot / Level 1)tenant_admin— Shug (Chief Architect & Admin / Level 25)tenant_elena— Elena Rostova (Staff Distributed Systems Engineer / Caly / Level 38)tenant_darius— Dr. Darius Vance (Neuro-Performance Specialist / Spike / Level 42)tenant_aiko— Aiko Tanaka (Design Systems Director / Flora / Level 29)tenant_leo— Leo Morales (Solo Bootstrapped Founder / Bolt / Level 19)
- Accountability Lounge — Virtual co-working focus chambers (Deep Work Chamber, Algorithm Workshop, Design Sprint Lab, Night Owl Sprint), buddy squad cards, one-click High-Fives, gentle nudges, and live activity streams.
- Granular Privacy Matrix — Toggle public visibility for focus time, streaks, active rooms, and tactical levels per tenant.
- Partition Directory — Live health check of all client storage partitions with one-click impersonation.
- Real-Time Telemetry — Live framerate (FPS), memory footprint heap gauges, and interaction latency tracking.
- Client-Side Bot & Threat Detection — Automated heuristic scoring for headless Chrome, WebDriver flags, automation plugins, and synthetic mouse trajectories.
- GA4 Analytics Pipeline — Testable measurement protocol events with custom event dispatchers.
- Tactics Battle Arena — 7x7 grid turn-based tactical combat. Earn Action Points (AP) and focus mana through real-world pomodoro intervals.
- Chronomancy Dungeons — Explore the Chrono Tower, unlock dungeon floors, and equip legendary artifacts.
- Mascot Companions — Choose from Pomi (Tomato), Caly (Calculator), Spike (Focus Cactus), Flora (Bloom Orchid), Bolt (Lightning Spark), or Sage (Owl). Mascots guide tours, celebrate milestones, and cheer focus sessions.
- Guided Interactive Tours — Step-by-step spotlights navigating core tools, timer mechanics, and tactics battle arenas.
- Cohesive Apple/Linear Aesthetic — Frosted glassmorphism, fluid dark/light themes, concentric chrono rings, and modern typography.
- Multi-Variant Brand Emblems — 4 distinct vector styles (Sleek Modern, Soviet Constructivist, Edgy & Dark Tactical, and Lighthearted & Playful Kawaii) in both English and Russian SVGs. Includes a live 1-click in-app switcher in Hero Banner and Settings.
- Cleaned-Up Messaging — Grounded, unpretentious taglines ("Focus & Flow" / "Фокус и Поток", "Discipline & Labor", "Locked In", "One Tomato at a Time").
- 100% SVG Vector Architecture — Strict zero-unicode-emoji policy across all views, replaced by bespoke scalable SVGs.
pomidor/
├── index.html # Single-page application orchestrator
├── manifest.json # Progressive Web App manifest
├── sw.js # Service worker with offline caching (v4)
├── css/
│ ├── variables.css # Design tokens & theme definitions
│ ├── styles.css # Core component and layout styling
│ └── futureVars.css # Extended palette & typography variables
├── js/
│ ├── app.js # Application root & view switcher
│ ├── seedData.js # Multi-tenant partitioned seed datasets
│ ├── modules/
│ │ ├── timer.js # Timer engine with Web Audio fallback chime
│ │ ├── modernTimer.js # Modern timer UI with circular SVG progress ring
│ │ ├── heroBanner.js # Living Outpost diorama, carousel, and brand cycler
│ │ ├── todo.js # Task manager with subtasks, notes, drag-and-drop
│ │ ├── calendar.js # Calendar views and day modals
│ │ ├── kanban.js # Visual kanban task board
│ │ ├── vault.js # Markdown encrypted notes vault
│ │ ├── habits.js # Daily habits engine and completion tracking
│ │ ├── mood.js # 5-stage SVG mood tracker and adaptive day plans
│ │ ├── stats.js # Focus analytics, heatmaps, and time accounting
│ │ ├── achievements.js # Achievement unlock system with audio fanfares
│ │ ├── focusMode.js # Fullscreen zen focus experience
│ │ ├── settings.js # Sticky drawer with category filter tabs
│ │ ├── theme.js # Theme switcher (Dark, Light, Cyberpunk, Forest)
│ │ ├── keyboard.js # Global keyboard shortcuts
│ │ ├── social/ # Multi-tenant profile management & accountability lounge
│ │ │ ├── profileCatalog.js # 6 pre-seeded tenant datasets
│ │ │ ├── profileManager.js # Multi-tenant partition controller
│ │ │ └── socialUi.js # Accountability Lounge UI & interactions
│ │ ├── admin/ # Telemetry command center & partition directory
│ │ │ └── adminDashboard.js # Telemetry gauges, heap, and tenant switcher
│ │ ├── telemetry/ # Telemetry, bot detection, and visual heatmap HUD
│ │ │ ├── botDetector.js # Heuristic automation scanner & scoring
│ │ │ ├── heatmapTracker.js # Coordinate click tracking and canvas overlay
│ │ │ ├── telemetryManager.js # FPS, memory, and latency monitor
│ │ │ └── gtagService.js # GA4 measurement protocol client
│ │ ├── mascot/ # Companions, chores expeditions, and tours
│ │ │ ├── companion.js # Mascot companion state machine & cheers
│ │ │ ├── companionChores.js # Zero-flicker companion expeditions
│ │ │ ├── mascotRegistry.js # Mascot dialogue and lore catalog
│ │ │ └── onboardingTour.js # Step-by-step spotlight tours
│ │ ├── gamification/ # Final Fantasy Tactics RPG engine
│ │ │ ├── tacticsEngine.js # 7x7 grid turn-based RPG battle engine
│ │ │ ├── tacticsUI.js # Combat grid, CT timeline, and command HUD
│ │ │ ├── hero.js # Hero paper-doll stage and vital bars
│ │ │ ├── party.js # Tactics guild party recruitment tavern
│ │ │ └── quests.js # Chapter quests and boss arena battles
│ │ ├── locales/ # Multilingual translation dictionaries
│ │ │ ├── en.js # English (default)
│ │ │ ├── ru.js # Russian (Русский)
│ │ │ ├── az.js # Azerbaijani (Azərbaycanca)
│ │ │ └── he.js # Hebrew (עברית)
│ │ └── i18n.js # Bilingual/multilingual i18n engine
│ ├── components/
│ │ ├── progress-ring.js # Custom progress ring Web Component
│ │ └── hour-glass.js # Custom animated hourglass Web Component
│ └── utils/ # SVG icon library and helpers
├── icons/
│ ├── favicon.svg # Scalable modern vector favicon
│ ├── favicon.ico # Multi-size legacy desktop icon
│ ├── icon-*.png # PWA icons (72px - 512px)
│ ├── brand/
│ │ ├── pomidor_en.svg # Modern English vector emblem
│ │ ├── помидор_ru.svg # Modern Russian Cyrillic vector emblem
│ │ └── variants/ # Modern, Soviet, Edgy, and Lighthearted SVGs (EN/RU)
│ └── legacy/ # Archived original app icons
└── tests/ # 12 Playwright test suites (99 passing tests)
├── smoke.spec.js # Core app smoke suite (21 tests)
├── settings-drawer.spec.js # Sticky settings drawer & tabs
├── brand-variants.spec.js # 4 SVG brand variants & switcher
├── living-hero-carousel.spec.js # Living Outpost & expeditions
├── localization-and-hero.spec.js # Multilingual & hero tests
├── mascot-tactics.spec.js # Mascot & tactics tests
├── social-and-admin.spec.js # Multi-tenant & Admin Studio
├── tactics-rpg-expansion.spec.js # Tactics RPG engine & combat
├── telemetry-and-bot.spec.js # Telemetry, bot detector, heatmap HUD
├── screenshots.spec.js # Full-page screenshot capture suite
└── capture-living-carousel.spec.js # Outpost diorama visual validation
No npm build step is required! Simply serve the directory using any static web server:
# Clone the repository
git clone https://github.com/ShugKnight24/pomodoro.git
cd pomodoro
# Serve locally
npx serve .
# Open http://localhost:3000 in your browserAutomated end-to-end tests are implemented using Playwright:
# Install test dependencies (first time only)
npm install
# Run the complete test suite
npx playwright test
# Run a specific spec
npx playwright test tests/social-and-admin.spec.jsAll data within Pomidor is stored client-side under partitioned keys:
pomidor.activeTenantId: Identifies the current active tenant (tenant_noviceby default).pomidor.tenant.<id>: Stores the isolated profile, tasks, habits, notes, achievements, and RPG progress for that specific tenant.- Zero Cloud Leakage: Switching tenants swaps the active localStorage partition instantly in memory. No data is transmitted to remote databases without user consent.
Contributions are welcome! Please feel free to open PRs or issues:
- 🌍 Translations — Extend
js/modules/i18n.jswith new language dictionaries. - ⚔️ Tactics RPG Content — Add new enemies, skills, and gear in
js/modules/tactics/. - 🎨 Visual Themes — Contribute new CSS custom property themes to
css/variables.css.
Released under the MIT License.
Crafted with precision focus 🍅
Создано с фокусировкой и любовью к деталям 🍅