← Index
iPad

Outbox

A task manager where scheduling is a gesture, not a form.

Overview

Outbox started as frustration with task apps that treat a due date as metadata. Here the calendar is the primary surface: a split-pane Today view puts your list beside an hour-by-hour day, and dragging a task onto a slot makes the commitment real. Donna, a voice and text assistant, reads plain language on-device — no API call, no round trip. Everything lives locally with no backend and no account.

Features
  • Drag-to-schedule
    List and calendar share one canvas. Drop a task on an hour and it becomes a time block; drop it on a week and it takes a due date.
  • Donna
    A capture bar that takes speech or text. A local regex parser handles five intents — add, schedule, complete, delete, move — with fuzzy title matching.
  • Month as density
    Each date renders as a small SVG donut ring: completed against total due. The month reads as pressure, not as a grid of numbers.
  • Context mode
    A Personal/Work pill that switches itself against your configured hours and days. No manual toggle to forget.
  • Elastic recurrence
    Daily, weekly, and monthly tasks spawn their next occurrence on completion rather than sitting as a repeating row.
  • Read-only calendar merge
    Apple Calendar events appear alongside your own blocks in day and week view. Outbox never writes back.
How it works
  1. 01You type or speak a line into Donna in plain language.
  2. 02A local parser extracts the intent, the title, and rough timing.
  3. 03The task lands in Today, ready to be dragged onto the calendar.
  4. 04Overdue items surface once a day — done, reschedule, or carry forward.
Stack
React NativeExpoTypeScriptAsyncStoragereact-native-voicereact-native-svg
Key decisions
Local-first, with no server to fall back on
Everything lives in AsyncStorage behind React Context. Zero latency, offline by default, no account. The cost is no sync — a deliberate trade for an app one person uses on one device.
A regex parser instead of an LLM call
Donna recognises five intents through pattern matching rather than a model. It is narrower than an LLM and it never surprises you, but it answers instantly and works on a plane.
iPad only, at least to start
The split-pane Today view is the whole idea, and it does not survive a phone-sized canvas. Shipping narrow kept the layout from being compromised into something that works nowhere well.
Three P1s a day, enforced in the data layer
Priority inflation is what kills priority systems. The cap is a constraint rather than a warning, so the label keeps meaning something in month three.
Next projectLook Ahead