Kronos is a productivity tool designed to help users reach flow state, by aligning tasks with organically evolving mindsets and with layered personal goals.
It is a long-lived passion of mine, to make a computer understand human time and goals, in order to be a companion who is aware of our most valuable asset: time.
Aside from my research in turning flow-state and well-known time management paradigms into an algorithm, Kronos draws from my personal life as I learn how to juggle my goals, everyday life, and my obstacles, and observe useful or bad patterns.
-
Task Scheduler Algorithm
Automatically schedules tasks into ideal calendar gaps using constraints like:
- Preferred time of day (morning, afternoon, evening)
- Ideal days of week
- Repetition rules (daily, weekly, hourly)
- Time durationsAvoids overlaps with existing events using a gap-finding and conflict resolution strategy.
-
Dynamic Modal Routing
Uses Next.js searchParams to open modals for editing tasks/events while preserving the current route.
Modals behave like overlays but retain full routing capabilities.
-
Animated, color-coded UI
The UI si designed with a dynamic accent colour, reflective of the ongoing task.
Transitions and animations are created with Framer Motion
-
Reusable Input System
MultiSelect, DateTime, and Mindset selectors are modular React components, fully controlled via props and Redux state sync.
- Calendar component built with Hexaflexa library
- Markdown editor built with TipTap
-
Monolithic App with Modular Domain Separation
- /app - routing and pages
- /components - client-side UI and forms
- /lib - database interface, shared types, utilities -
Database (PostgreSQL + Prisma)
Uses Next.js searchParams to open modals for editing tasks/events while preserving the current route.
Modals behave like overlays but retain full routing capabilities.
-
Testing and Local Dev Strategy
Mock database layer using pg-mem and Jest for unit testing the organiser algorithm
Development and preview databases separated via .env, .env.development.local, .env.test
-
Deployment
Hosted on Vercel with Postgres.
Preview deployments use a separate database to avoid schema drift.
- Implement an 7-layer system of tracking goals and determining emerging priority, tied to humans' perception of time: from life goals down to work sessions.
- Connect to Notion API, to make use of the world's most versatile personal data organisation tool.
- Train a custom ML model that learns from weekly patterns and offers suggestions accordingly.
- Build a React Native version, to be used and tested as a mobile app.
- Come up with ways to gather data about the user's time, without needing direct input. The need for abundant and constant input is of the biggest hurdles for such a tool.