One rewards graph.
Many verticals.
Every site in the network reads the same cross-platform collectibles graph and renders a different slice of it. Same components, same design tokens, same SEO machinery — only the templates change. These mockups are two verticals built from one stylesheet.
The two demo verticals
2 of 7 builtCross-platform drops tracker. Games, campaigns, reward chains, watch requirements, expiry countdowns — the wedge vertical.
Badge acquisition & collection tracker. Rarity, availability windows, how-to-earn steps — the workflow layer nobody serves today.
Why they share a graph
One collectible spine
A Twitch Drop reward, a subscriber badge, and a channel emote are the same kind of object: a collectible, granted by a campaign, on a platform, with an acquisition rule and a time window. Model that once and every vertical is a query, not a new codebase.
It also makes links no competitor can make. Dead by Daylight is currently running a drop whose reward is a badge — so the drops page and the badge page are two views of one row in the graph:
🏅 Camper's Shelter Badge drop reward → badge · appears on both sites see it →Ingest once, serve everywhere
scraper
└─▶ ingest Worker
├─▶ D1 canonical graph
├─▶ KV hot per-entity JSON
└─▶ R2 raw snapshots
streamdrops ─┐
streambadges ─┼─▶ same D1 + KV
streamemotes ─┘
Hourly data changes never trigger a rebuild. SEO pages render on request and edge-cache for minutes, so crawlers always see fresh numbers in the HTML.
Shared design system
one stylesheet · both verticalsRarity & status language
Identical tokens render drops, badges and emotes — so the network feels like one product.
/assets/se.css. Nothing is per-site except
the page templates and the data query — which is the whole framework claim.