Blueprint · Productivity
Meeting notes
Meetings with attendees, notes, and action items that have an owner, a due date, and a done flag.
Published by Croft · version 1 · meetingsminutesaction-itemsnotesfollow-upproductivity
What this needs
Requires no connections. Runs on demand, when called directly.
Record streams
- action_items (write)
- attendees (write)
- meetings (write)
- notes (write)
About this blueprint
Keeps a record of every meeting and, more importantly, of what everyone agreed to do afterwards. Each meeting carries a date, a time, a location, a purpose, and the people who were in the room, with absentees marked rather than quietly dropped. Notes are captured against the meeting as they happen and can be pinned so the decision does not get buried under the discussion. Action items are the point of the whole thing: each one has an owner, a due date, a priority, and a done flag, and the app surfaces them across every meeting at once so nothing goes stale in a document nobody reopens. Anything past its due date and still open is flagged as overdue, and a By owner view shows who is carrying the most and what they owe next.
Built on four append-only record streams (meetings, attendees, notes, and action_items) with a single callable workflow as the only write path. Every append is a full snapshot of the row, so the newest row per id is the current state and a removal is a tombstone rather than an erasure; that gives an audit trail of how an action item's owner or due date changed over time, for free. The page is one self-contained HTML artifact that reads current state with a row_number window query and writes through the workflow, minting its own row ids so an attendee can reference the meeting created alongside it. Ticking an action item off updates optimistically and then reconciles against the record stream.
For any team that runs recurring meetings and keeps losing the follow-through: a weekly engineering sync, a client onboarding call, a leadership review, a committee that meets monthly. It is aimed at the person who ends up owning the minutes and is tired of chasing commitments across a pile of documents. Install it as-is for a small team, or treat it as the starting point for a meeting workflow with your own fields, since the write engine takes a flat field map and adding a column costs nothing.
How it works
Source — 1 file, show
index.ts
;
/**
* Meeting notes — the write engine behind the meeting notes app.
*
* Every entity lives in an append-only record stream as an event log: each
* append is a full snapshot of the row, and the newest row per `id` wins.
* Removals append a tombstone (`_op: "gone"`) rather than erasing history.
* The artifact page reads current state with a `row_number()` window query.
*
* `_op` is "live"/"gone" and never the word "delete", because `records.query`
* rejects COPY EXPORT INSTALL LOAD ATTACH CREATE INSERT UPDATE DELETE PRAGMA
* as whole words anywhere in the SQL text — string literals included.
*
* The appends are written out one stream at a time, rather than through a
* computed stream name, so the analyzer can name every stream this workflow
* touches and an install plan can list them.
*/
;
;
Want this running in your own workspace?
Installing recompiles this exact version in your workspace, lands it paused, and walks you through granting whatever it needs above. No account yet? Installing creates one.