Managing a live queue on stream sounds easy, but it quickly becomes disorganized. Viewers want to play with you, ask you a question, fight you in Smash, sing the next karaoke track, or pitch their app on your podcast — and you, the streamer, are trying to read chat, keep playing a game, add a stream marker, and remember whose turn it actually is. We built the new public TV display features at waitlistapp.org partly with this audience in mind: streamers, esports hosts, podcast producers, music streamers, and anyone who hosts a show where the community takes part and needs a queue that is visible on stream instead of hidden among chat messages.

This guide explains every step: connecting waitlistapp.org to OBS as a streamer overlay, setting it up so trolls cannot fill your queue with junk entries, and making your Discord send a notification automatically when it's someone's turn. If you've ever spent thirty seconds of stream time scrolling chat for the next person's name, this article is for you.

The short version

  • Sign in to your account, opt in to the public display at /pro/display, and you get a private URL like waitlistapp.org/display/QhDQh3Egtj7U.
  • Add ?overlay=1 to the end, add that URL to OBS as a Browser Source, and you have a transparent floating queue over your scene.
  • Pick an identifier mode (handle, ticket, first-initial + last name) so viewer real names never end up on stream.
  • Turn on the QR code so viewers can scan and join with their phone, and turn on email verification so bots and trolls can't spam the queue.
  • Connect the Discord webhook so “you're up next” notifications appear in your community channel automatically.

Now the long version.

Step 1: Sign up and opt in to the public display

The public TV display and QR join work on a free online account. The OBS overlay, the custom join form and email verification need a paid plan. After you sign up and log in, go to /pro/display. This is the control panel for everything that happens on the public-facing board.

The first decision is the most important: opt in. The public display is off by default for every account, because the whole point of a waitlist is privacy. When you opt in, we create a random URL that nobody can guess that looks like https://waitlistapp.org/display/QhDQh3Egtj7U. The token at the end is the only thing that prevents anyone on the internet from finding your queue, so treat it like a password — don't paste it in chat, don't put it in your stream title, and if you think another person has it, replace it from the same settings page.

That URL is what you'll add to OBS, but it's also viewable in any browser. If you want to show it on a second monitor during your stream, that works too.

Step 2: Pick a theme that fits your brand

Under “Color theme” on the same page you'll find five built-in themes:

  • Midnight — dark and neutral, the default choice that works with most scenes.
  • Sapphire — blue / cyan; easy to read on an IRL stream from a desk.
  • Crimson — red accents; matches fight-night and FGC streams.
  • Emerald — green; suits relaxed gaming streams and Twitch-green branding.
  • Sunset — orange/purple gradient; bright, retro, suited to music streams.

You can swap themes mid-stream without restarting OBS — the overlay changes its theme immediately. We recommend picking the one that contrasts your scene rather than matches it. If your webcam border is sapphire blue, an emerald or sunset overlay will stand out clearly instead of blending in.

Step 3: Set identifier mode so real names are not shown

Streamers forget this setting more than any other, and forgetting it causes the worst problems. By default, the public display shows whatever name the customer typed into the join form. For a coffee shop that's fine. For a Twitch stream where you're about to broadcast that name to 4,000 concurrents, it is not.

Open the “Privacy mode” / “Identifier mode” selector and pick the one that fits your show:

  • Full name — never use this on stream.
  • First name + last initial — “Jordan B.”. Good for casual community streams where viewers know each other.
  • First initial + last name — “J. Bautista”. Slightly more formal.
  • DMV-style ticket — “AB001”, “AB002”. Anonymous and funny, and works well as a joke on your show.
  • Handle / gamertag — pulls from the custom field you configure (more on this below). The best choice for almost every gaming stream.
  • Position only — “#1 in line”. Maximum anonymity.
  • Custom template — build your own pattern.

Our recommendation: if you're streaming gaming, music, or anything where viewers already have a public handle, use handle. If you're streaming a Q&A podcast and want something less serious, use ticket — calling out “next up, AB014” gets surprisingly good chat reactions.

There's a separate staff URL that bypasses these privacy modes, intended for monitors that only staff can see. You can keep that one open on a side screen if you, the streamer, need to see real identities to match them up with Discord users. Don't add the staff URL to OBS.

Step 4: Add the overlay to OBS

This is the most important step. Take your public display URL and add ?overlay=1 to the end:

https://waitlistapp.org/display/QhDQh3Egtj7U?overlay=1

In overlay mode the background is transparent and the queue appears as dark, semi-transparent cards. That means it appears correctly over your game capture, webcam, or scene background without a solid box covering part of your scene.

In OBS:

  1. Pick the scene you want the queue to appear on.
  2. Click the + under Sources and add a Browser source. Name it “waitlist overlay”.
  3. Paste the URL (with ?overlay=1) into the URL field.
  4. Set width to 520 and height to 900 as a starting point. That gives you a tall sidebar of around 6–8 entries. Resize freely — the layout is responsive.
  5. Leave the “Custom CSS” field empty; the overlay already includes the dark, semi-transparent styling.
  6. Check “Shutdown source when not visible” and “Refresh browser when scene becomes active” for a clean reset between scenes.
  7. Click OK, then position and resize the source on your canvas. We like top-right or bottom-left corners.

That's it. The overlay updates in real time — when someone joins, when you advance “Now Serving”, when an entry is removed — without you touching OBS.

Layout skins for different show formats

Back on /pro/display, the “Layout skin” selector changes how the board looks:

  • Default — the standard list of cards.
  • Minimal — simple and plain, good for podcasts where the queue should not attract much attention.
  • DMV — monospaced text that looks like a ticket counter. Very funny together with the ticket identifier mode.
  • Esports — gradient hero block, designed for fight-night and 1v1 streams.
  • Karaoke — renames the hero to “Now Singing” and shows the song + artist fields. Pick this for music streams.

