Kronos
Tools
React
React
Next.js
Next.js
Tailwind
Tailwind
Typescript
Typescript
Prisma
Prisma
PostgreSQL
PostgreSQL
Overview

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.

Loading...
gifs,kronos-timeline-1.gif-image
Key Features
  • 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 durations

    Avoids 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
Loading...
gifs,kronos-addTask-1.gif-image
Architecture and Engineering Highlights
  • 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.

Loading...
gifs,kronos-organiser-2.3.gif-image
Next Steps
  • 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.
GitHub Repo
This portfolioWolfpackNFT
cloud-1
cloud-2