Methodology
Articles on this site are written by an AI model from real source data, then validated against quality rules before they publish. The whole pipeline runs on a daily schedule with no human in the editing loop — only in the curation loop. This page documents exactly what the pipeline does, what sources it uses, and what it refuses to do.
1. Editorial selection
The pipeline does not write about every game it sees. A human picks the games. Each cycle, an admin dashboard fetches trending candidates from RAWG, SteamSpy, and Twitch, scores them by a weighted combination of rating, current Steam players, and Twitch viewers, and presents the top 30. The site owner reviews the list and picks up to 5 games to cover.
This means: every game on the site exists because a human chose to cover it. The AI does not pick its own subjects.
2. Source aggregation
For each selected game, the pipeline fetches data from multiple independent sources in parallel. None of these are scraped or reverse-engineered — every source has either a public API or a public RSS/JSON endpoint:
- RAWG — game metadata, description, ratings, platforms, Metacritic score
- OpenCritic (via RapidAPI) — aggregated critic score, review tier, and a sample of recent reviews
- Reddit — top posts and comments from r/gaming, r/Games, r/gamereviews, r/patientgamers, last 7 days
- YouTube Data API — top videos by view count, last 30 days
- RSS news feeds — IGN, PC Gamer, Kotaku, Eurogamer, GameSpot, filtered by game title
- Steam — current player count for the live stats sidebar
- ProtonDB — Linux/Steam Deck compatibility tier
Source fetches are wrapped in 8-second timeouts and use
Promise.allSettled — if one source fails or is slow, the
others still feed the article. Every fetch is logged. Failed sources are
visible in the pipeline health log.
A full list of sources, with links, is on the sources page.
3. AI summarization
The fetched source data is passed to an LLM running on Cloudflare Workers
AI. The current model is
@cf/meta/llama-3.1-8b-instruct-awq for the legacy article
body, with a planned upgrade to
@cf/meta/llama-3.3-70b-instruct-fp8-fast for the structured
sections being rolled out.
The system prompt asks the model to write in a specific voice (knowledgeable, conversational, opinionated — "IGN meets Reddit") and gives it strict constraints:
- 600–800 words (validated against a 400–1000 word range)
- Inline citation links for every factual claim — never invent URLs
- Reference Reddit sentiment with specific posts
- Cite at least 2 YouTube videos and 2 news sources
- End with a categorized "Sources & Further Reading" section
4. Validation and retry
Every AI-generated article passes through a structural validator before it can publish. The validator checks:
- Word count between 400 and 1000
- At least 3 markdown citation links
- A
## Sourcessection is present - The article starts with a
#heading
If validation fails, the pipeline retries once with a stricter prompt that includes the specific validation errors. If the retry also fails, the article is logged as a failure and the previous version remains live. The pipeline never publishes a broken article on top of a working one.
5. Voice and ban list
The model is instructed to avoid generic AI-review filler. The following phrases (and their variants) are banned and will fail a build-time check:
must-play, immersive,
taken the world by storm, redefines,
new gold standard, vast and diverse,
breathtaking, a must for any,
sets a new standard
If the model can't be specific — patch numbers, boss names, dates, upvote counts — it's instructed to return empty. Empty beats filler.
6. Live stats sidebar
The sidebar on each game page reads from a separate stats pipeline that runs alongside article generation. It captures:
- Current Steam player count (Steam Web API)
- ProtonDB tier and confidence score
- A 7-day sparkline of player count history (one snapshot per pipeline run)
The "Updated X ago" timestamp on each page reflects when the stats pipeline last ran for that game — not when the page was last viewed. If the pipeline hasn't run in a day, the timestamp will reflect that honestly. The sparkline trend color (green for rising, red for falling, muted for flat or single-point) is computed from the actual snapshot values, not from any AI inference.
7. Refresh cadence
A daily cron trigger runs the pipeline at 06:00 UTC. Each run processes one game per Cloudflare Worker invocation to stay within the free-tier 50-subrequest-per-invocation limit. The site itself rebuilds and deploys after the pipeline finishes.
In short: up to 24 hours from a real-world event (a new patch, a new viral Reddit thread, a price drop) to a corresponding update on this site. Faster refresh cadence is on the roadmap once auto-deploy is wired up; the current bottleneck is the manual deploy step, not the pipeline.
8. What this site does not do
- It does not scrape sites that prohibit scraping in their ToS.
- It does not invent quotes, URLs, or statistics. If the source data does not contain a fact, the article does not contain that fact.
- It does not publish content that fails validation. A broken article is replaced with the previous valid version, not pushed live.
- It does not run ads or affiliate links.
- It does not collect analytics on individual visitors. The site is static HTML — there is no application backend that sees your requests once the CDN serves the page.
9. Corrections and feedback
If an article gets a fact wrong, file an issue or reply where you found the link. Corrections that touch the source data (a wrong URL, a misattributed quote) get fixed in the pipeline; corrections that touch the AI's interpretation get fixed in the prompt. Either way, the next cron run reflects the correction.