57 engineering tasks across core engine, presets, profiles, performance, offline mode, embeds, AI, localization, API and monetization.
7%
Add subscription payments for Premium.
Restrict premium features based on user role.
Premium embed widgets with branding and analytics.
Add paid features: AI planners, unlimited presets, no ads.
Implement feature flags to differentiate free vs premium features. Required before Stripe billing integration.
Add Stripe client library to backend. Prepare environment variables for STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET.
Add user roles (free, premium). Restrict premium features based on role. Required before enabling Stripe billing.
Allow 24–48h grace period for failed payments before downgrading user from premium.
Set up CHRONOS Premium and CHRONOS Pro Widgets as Stripe products with monthly pricing.
Create upgrade modal with pricing, features, and Stripe Checkout button. Display premium status in user profile.
Create backend endpoint to generate Stripe Checkout sessions for premium subscriptions.
Handle events: checkout.session.completed, customer.subscription.updated, customer.subscription.deleted. Update user role to premium.
Create cron or scheduled job to sync subscription status with Stripe to prevent stale premium access.
Show premium status and subscription state in the user profile and header.
Public premium page with the eight premium features, free vs premium comparison and FAQ.
Extend the user record with stripe_customer_id and stripe_subscription_id so subscriptions can be matched to accounts.
In-app engineering spec covering the premium access flow, subscription sync, system components, webhook endpoint and security requirements.
Log every incoming Stripe webhook event with its type, id and resulting role change so billing issues can be traced.
Reject unsigned or tampered Stripe webhook requests using the webhook secret. Required before any premium role can be granted.
Upgrade button now creates a real Stripe Checkout subscription session (CHRONOS Premium, €4.99/month) and returns to /premium with a confirmation.
Build iframe-based widgets for stopwatch, countdown, interval timer.
Track start, stop, duration events for embeds.
Theme, type, language, preset selection via URL params.
Track last used timers and routines for quick access.
Implement passwordless login for CHRONOS Profiles.
Add user accounts with saved presets and usage history.
Ensure user presets sync between desktop and mobile web.
Implement Pomodoro 50/10, 25/5, and exam-prep presets.
Design and implement preset selection UI with icons and categories.
HIIT presets, cardio intervals, strength training timers.
Build preset JSON model for Study, Workout, ADHD, Productivity routines.
Deep work blocks, time blocking presets, sprint cycles.
Short-focus blocks, gentle reminders, low-stimulation UI mode.
Implement UTM + referral ID tracking for partners.
Add partner accounts, referral tracking, and landing pages.
UI for entering natural language timer requests.
Convert AI JSON output into usable timer presets.
AI generates timer routines based on user text input.
Create JSON templates for Study, Workout, ADHD, and Deep Work planners to ensure consistent AI-generated routines.
Use local time reference when offline.
Cache JS, CSS, and timer UI for offline mode.
Enable timer functionality without internet using Service Worker.
Create REST API for developers to integrate timers.
Secure API access with per-user API keys.
Create developer docs with examples.
Translate UI and timer labels to Spanish.
Translate UI and timer labels to Hindi.
Implement hreflang for all localized pages.
Translate UI and timer labels to German.
Translate UI and timer labels to Portuguese.
Implement i18n JSON files and language switcher.
Ensure timer accuracy when browser reduces JS execution in background tabs.
Rebuild timer core to use Unix timestamp reference instead of JS tick loops. Add drift correction every 10–30 seconds.
Implement periodic resync to prevent timer drift when tab is throttled or minimized.
Add recovery logic for stalled timers, sleep mode, and JS execution pauses. Timer must recalculate correct elapsed time on resume.
Achieve 100/100 PageSpeed Mobile score.
Remove heavy JS and frameworks from timer page.