You can also override the hero label directly. If “Now Serving” doesn't fit, set it to “Now playing”, “Up to bat”, “Now cooking”, “Next round” — whatever your show calls it.

Step 5: Turn on the QR code so viewers can join with their phone

Toggle on the QR-code “scan to join” option and a QR code renders in the corner of both the public display and the OBS overlay. Viewers point their phone camera, tap the link, and your join form opens. No login, no account, no extra steps. This is by far the most-used join path on streams, because most viewers are already holding their phone.

Also say this on stream: “scan the QR in the bottom-right to get in the queue.” That single sentence gets more viewers to join the queue than any pinned chat message.

Step 6: Build the right join form for your show

Go to /pro/display/join-form. This is where you decide what viewers have to type to get in line. Every field is independently togglable and configurable:

  • Title and subtitle — the headline at the top of the form. Something like “Join the fight night queue” works better than “Join waitlist”.
  • Submit button text — “Get in line”, “Lock me in”, “Sign me up”.
  • Name — required, always.
  • Party size — useful for co-op streams where viewers want to bring a teammate.
  • Handle / gamertag — turn this ON for any gaming stream. This is the field your “handle” identifier mode pulls from.
  • Phone — rarely needed for streams; leave off unless you're doing SMS notifications.
  • Email — turn this on. You need it for the next section.
  • One custom field — you define the label. Examples: “Song you want to sing”, “Question for the host”, “Your main in Smash”, “Twitch username”.

Keep the form short. Every extra required field reduces the number of viewers who complete the form. For a fight-night stream, all you need is handle + main. For karaoke, handle + song title. For a podcast Q&A, handle + question.

Step 7: Turn on email verification — this is the most important step

Email verification is a toggle on paid plans, and it is, in our opinion, the single most important feature for streamers in this whole release.

When email verification is off, anyone who scans your QR can add any text to your queue. A name like “;;DROP TABLE chat”, a slur, a competitor's URL, the contents of the Bee Movie script. We've seen all of it. Stream trolls are creative, and many of them are online with nothing to do at 2am.

When email verification is on, the flow changes:

  1. Viewer scans QR, fills out the join form.
  2. Instead of appearing on the board immediately, they see a “check your email” page.
  3. We send them a verification link.
  4. They tap the link in their inbox — only then do they appear in your public queue.

This is an ordinary email-verification step, but it completely changes who can add entries. Trolls who arrive in a Twitch raid do not complete it. Bots do not complete it. The people who complete it are people who actually want to play with you, ask you a question, or sing on your stream. The junk entries stop.

We strongly recommend leaving this on for any public-facing stream. The cost is one extra step for viewers (which most expect anyway). The benefit is a queue without junk entries that you can read out loud on stream without worry.

Step 8: Connect Discord for community notifications

Most streamers we've talked to have a community Discord in addition to the stream. Connect it:

  1. In your Discord server, open the channel where you want notifications — we'd suggest a dedicated #queue channel.
  2. Edit channel → Integrations → Webhooks → New Webhook. Name it “waitlist”, copy the webhook URL.
  3. Paste that URL into the Discord webhook field on /pro/display.

Now every time you advance “Now Serving”, a message is posted in that Discord channel: “You're up next!” with the current and next entries. Viewers who left the stream for a while get notified in Discord and can return without missing their turn. It is a small thing that meaningfully increases the number of viewers who actually get to play.

Step 9: Audio chime

The public display includes a built-in audio chime — a synthesised two-tone bell — that plays whenever “Now Serving” advances. Pick “soft” if you want it as a background cue under your voice, or “loud” if you want everyone to clearly hear each change.

One browser limitation: modern browsers refuse to play audio until the page has been clicked once. When you first load the display, tap anywhere on it to enable audio. After that it'll chime for the rest of the session. If you keep the OBS Browser Source pinned to a scene, OBS does this automatically and you'll never notice.

Step 10: The live show flow

Here's what a live stream looks like with all of these features turned on:

  1. Stream goes live. Your overlay is already in the scene. The QR is showing.
  2. You say “scan the QR to get in the queue.”
  3. A viewer scans, fills out the form, sees the “check your email” page, taps the link in their inbox.
  4. Their handle appears on the overlay. Chat sees that they are in the queue.
  5. You finish the current match / song / question, click “Advance” on your operator dashboard.
  6. The overlay updates with the new “Now Serving”. The audio chime plays. Your Discord channel gets a notification.
  7. The next viewer joins, you greet them by their handle, and the show continues without a pause.

None of this requires you to read chat for names, copy-paste anyone's username, or remember who's next. The queue is on screen, your viewers can see exactly where they are in line, and the show continues without interruptions.

Two extras worth knowing about

Embed widget. If you have your own website, Linktree, or stream landing page, there's a JS snippet that adds a small version of the board to your site. Same identifier modes, same theme, less space on the page. Good for off-stream “here's the current queue” pages.

MCP for Enterprise subscribers. If you're on Enterprise and use Claude, you can connect Claude to your queue through MCP with an API token. Claude can then see who is waiting, add, update or remove entries, mark an entry as seated, and manage embed-widget entries. This is useful if you want to manage the queue between scenes without clicking through the dashboard.

Why we think this matters

Most “waitlist tools” were built for restaurants and clinics. They assume the operator is in a quiet back office, the customers are physically in front of them, and the queue is private. None of that is true for a live stream. Streamers needed a queue that is visible on stream, blocks trolls, appears in OBS without a green-screen workaround, and notifies the community automatically when it's someone's turn.

These features provide that. Add the URL to OBS, set identifier mode, turn on email verification, connect Discord, and you have a stream queue that works with large audiences. We'd love to see what you build with it — tag us when you go live.