← All projects
projects

Todeyadone

Personal productivity · B2C, mobile-first · non-commercial (selection assignment)

An AI planner: write or dictate a stream of thought and get a reviewed plan for today and a backlog.

Problem

People do not think in tasks, but in a stream: “finish the brief tomorrow, buy milk and pet food, book a doctor's appointment.” A classic task manager makes them split this into tasks by hand and give each one a date, priority, and size. This is the hardest step, so some things never leave their head.

Todeya takes over that exact step. The user writes or dictates one message; AI extracts tasks, dates, deadlines, and priorities, and groups related actions. The person only reviews the result before saving.

Context and constraints

This was a selection assignment for SKELAR AI Lab. The brief was: a Todoist analogue with AI. I took the product from problem framing and PRD to a working production app. There were no customer interviews or public launch, so I made product decisions based on my own use, manual QA, and AI evals. Every such decision is recorded in a log with the alternatives considered (17 decisions).

Key product decisions

No separate Inbox. A raw dump is parsed and reviewed immediately, so “sort it out later” does not become another list nobody sorts out.

Clarification only when needed. Questions are embedded in the review screen and appear only where AI is genuinely uncertain. There is no separate mandatory step.

Task size (small / medium / large) instead of minutes. An exact AI estimate in minutes would look like false precision; size is enough to spot an overloaded day.

Date and deadline are separate. “When I will do it” and “when it is due” are different intents, and AI recognises them separately.

Key iteration: the Tasks tab

At first, “Plan” was split into daily sections and overdue tasks appeared in “Today.” In practice, daily sections duplicated the calendar and broke groups apart across days, while overdue work in “Today” made the day look visually “broken.”

I changed the mechanic: “Tasks” is now a backlog with a seven-day horizon plus “No date”; groups stay intact under their nearest date; and overdue work sits in a separate block at the top of “Tasks” with explicit actions (today / later / done). “Today” remains a clean focus for the day. On the first visit of a new day, a gentle prompt appears to sort out overdue work.

What's built

Text or voice dump → AI parsing → review screen → “Today” / “Tasks.”

A fallback model for both parsing and voice recognition, so one provider's failure does not break the core flow. If recognition fails, it can be retried.

Groups (shopping, steps toward one goal), duplicate checks before saving, an overloaded-day warning with partial task rescheduling, and rollover of unfinished work.

Limited offline mode: AI is unavailable, but tasks can be viewed and added manually; they sync when the network returns.

Sign-in by email code or Google, and installation as a PWA.

Process

Each wave (P0 core → P1 duplicates and groups → P2 plan realism) followed the same path: product doc → engineering spec → PR to main. I tested the AI layer with a set of evals covering typical and edge-case dumps. Before the demo, I ran a manual 36-case test plan, which found five bugs. I fixed the ones that broke saving first. I wrote the code with AI agents and maintain a separate rules playbook for them.

Status

Now: it is live in production, and I use it often myself. This project got me through the SKELAR AI Lab selection and received positive feedback.

Stack

React · TypeScript (PWA) · Vercel serverless · Supabase (Postgres, Auth) · OpenAI / Anthropic for parsing · Gemini / Whisper for voice