The reference fork had drifted four builds behind the app actually running backstage. What it was missing is Birthday Mode, the feature the ProdDash module was ported with and this snapshot never had: - main.js grows the Planning Center birthday fetch (`pcoFetchBirthday`), mm-dd normalising, and a `pco-test-birthdays` IPC handler behind the settings pane's Test Birthdays button. - renderer.js gains the whole celebration: the Wednesday→Tuesday birthday week, the canvas confetti loop, the gold glow, and the controls that switch it on and set its intensity. - index.html and styles.css carry the Birthday Mode block in settings. Purely additive — 597 lines in, four out, and those four are the version and build number. Source only, as the fork has always been: `.claude/` settings stay as they are (the local copy's are one machine's accumulated permissions, and it has no launch.json to give), and the stray test file beside them is not part of the app. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Band Lineup
Stage lineup photos with mic/pack labels, for the backstage screen. Electron, packaged for Windows.
It also carries the ProPresenter Now / Next feature, which exists in two forms that share one engine:
BandLineupDisplay/
├── main.js, preload.js, index.html, renderer.js, styles.css the Band Lineup app
├── propresenter-core/ the shared ProPresenter 7/20 client — no deps, no Electron
└── propresenter-app/ the standalone Now/Next display + the page the band app serves
| Want | Do this |
|---|---|
| Run the backstage app | npm start |
| Show Now/Next on screens around the building | In the app: People panel → Studio Displays → Turn On, then bookmark the address it gives you |
| Host the display without the Band Lineup app | cd propresenter-app && node server.js |
| Build the Windows installer | npm run dist |
propresenter-core is the single home for every ProPresenter quirk — runtime route discovery on
PP20, arrangement-expanded slide totals, uuid-then-name matching for the live item. Fix a quirk
there and both programs get it.
Details on the display, the bookmark that survives DHCP, and the Windows firewall gotcha: propresenter-app/README.md.
Testing without ProPresenter
tmp/pp-mock.js is a mock of the ProPresenter network API that advances slides on a timer,
including the tricky case where an arrangement repeats a section (43 cues over 41 master slides):
node tmp/pp-mock.js 1599
Then point either program at 127.0.0.1 port 1599.