nooks
GitHubInstall
Features

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.

01

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.

02

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.

03

Share

Getting the list to the person who needs it, on screen or on paper.

Household sharing

Invite people to the instance, then share a list with all of them, with named people, or with a group.

Groups

A group is a shortcut for sharing and nothing else, so it never becomes a second hierarchy to maintain.

Public pages

Publish a list as a read-only page at a stable link. A visitor cannot see that any other list exists, and the link is revocable.

Print design

A real print stylesheet: 27pt title, 16pt items, a drawn checkbox, and the quantities a shopper needs. The sidebar does not come with it.

Export

The database itself, not a format of ours. On SQLite that is one file you can copy, which is the whole instance and cannot fall behind the schema.

History

Who added a thing and who ticked it, including when a script or an assistant did it through a token.

04

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.