A join code is a short-lived thing. It exists for one draw, it is printed on the overlay while that draw is open, and once the winner has claimed it is a page that says the giveaway has ended. That is correct behaviour for a code. It is a bad property for a link you put anywhere permanent.
Which is exactly where it ends up. Into the bio, into a Twitch panel, into the pinned message, into the Discord announcement channel, into the description of a video that will still be getting views in March. All of those are places you write once and revisit rarely, and every one of them is wrong by the next stream.
The failure is quiet, which is why it lasts
Nobody tells you the link is dead. The people who click it are, almost by definition, the ones who were not there — someone who found the VOD, someone who read the bio before following, someone a viewer sent it to. They land on a page saying the giveaway is over, close it, and you never hear about it. The only signal is an absence, and absences do not show up in any dashboard.
The usual workaround is a link-in-bio service with a row you edit before each stream. That works, in the sense that a manual step performed reliably works. It fails the same way every manual step fails: on the night you are running late, which is also the night the giveaway is the reason people showed up.
What a permanent page has to do
Three things, and only the first is obvious. It has to send someone to the giveaway that is open right now, without you having edited anything. It has to be useful when nothing is open — otherwise it is a dead end four days out of five, and a link people find dead once they stop clicking. And it has to be worth landing on for someone who has never heard of you, because a fair number of the people arriving got the link second-hand.
That last one is the reason a bare redirect is not enough. "This giveaway has not started" is a technically accurate page that gives a stranger no reason to come back.
How Kloot does it
You claim a handle once and get kloot.gg/@yourhandle. The page shows whatever is live at the moment somebody opens it, what is scheduled next, and the draws you have already run — with their winners and how many people entered. When nothing is open it is still a page about a channel that gives things away, with a record to prove it.
The handle is a Kloot handle, not your channel name pulled in automatically. That is deliberate: reserving names on someone else’s behalf from a platform profile is how you end up handing a name to the wrong person. It is five to thirty characters, letters, digits and dots, and it is claimed transactionally — so two people typing the same one at the same moment cannot both get it.
The part that makes it worth linking early
A scheduled giveaway has a join link from the moment you schedule it, not from the moment it opens. So the page has something to show before the stream: what is coming, and a link that will be live when it starts. That turns the bio link from a thing you point at during a stream into a thing you can point at in the announcement two days before.
Scheduling itself is a paid feature — Creator holds one scheduled giveaway at a time, Pro queues as many as it likes and can repeat one weekly. The page is not: a free account can claim a handle and have every draw it runs listed there. Free accounts show the three most recent past draws rather than all of them.
Two honest limits
The page becomes eligible for search engines once you have finished at least one giveaway. An empty page for every account that ever signed up is a thin-content footprint and would earn nothing, so the page is there and shareable immediately, and indexable once there is something on it worth indexing.
And a scheduled giveaway opens on the server’s clock, with your panel closed — but it waits if another of your giveaways is still running. It does not interrupt a draw in progress. When the current one ends, the queued one opens, and there is a button to open it immediately if you would rather not wait.
The record is most of the argument
The page also carries the totals: how many giveaways you have run, how many people have entered them, how many winners there have been, and the biggest single draw. Individually those are vanity numbers. Together they answer the question a stranger is actually asking, which is not "what is the prize" but "does this person really give things away, or is this a follow farm".
That question is worth taking seriously, because the honest answer for a lot of giveaways on the internet is the second one. A viewer who has been burned once reads every giveaway through that lens, and nothing you say about yourself will shift it. A list of finished draws with named winners will, and it costs you nothing to publish because it is simply what happened.
Where to actually put it
The bio is the obvious one and the least valuable, because it is the place people look last. The panel under your stream, the pinned message, and the video description are where the link earns its keep — all three are read by people who arrived after the moment passed, which is the audience a permanent link exists for.
One caveat worth stating: put the giveaway page behind its own label rather than burying it in a link tree with nine other rows. "Giveaways" as a word does a lot of work on its own, and a stranger scanning a panel grid will read it before they read anything else on the page.