Three tasks a day is a small product: a pile of items, one model call each morning that returns three ids with a sentence of reasoning, and an email. An agent writes that in one sitting on SQLite and nodemailer, with a plain scoring rule as the fallback when the model fails. What you take on yourself is keeping it running: the job must fire every morning, the email must reach your inbox, and the picking prompt needs a few weeks of your own tuning. Voice capture from your phone becomes an iOS Shortcut.
Before you buildThere is no free plan, but the /try page shows a sample of the idea without signing up, and the trial lasts 14 days (a card is required).
Build me a daily top-three task app to replace 3 & Done. Requirements: - Node.js 22 + TypeScript: a Fastify server with server-rendered pages (Eta) and a little vanilla JS. `npm start` serves http://127.0.0.1:4880 with a dump box, today's three and the full list. - Storage: better-sqlite3 in ./data/three.db. items (text, title, project, due date, minutes, status open, done or retired, snoozed_until, created_at) and picks (date, item, position, reason, outcome) so history stays. - Dump: one big text box; each pasted line becomes an item. An OpenAI-compatible endpoint (LLM_BASE_URL, LLM_MODEL, LLM_API_KEY in .env; Ollama works) turns it into title, due date, project and minutes as JSON checked with zod, and the raw text is kept if the call fails. `POST /add` with a bearer token takes the same text, so an iOS Shortcut can dictate into it. - Pick: every day at PICK_TIME (default 06:30, node-cron) send all open items with age, due date, times already picked and recent completions to the endpoint, which returns exactly three item ids and a one-sentence reason each. Reject duplicates and unknown ids, retry once, then fall back to overdue first, due soonest, oldest. - Email: nodemailer (SMTP_* in .env) sends the three with their reasons at pick time. Each line carries a signed link (HMAC token, no login) that marks it done, plus a link to the full list. - Control: today's page has Done, "Not today" (snooze one day) and "Swap" (next best item). After the email is sent the three never change on their own. An item picked 5 times without being done is offered for dropping or splitting. - Single user, one password in .env (signed cookie). No accounts, no telemetry, local-first. Outbound calls: SMTP and the endpoint only. - Out of scope: teams, sub-tasks, recurring tasks, a mobile app, calendar sync. - README: SMTP setup, the Shortcuts recipe for POST /add, keeping it running all day (launchd or a small VPS) and a warning that task text goes to the endpoint unless it is a local Ollama.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own 3 and Done.
Extend the top-three app in this folder. Requirements: - Every Sunday at 18:00 send an email listing the picks of the week with their outcome (done, skipped, swapped). - Add the items picked three or more times without being done, each with a drop, split or keep link. - Add a one-paragraph summary from the model endpoint, with the numbers computed in code, not by the model. - Update the README.
Make the daily pick in this folder calendar-aware. Requirements: - Read today's events from an .ics URL or a CalDAV calendar set in .env and compute free minutes between 09:00 and 18:00. - Pass free minutes to the model and tell it that the three picks must fit in them using the item minutes; fall back to one pick on days with under 60 free minutes. - Show the free-minutes figure in the email. - Update the README.
Add recurring items to the top-three app in this folder. Requirements: - A dump line such as "pay rent every 1st" becomes a recurring item parsed with `rrule`; show the next date in the list. - When a recurring item is marked done, create the next occurrence instead of closing it for good. - Items due today or earlier get extra weight in the pick prompt and in the fallback ranking. - Update the README.
The pitch is no upkeep: nothing to host, no list to groom and no prompt to repair when the picks drift. People who have abandoned several task apps pay $9.99 so the choosing happens for them, and the email arrives whether they opened the app or not.
Estimate · One model call a day costs cents, or nothing with Ollama; SMTP at one email a day fits free tiers. The $6 is a small VPS if your own machine is not always on. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Monthly | $9.99 | — | The whole app: unlimited items, the daily email of three with a reason for each, and the full list underneath. |
| Yearly | — | $8.25 | Same app as monthly. |
No free plan. A 90-second demo at /try needs no sign-up, and both plans start with a 14-day trial.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $9.99 a month on the Monthly plan, $119.88 a year (checked 2026-10-19).
Hosted delivery: the email arrives even when your own machine is off; Capture by voice from anywhere; the copy relies on an iOS Shortcut; The vendor's tuning of what counts as mattering today; Automatic grouping of items into projects and resurfacing of old ones; The team option. If any of those matter to you, keep paying.
Yes: Super Productivity (open source), Vikunja (open source), Taskwarrior (open source).