Unreleased
Going out as 3.0.0Current native TV distribution is Vega OS only. Earlier Android TV / Fire OS work mentioned below is retained as development history and is not included in this edition. The standalone app remains one configured wall, with its web display, guest page and Control panel.
Going out as 3.0.0. The repo history starts fresh with this release: one commit per version from here on.
Added
pnpm demo --lanserves the local wall on your network address, so a phone, a Fire TV and the Vega Virtual Device can join it, and prints theurlsto build the TV app with.pnpm tryrunspnpm demo --lan, points the config at it until you stop it, and builds and opens the TV app on a running Vega Virtual Device.- The web app can be served under a path: give
urls.webone (for examplehttps://example.com/wall) and its pages, assets and QR codes live under it. See docs/customising.md. - The Fire TV remote’s Play/Pause and Next/Previous keys, and Alexa (“pause”, “play”, “next”), drive the wall through Vega Media Controls.
- A photo call: hold OK on the remote, or press Start a photo call in the Control panel, for a minute with a big join QR, a mission from your categories, a countdown and a count of the photos that reach the wall. It ends with a card showing the photos it brought.
- In demo mode, the remote’s Menu button steps through the four themes and names the
settings.themeline for each. - For a few seconds after launch, the TV app shows the remote buttons for a photo call and for pausing the wall (in demo mode, for changing the theme).
- The conference example uses the conference theme, with photo missions as its categories.
- The Control panel pauses or resumes the slideshow and opens or closes uploads; both reach the wall straight away.
- The wall steps through photos a page at a time in reading order, with a sweep and a page number banner on each turn.
- Handwritten polaroid captions that size themselves to fit on one line.
- Desktop layouts for the upload page (with a live preview of the wall) and the Control panel. Phones stay the main layout.
- A new unlock screen for the Control panel.
- Reactions in the API: a client can send heart, fire, laugh or clap on an approved photo (
POST /photos/:id/reactions); the guest page doesn’t offer them. Counts ride along with each photo and reach the screens asphoto.reactions, batched to one event per photo every 2 seconds. createApp({ resolveWall })lets the API work out which wall a request is for. Out of the box there is one wall,default, so a running wall behaves exactly as before.packages/web-ui: the web app’s shared UI pieces in their own package.
Changed
- The TV app shows the one wall from
tvinboothwall.config.ts. Build it yourself and never publish it: there is no code entry, menu or store build. - The public demo moved to oss.boothwall.com/demo, beside the project’s own site with its guides at oss.boothwall.com. The old API address keeps working for TVs already set up with it.
- The Fire TV app keeps the Vega screensaver off while the wall is on screen.
- New README images, and development setup moved from CONTRIBUTING into docs/development.md.
- Event-neutral defaults: the demo is “BoothWall Live Demo” with
#BoothWall, its starting categories describe the crowd (first time here, regulars, on the team, friends & family) and the guest and host copy talks about the event and the big screen instead of a booth or a Fire TV. - The chip beside the logo comes from the new optional
badgeconfig field, like “Built on Vega OS”. The default config has none. - The README describes BoothWall for any event, lists where it runs and notes the hosted BoothWall Cloud.
- Picking a category on the upload page is optional when there is a catch-all: the photo goes there until the guest picks one. “Remove my photo” is a quiet text link now.
- Presentation, branding and categories come from
boothwall.config.ts. Settings saved by older versions keep working; see Older review settings. - Guest uploads work from plain-http pages on a local network, where browsers don’t provide
crypto.randomUUID. pnpm demospreads its sample photos over your own categories when they differ from the samples’.- With a local web app, the source card’s QR points at the repository.
credits: falsein the config hides the “Scan for the source” card and the source link under the phone pages.- Screens fill in settings an older API doesn’t send yet with the config’s values, so a screen can be updated before its API.
- “Running a booth” is now Running an event.
- Photos of real people and event signage were taken out of the demo set and the repo.
- The branded example is now
examples/conference-booth, a made-up developer conference with its own logo, colours and icons rendered from SVG sources in the example. - Migration
0008adds thephoto_analysistable for smart moderation verdicts. Apply it the same way as0007. - Migration
0007adds a wall id and reaction counts to photos. Existing photos join thedefaultwall. Runpnpm boothwall deploy(orpnpm boothwall migrate) to apply it.
2.0.0
10 Oct 2026YankedThis release was withdrawn shortly after it went out and its tag and GitHub release were removed. Everything in it is part of 3.0.0.
Added
- Renamed to BoothWall, with every app driven by one config file,
packages/shared/src/config/boothwall.config.ts, checked against a schema on every build. - The
pnpm boothwallCLI:setupcreates the Cloudflare resources, sets the booth passcode and deploys;deploy,migrateandexamplecover the rest. - The wall moved into
packages/wall-uiand runs on the web through React Native for Web as well as on Fire TV. - The web app serves the wall at
/, the upload page at/snapand the Control panel at/control, with an approval queue, photo management in bulk, live numbers and a remote for the TV. - The default BoothWall artwork in
brand/, and a fully branded setup inexamples/to show what a custom wall looks like. - Docs for running a booth, customising, the architecture and Vega OS.
1.0.0
8 Oct 2026Live Wall, the photo wall built for next.app devCon 2026 in Berlin. It lives on the devcon-2026 branch.
Added
apps/tv: a React Native 0.83 app for Fire TV on Vega OS with an animated polaroid collage, a spotlight slideshow, live arrivals and a remote that reaches every photo.apps/web: the phone upload page and a hidden admin page for approvals.apps/api: a Hono API on Cloudflare Workers with D1, R2 and a hibernating Durable Object that pushes new photos to every wall.packages/shared: the contracts all three apps share.