Wedding day jobs, and the people doing them. Import the day from Cadence, hang the work off the blocks it happens during, put names against it, and print each person their own sheet. Everything runs in the browser. No account, no upload, no server.
Fourth standalone repo alongside Tableaux (seating), Plaque (stationery) and Cadence (timeline) — shared design language only, no shared code.
Cadence answers when. A real day also carries dozens of small jobs — lay 90 covers, move the top table, light the candles, bag the hire linens — and every one of them needs a pair of hands and a place. That is what Brigade holds, and it is the one question a timeline cannot answer for you.
npm install
npm run devOpen the app, press Sample to see a realistic day with a crew on it, or import your own: in Cadence, press Export day, then Import day here.
- The day comes from Cadence, already resolved. A
.day.jsoncarries every block with its clock times worked out. Brigade never edits the timeline and never recalculates it: the scheduling engine lives in exactly one place. - A job hangs off a block. It has no time of its own — it happens when its block happens, and it moves when the block moves. Re-import after a change to the day and every job follows.
- People sit in teams. Teams are seeded from Cadence's supplier tags, complete with the phone numbers already recorded there, and are yours to rename, merge or delete after that.
- Assigning is a click. Pick a job on the board, then click the people doing it.
- Nothing is lost quietly. A job whose block has gone from the day is kept and flagged at the top of the board, never dropped.
| Check | What happens |
|---|---|
| One person on two jobs at once | Holds the print run — nobody can be in two places |
| The same two jobs, one of them a moment | Mentioned, never blocking: an instant is not a shift |
| Two jobs inside one block | Nothing. How one person orders their own half hour is their business |
| A job with nobody on it | Mentioned. The sheets are how the gaps get filled |
| A job whose block has gone | Holds the print run until it is moved or deleted |
Vector PDF, fonts embedded and subset, text selectable.
- Job list — every job on the day in clock order, with who and where. The coordinator's copy.
- Sheet per person — one page each, bundled into one PDF. What you hand somebody when they arrive.
- Sheet per team — a supplier's whole day on a page, whoever in the team holds each job.
src/
core/
model/ the document: teams, people, jobs, and the imported day
import/ reading a Cadence day, and landing it on work that already exists
jobs/ the coverage checks
time/ minutes in, clock strings out
render/
pdf/ the three printed pieces
screen/ the board
state/ store, undo, autosave
ui/ sidebar panels and controls
| Command | What it does |
|---|---|
npm run dev |
The app, on a dev server |
npm test |
The whole suite |
npm run sample |
Renders all three pieces from the fixture, no browser involved |
npm run build |
Type check, build, then the offline gate |
The build fails if anything in the bundle could reach another origin. No crew name, phone number or schedule leaves the machine it was typed on.
MIT licensed.