Skip to main content
MakeKeeper

MakeKeeper 0.17: the workshop learns to remind you

MakeKeeper 0.17.0 went out on 31 August 2026. Until now the app waited to be asked: you opened it, and it told you what was going on. This release lets it speak first.

Notifications

A notification bus, with an inbox and a bell in the header. Anything worth knowing about — an order that moved, a stock level that fell through its threshold, a plugin with something to say — arrives in one place instead of being something you have to go and look for.

Delivery happens over channels: in the app, as a web push to a device you have allowed, and over any channel a plugin contributes. The Telegram example plugin is now one of those channels rather than a one-off integration bolted to the side, which means a plugin author adds a way to be reached the same way they add anything else.

Where each thing goes is a matrix of channels against notification groups, so you can silence one group or route it somewhere else without going quiet everywhere. Notifications open in full, with the technical half folded away until you want it, and they carry action tokens — you can act on the thing straight from the delivery. Each token is good for exactly one use and is revoked along with the device it was sent to.

Reminders

Under the notifications sits a scheduler: RRULE recurrence, a timezone per rule, lifecycle hooks and a misfire policy for the occasions when nothing was running at the moment a rule was due.

Reminders can hang off any object — a project, a material, an order — or off nothing at all, when the thing to remember has not been written down anywhere yet. They can be snoozed, they are offered straight from the bell, and they are available to the assistant as tools, so “remind me to check the resin on Friday” is a sentence rather than a form. A schedule with nothing ahead of it is refused rather than saved dead, which is the failure everyone has met at least once: a reminder that was accepted and then never fired.

A calendar

A calendar view, built as a projection over pull providers. In practice: every plugin can put its own dates on it, so deliveries, deadlines and reminders share a month instead of each keeping a private list. Entries open in full, and the month and year are picked directly rather than paged to one click at a time.

Elsewhere

The assistant now knows the clock and the caller’s timezone, so relative dates mean what you meant by them. The realtime handshake carries your language and zone as well, and dates render in the app’s language rather than the browser’s — a small thing that was wrong in a way you only notice when the two disagree.

On the source side, the public repository is now published as clean release snapshots with a CI pipeline of its own, a GitHub Release created for every release tag, and secret scanning gating every push.


Next: 0.18 — the first five minutes. Previously: 0.16 — the source going public. All of it runs on your own machine, for nothing: one command to install.

All posts