Everything hangs off the list.
Each of these exists because a household hit the wall without it. What is not here is not here — there is no roadmap wearing a product’s clothes on this page.
Capture
The shortest path from noticing something to it being on the list.
One-line add
The composer sits at the bottom of every list and keeps focus after Enter, so ten things go on in ten lines without touching the mouse.
Inline quantities
Type 1kg or x3 and it becomes a quantity beside the label rather than part of it. Quantities are free text, because “a bunch” is a quantity.
Inline dates
“saturday”, “tomorrow” and “14 oct” are read as you type, in the language the reader set, with a control to correct what was understood.
Notes
A Markdown note attaches to an item without lengthening the row: the first line previews under it, the rest opens in a sheet.
Command palette
Everything reachable from the keyboard, including jumping to a list by name.
Works with no signal
Reading, ticking and adding all work offline, and so does closing the tab and opening it again, because the app is kept on your own machine. What you change is shown, marked as unsent, and sent when the connection comes back. Browsers allow this over HTTPS, or on the machine the instance runs on.
Read
Views filter and sort the lists you already have. Nothing is duplicated.
Today and Upcoming
Cross-list views of everything dated, with whatever is overdue gathered into Today rather than hidden behind it.
Calendar
The same dated items by month, for deciding when something should happen rather than what is next.
Search
Full-text across labels and notes, over every list the reader can reach. Built in from the first release, not added once it got slow.
Live updates
A tick somebody else makes arrives without a refresh, and the list shows who else is reading it.
Light and dark
Per-member, with a system option. The palette is one file shared with this site, so they cannot drift apart.
Your language
Localised from the first release, dates included — not retrofitted once somebody asked.
Run
One binary, a database you choose, and nothing phoning home.
Self-hosted
One binary serving the API and the app from the same process. No queue, no mail server, no sidecars.
SQLite or Postgres
SQLite for a household, Postgres once several people write at once. The test suite runs against both, so the second one cannot rot.
Access tokens
Scoped to named lists, with read, write and delete as separate abilities, an expiry, and an audit trail. A list a token was not given is invisible to it.
REST API
Everything the app does, under /api/v1 with a bearer token. A check in CI refuses an endpoint that ships to the browser only.
MCP server
Built in. An assistant reaches exactly what its token reaches — a test checks that set against the service definitions, so the two cannot drift.
No telemetry
There is nothing to turn off. Nothing leaves the machine unless you point it somewhere yourself.