The Factory Floor
Status dashboards are usually correct and dead. We wanted something correct and alive — a live theater of our real board, where cards hop when work actually moves, and the automated jobs that run our day show up as a crew with jobs of their own.
We call it the Kanban Factory. It is not a mock pipeline with fake tickets. It is a local page that reads the same board we already use to ship LastDB, and turns every real column change into a little hop, a soft blip, and a speech bubble from whoever grabbed the work.
Why a factory, not another table
We already had tables. Brain (our durable notes app on LastDB) and Kanban (the board app on the same node) already answer “what is open” and “who is supposed to care.” What they do not do is make the autonomous loop feel like a loop.
When a scheduled job claims a card, opens a change request, and lands it, the board moves. If you only look every few hours, the motion disappears into a pile of timestamps. The Factory is the opposite instinct: leave a window open, and let the room react when something true happens.
The rule: no fake motion
Idle workers may bob. Conveyor belts may shimmer. That is atmosphere. Cards do not parade for entertainment. A hop means a real column change on the live board. A victory arpeggio means something actually landed in Done. If the floor is quiet, the work is quiet — or the queue is empty, which is its own kind of status.
How the machine sees the board
Under the hood it is almost embarrassingly simple. A tiny local server polls two read-only sources every few seconds: the current set of board cards, and a heartbeat log of scheduled jobs. It normalizes that into JSON and serves a single-page theater.
The browser keeps the previous snapshot. On each poll it diffs. New card, removed card, column change, blocked → unblocked — those are the events that earn animation, sound, and a line in the factory log.
That design choice matters more than the neon. It means you cannot “demo” the Factory into looking busy without doing real work on the board. The satisfying part is honest.
Jobs as people (without pretending they are people)
We run a fleet of scheduled automated jobs against the same board — the same loop we wrote about in Building LastDB with Agents. In the Factory, each job is a character on the floor: not a human avatar, a personality sticker with a role.
Pickup is hungry. It scoops ready work into Doing. Groom tidies and promotes unblocked backlog. Pipeline is the anxious nurse for merges and deploys. Watch reconciles stuck change requests without grabbing new work. When a job fires, its tile lights up; when it is idle, it mutters. Hover and you get the last heartbeat in plain language.
The “Active Hands” strip goes one step further: when a worker instance is actually holding a card (because the board’s assignee field says so), you see which hand has which ticket. Click the hand, the card in the pipeline flashes. It is a silly interaction that answers a serious question: who has the work right now?
What we did not build
This is not a multiplayer ops console. It is not a product surface we are shipping as a cloud service. It is a local, read-only theater on top of tools we already trust. It does not move cards. It does not claim work. It does not paper over a quiet board with fake activity so the room looks productive on a screen recording.
Why it belongs next to the database story
LastDB’s bet is local-first software you can feel — data that lives with you, apps that compose on top, agents that can work without waiting for a dashboard someone updates by hand. The Factory is a joke with a thesis: if your system of record is honest, the interface can afford to be playful. The play is grounded in truth.
Also: if you are going to run autonomous work overnight, you deserve a way to walk into the office (or the living room) and see that the night shift was real.
Related: Progress That Reports Itself · Building LastDB with Agents · Brain and Kanban on LastDB