The screens are open
A venue's TV plays a rotation of scenes, and a scene is just a web page. If you can build a web page, you can build a TV app that runs in every bar and restaurant on OlloVue at once.
That sentence has been true for a while. What was missing was a way in: a place to sign up, something to read, and one working example to copy. As of this week all three exist, so this is the note that says so.
One page, every venue
The part people expect to be hard is not. You do not build a version of your scene for each venue. You build one, and the hub tells your page which venue it is playing in by appending a single parameter to the URL. Every data call goes to that address, so the same deployment shows the right menu, the right hours and the right weather in every city.
What your page can read, with no key and no login: the venue's name and brand colours, the live menu with prices from the register, today's hours, upcoming events, the waitlist, spotlighted reviews, local weather, live sports scores, the loyalty ladder, and the state of whatever game or jukebox the room is playing right now.
The screen talks to you
A TV has no mouse and no keyboard, and your scene is on for a while and then gone. So the screen tells you two things: when you have just been shown, and how long you have got, and when you are about to leave. Refresh on the first so a slide that has waited in rotation is never stale. Stop working on the second, because a page that keeps fetching while hidden is doing work nobody can see, on hardware that runs all night.
addEventListener("message", (e) => {
const m = e.data;
if (!m || !m.ollovue) return;
if (m.event === "shown") load(); // on screen, m.seconds to go
if (m.event === "hidden") stop(); // leaving
});
That is the whole lifecycle. The starter scene is a complete working page in about a hundred lines that does all of this, reads the venue, shows live hours and weather, and puts up a QR. Copy it, change what it shows, host it anywhere as https.
How the store works
Submit the URL at the developer portal. An app is a name, a tagline, an icon and that URL. A person reviews it, rendered at TV size, and approved apps land in a catalog that every venue can install from their own Screens page.
Two rules make that safe to build on. Nothing a developer does puts pixels on a venue's TV until a human approves it, and installing is always the venue's own act. And venues install an id, not your URL, which the hub resolves at serve time. Ship a fix to your page and it reaches every venue with no reinstall. The hub also checks your URL every ten minutes, skips your slot if it stops answering, and puts it back when it does.
You get play counts per app, and the review decision arrives by email with a note when changes are asked for.
What nobody has built yet
A karaoke queue. Fight cards. Lottery numbers. Neighbourhood news. A guess-the-price of tonight's special. Community league standings. The room is there, the data is there, and the screens are open.
Start with the docs, or just open the starter and read the source.
← All notes