Work

Tortoise Watch: one project card at a time

A progressive web app that replaces the Kanban board with a single three-hour block you stand on purpose. Sold to individuals coming out of my training sessions.

Status
live
Stack
Next.js, PWA, Vercel, Supabase, Postgres row-level security, MCP with OAuth 2.1
Links
app.tortoiseplanner.com · The Tortoise Practice

The problem

Kanban boards show you everything you are not doing. For most people that is not motivating, it is paralyzing. The people I train do not need a better view of forty tasks. They need to pick one and stand on it for a while.

The constraint

It had to be simple enough to explain in one sentence at the end of a training session, cheap enough to sell to an individual rather than a company, and safe enough that one user’s data could never leak into another’s.

What I built

A progressive web app on Vercel with Supabase behind it. The unit of work is a watch: a three-hour block of the day you stand on purpose. The app reads the clock, names the watch you are standing and what kind of hours those are (sharp hours for puzzle work, open hours for brainstorming), then deals you one project card. You commit to it, or pass and give an honest reason. The reasons are where the signal is.

Access control is entirely Postgres row-level security. No query in the app filters by user id. The database enforces “you see your own rows,” so a bug in the application cannot become a data leak. Deploys on push to main.

It has its own hosted MCP connector with OAuth 2.1 through Supabase, so a user can ask their AI assistant to list goals or create projects in their planner. Choosing a project and starting a watch are deliberately not exposed to the agent. That is the user’s to do, in the app.

What it cost or taught

The MCP boundary was the interesting design call. An agent that can create projects is useful. An agent that can start a watch on your behalf defeats the entire point of the practice, which is that you chose.