OG Roulette: Randomized Open Graph Link Previews

thebigship1 pts0 comments

OG Roulette

OG Roulette

Randomized Open Graph Link Previews.

Text this link to a friend to generate a random art preview.

After texting or posting the link to this website, a social crawler will<br>scrape the URL and receive a 302 to a permalink whose Open Graph tags embed<br>a random public-domain artwork, from either the Met or the Cleveland Museum<br>of Art. On apps like iMessage, Signal, WhatsApp, Google Messages, and<br>Bluesky the plain URL re-rolls to a new piece on every send; a few platforms<br>(Facebook, X, Slack, and Discord) cache the preview by URL, so a unique token<br>link (below) keeps those shares fresh too. Human visitors are redirected here.

Copy link

Posting to Social Media?

Sites like Facebook, X, and Slack cache the preview per URL, so the plain link would show everyone the same artwork. A token makes each share a fresh URL their cache hasn&rsquo;t seen, so every post gets a different piece.

Copy unique share URL

The share URL is https://roulette.vaguespac.es/s/, a random five-char base62 token per click that dodges Group B preview caches (see below). The same token always resolves to the same artwork, so a given link stays consistent for everyone who opens it.

User Agents

Every HTTP request carries a User-Agent header naming the<br>software that made it: a browser, a bot, an app. Servers read it to<br>decide how to respond. OG Roulette uses it to tell link-preview crawlers<br>(facebookexternalhit, Bluesky Cardyb, …) apart<br>from human browsers: crawlers get the 302 to an Open Graph permalink,<br>humans get this page.

The term is old. In networking the client acting on your behalf is<br>literally a “user agent,” and early HTTP sent it so servers could adapt<br>to client capabilities. Then 1990s servers began sniffing it to serve<br>rich content only to Netscape, whose UA started Mozilla/…,<br>so every other browser copied that prefix to pass the check. That<br>cargo-cult is why nearly every browser still claims to be “Mozilla”<br>today. A UA is only a header, though (trivially spoofed, and now being<br>frozen for privacy), so detecting crawlers by it is best-effort. That is<br>why OG Roulette also embeds real Open Graph tags in this page, so any<br>fetcher reading meta straight from the HTML still gets a card.

Two Kinds of Link Preview

Whether a shared link re-rolls its artwork depends on where and<br>when the preview is fetched.

Client-side, at compose time (Group A). Your own device<br>fetches the URL as you write the message and embeds the card into it.<br>There is no shared cache, so every send fetches fresh; even a constant<br>URL re-rolls. iMessage, Signal, WhatsApp, Google Messages, and Bluesky.

Central server, cached per URL (Group B). A backend bot<br>scrapes the URL once and caches the card keyed by that URL; everyone who<br>shares it sees the same card until the cache expires. Facebook, X,<br>LinkedIn, Slack, Discord, Telegram, and Reddit. A fresh token per share is a<br>URL their cache has never seen, so it misses and scrapes fresh, which is<br>how OG Roulette stays random even here.

Posting to Social Media?

Easiest path: share the plain URL https://roulette.vaguespac.es on a<br>Group A app: iMessage, Signal, WhatsApp, Google Messages, or Bluesky.<br>They fetch each preview fresh with no shared cache, so the bare link<br>re-rolls on every send. No token required.

The token only exists for Group B platforms (Facebook, X, LinkedIn,<br>Slack, Discord, Telegram, and Reddit), which cache previews by URL; there<br>the plain link would freeze to a single artwork for everyone. On those,<br>use the Copy unique share URL button above to<br>mint a unique /s/ that dodges the cache.

Other Uses

The mechanism is general: a preview rendered server-side at scrape time,<br>with the share itself as the trigger. Anything that can key off a fresh,<br>unique URL can ride on it.

For example, a generative art project could mint a new work only when<br>someone shares it to social media, using the token in each share URL as<br>the seed, so every post reveals a different, one-off piece. Other<br>possibilities in the same vein: live-data cards, token-numbered limited<br>editions, or a reveal that fires only the moment a link goes public.

link preview cache token roulette share

Related Articles