Joshua Gunawan DWG JG-2026workrouniverse
JG-2026 · SHEET 03 OF 12 · SCALE 1:1 DWG JG-2026workrouniverse
← all sheets
SHEET 03 OF 12 · JG-2026 Two brands live

RoUniverse

Two Roblox content brands run by one autonomous pipeline.

Problem

A Roblox code list is only useful while the codes still redeem, and a game developer can disable a code at any moment. The publishers who win this space staff whole departments for it. Doing the same thing alone across hundreds of games is not a writing problem — it is an ingestion, freshness and verification problem that happens to end in sentences.

Constraints

  • There is no official API for whether a code still works. Roblox documents game metadata endpoints, not promo-code validity, so 'active' has to be grounded in evidence I collect and re-check myself.
  • Google's spam policies treat bulk pages that add no value as scaled content abuse, so volume alone is not a strategy — the pipeline has to add something the copied lists do not.
  • Ad-funded with no budget: every part has to run unattended inside free or near-free infrastructure.
  • A stale code is worse than a missing one, because a reader who wastes a minute stops trusting the whole catalogue.

Decisions

  1. Store each code as a record with its own source and last-checked timestamp, rather than as text inside an article.

    rejected Write codes into the article body and regenerate the article whenever something changes.

    A code's status changes independently of the prose around it. Keeping status as data meant freshness across 417 codes could be audited and re-rendered without touching 592 articles — and it turned 'verified' from a word into a claim I could date. Anything without a check record renders as unverified rather than as active.

  2. Put the expensive step on verification, and let verification gate publication.

    rejected Publish whatever the writer produces and correct it when a reader complains.

    Generation is cheap and getting cheaper; the scarce resource is knowing whether something is true. Making verification the step that can block a publish is the only arrangement where the content stays trustworthy as the corpus grows, and it is why an unconfirmed code stays unpublished instead of being softened into vague language.

  3. Run both brands from one platform, deployed twice, with separate domains, analytics and ad configuration.

    rejected A single site covering every game, or two independent codebases.

    The part that needs care is the ingestion and verification layer, and a second codebase would have doubled its maintenance while adding nothing. Two builds off one source let each brand own its domain and its monetisation, and the sibling site inherits every fix to the pipeline automatically.

  4. Prerender statically behind Cloudflare instead of rendering per request.

    rejected A server-rendered app querying the catalogue on every visit.

    Content changes in batches, not per pageview, so per-request rendering would buy nothing and cost an origin round trip on every impression. Static output with a build ID means publishing is a deploy, and the edge absorbs the traffic an ad-funded site depends on.

The hard part

Grounding the word 'active'. A string copied from another fan site is not evidence, and a failed redemption is ambiguous — it can mean the code expired, but also that the account was ineligible, the code was already used, the region differed, or the service was briefly down. So I made the system record what it actually observed, per code, and gave 'unverified' its own state instead of letting unconfirmed codes default to active. Deciding precisely what not to claim turned out to be the central engineering problem; the writing was the easy part.

Outcome

  • 417

    codes tracked with source and check date

  • 592

    games covered by the catalogue

  • 2 brands

    run from one pipeline

The code and game counts are the live catalogue's own figures, read from its codes index on 11 October 2026, not independently audited one by one. I have deliberately not published a traffic number: I would rather leave the slot empty than fill it with a figure I cannot show you the source of.

Figures and revisions

FIG. 1 The RoUniverse home page: a headline over a grid of recent Roblox guides and code pages.
The front page of the first brand. Guides and code pages are rendered from the same catalogue the pipeline maintains.

source: rouniverse.com, livechecked: 11 Oct 2026

FIG. 2 The RoUniverse codes index, showing game entries with verification labels, check dates and per-game counts.
The codes index: 417 codes across 592 games, each entry carrying its verification state and the date it was last checked. This is the reason the catalogue can be audited at all.

source: rouniverse.com/codes, livechecked: 11 Oct 2026

FIG. 3 The RoHorizon home page, a separate brand with its own domain and its own visual treatment.
The second brand on its own domain, built from the same platform. Separate domain, separate analytics, separate ad configuration — one ingestion and verification layer.

source: rohorizon.com, livechecked: 11 Oct 2026

Every plate carries its provenance. Marking a row marks the plate it names, and the plate's number links back to its row.
platesourcechecked
FIG. 1 rouniverse.com, live 11 Oct 2026
FIG. 2 rouniverse.com/codes, live 11 Oct 2026
FIG. 3 rohorizon.com, live 11 Oct 2026