Viewer note

Announcements fill the grid.

This page is a reading note. It shows you how a viewer finds a live broadcast. Media over QUIC (MoQ) does that with announcements. You do not refresh a room list.

You ask for a prefix. The network answers with the paths that are live, then with each start and each end. Those answers are the tiles. This host does not announce, and it does not open the Events desk. Open the bench when you want the mock grid.

Canonical bench path: /discover. The alias /learn/discover on colorbars.dev is the same bench.

From an announcement to a tile

  1. 01 · AnnouncePublisher names a path
  2. 02 · PrefixYou ask once
  3. 03 · GridTiles are the answers
  4. 04 · RetractThe tile leaves

ANNOUNCE · exact path

A publisher claims one path.

A publisher announces an exact path. That announcement is a route. It claims the path can be served. If nobody announces it, you cannot discover it, even when something is publishing nearby.

PREFIX · ask once

You ask for a prefix, then you listen.

You ask for announcements that match a prefix, such as demo/boy/. The CDN answers with what is live now. After that it tells you when a broadcast starts and when it ends. You do not poll a membership service.

ask   → announcements for demo/boy/
match → demo/boy/big2small
match → demo/boy/opossum
skip  → demo/bbb.hang

GRID · the catalog

Matching announcements become your tiles.

You lay the matching paths in a grid. MoQ Boy does this for games. A room prefix does it for the peers who announced. The public clickable grid lives at moq.dev/demo. The bench draws those tiles as a mock.

UNANNOUNCE · tile leaves

When the route comes down, the tile leaves.

A publisher retracts the route. New requests stop resolving through it. The tile leaves your grid. A subscription you already opened is a different step.

What the sources are for

MoQ Boy

The CDN names the games

The open hang at moq.dev/boy is discoverable because the CDN announces which games are available. You do not put a custom room service in front of that list.

The demo grid

You click what is announced

moq.dev/demo is the public grid: Boy, Big Buck Bunny, hang.live, and a way to publish. Each entry is a broadcast you can open there.

Prefix

A narrower ask is a smaller grid

demo/boy/ returns the game workers. demo/ also returns Big Buck Bunny and the other public demos. You choose the prefix.

The grid is the list

A tile is an announcement, not a player

Membership is the set of paths under the prefix. Selecting a tile on the bench does not open a watch session.

Come and go

Start and end are the updates

A broadcast comes online as a start. It goes offline as an end. Your grid follows those updates.

The bench

colorbars.dev owns the mock grid

The live bench is colorbars.dev/discover. Canonical path: /discover. Alias /learn/discover is the same bench. Events stays signed in.

Open MoQ

BitPrairie builds MoQ Studio. The open stack is at moq.dev. moq.pro is a separate host. We do not operate those hosts.

Sources

  • MoQ Boy — the CDN announces which games are available. Clients connect to the CDN. There is no custom orchestration layer in front of that list. moq.dev/boy
  • kixelated, “MoqBoy,” moq.dev, 16 April 2026. A player asks for the prefix demo/boy/. Games come online and go offline. The client lays them in a grid. hang.live discovers peers the same way, with a room prefix. moq.dev/blog/moq-boy
  • Demos — the public clickable grid of open hangs, including MoQ Boy and Big Buck Bunny. moq.dev/demo
  • Open implementation, libraries, and self-hosted relay: moq.dev.
  • Interactive bench for the same story, owned and served live by colorbars.dev. Canonical path colorbars.dev/discover. The alias /learn/discover on that host is the same bench. The mock grid is there. Events stays signed in.