Writing Music — Getting Viewers onto My Drop List Without Leaving Twitch Subscribe

Music

Getting Viewers onto My Drop List Without Leaving Twitch

An abstract dark scene: an outline of a video frame with a small signup panel beneath it, a glowing orange button, and a dotted line leading to a stack of list rows, next to the title Onto my drop list without leaving Twitch.

I wanted someone watching my Twitch stream to type a phone number into a box under the video and land on my Laylo drop list, without opening a new tab. The code took one evening in September 2026.

A link was the cheap version

Any Twitch channel could already add plain panels under the stream: an image and a link. A panel pointing at my Laylo page would have taken about ten minutes, needed no approval from anyone, and shown up on mobile too. The catch was that the viewer had to leave the stream to sign up.

I chose the in-page version instead: stay on the stream, type a number, done. That choice is what turned a settings change into a build. Two smaller calls came with it. The form asks for a phone number first, with email one tap away. And it signs people up to the list as a whole, not to one particular release.

The ready-made widget can't run inside Twitch

Most signup services hand you a snippet to paste into your site, usually a script plus an embedded frame. Twitch set the content rules for extensions itself. Developers got allowlists for fetching data, images and media, but there was no allowlist for outside scripts, and outside frames weren't configurable at all. Both halves of a typical snippet would fail.

What did work was your own form, sending a request to a domain you had put on the fetch allowlist. So the panel became a small hand-built form: a phone field, a button to switch to email, the consent wording, and links to Laylo's terms and privacy policy.

The backend exists because the zip is public

Twitch hosted an extension's front end itself, from a zip you uploaded. You couldn't point it at your own server, and anything inside that zip could be read by anyone. Adding someone to my list takes a key for my Laylo account, and that key has to stay out of public view, so it could not ship in the zip.

That one fact is the whole reason the project has a backend. It is a small function that holds the key and passes the signup along. It ran on a free tier, so it cost $0. It was built to keep no phone numbers or emails: tests fail if a submitted number or address ever turns up in a log or an error message.

Twitch also let a panel extension use one responsive front end for desktop and mobile, so one form covered both.

An evening of code, a working backend in a week

The design went in on the afternoon of September 9, and the backend and the panel followed that evening. Nineteen of the project's 27 commits are from that one day, and it finished with 67 tests. The backend was deployed on September 14. On September 15, a test signup went through the live backend and Laylo accepted it.

Hosted Test is a preview for your test list

I had started out believing Hosted Test was the way to run my own extension on my own channel before review. Twitch's life-cycle docs said otherwise. In Hosted Test, the extension showed only to accounts on a test list you supplied, plus some Twitch staff. Everyone else saw your channel with no extension at all.

Getting it in front of real viewers meant passing full extension review.

Diagram of who could see each version, per Twitch's extension life-cycle docs as of September 2026. A plain image-and-link panel would have needed no review and been visible to everyone, but the viewer would leave the stream to sign up. Twitch's stages were Local Test (only the developer), Hosted Test (only accounts on the test list), In Review (still only the test list), and Released (everyone). Bars are illustrative and no durations are shown.

If you are about to try this

  • Price in the review queue first. Hosted Test is for testing. Real viewers see nothing until review passes.
  • Put up the plain link panel on day one. It needs no review, works on mobile, and is the only thing collecting signups while the extension waits.
  • Check the vendor's snippet against Twitch's extension rules before you design anything. If it needs outside scripts or frames, plan on your own form.
  • Treat everything in the extension zip as public. Keys go in a backend, and the backend should do as little as possible.
  • Run one real signup end to end before you submit. Passing tests and a signup that lands on the list are different evidence.

Build it yourself

What it does: lets a viewer join your mailing or drop list from a panel under your Twitch stream, without leaving the page. The parts:

  • A Twitch panel extension: a plain HTML, CSS and JavaScript form with one responsive front end for desktop and mobile.
  • A list service you can add people to from your own code. Mine is Laylo.
  • A small backend you host, such as a serverless function on a free tier, that holds the list service's key and forwards signups.
  • Consent wording and links to your list service's terms and privacy policy at the form, plus your own privacy policy in Twitch's developer console.
  • A plain panel with an image and a link to your signup page, as the stopgap.

How the pieces fit: the panel sends the number or email to your backend, whose domain is on the extension's fetch allowlist. The backend confirms the request came from your channel's extension, adds the key, hands the signup to the list service, and returns a plain yes or a plain error.

Rough time and cost: my code took an evening, and the backend cost nothing to run.

Give this to your AIHelp me let viewers join my [list service] list from a panel under my Twitch stream without leaving the page. Before anything else, help me set up a plain Twitch panel that links to my signup page, so viewers can join while the extension is in review. Then check my list service's embed snippet against Twitch's extension content rules; if it needs outside scripts or frames, design my own form instead. Build a panel extension with one responsive front end for desktop and mobile: a [phone or email] field, the consent wording my list service requires, and links to its terms and privacy policy. Put the list service's key in a small backend on [hosting platform], never in the extension zip, because Twitch serves that zip publicly. The backend should confirm each request came from my channel's extension, forward the signup, store no contact details, and never write them to a log. Give me a test plan that ends with one real signup end to end. Then walk me through Hosted Test and review, and remind me that until review passes, only accounts on my test list will see the panel.

If you have taken a Twitch extension through review, I would like to hear how it went.