TheGNG.us

25 seasons of fantasy football. Rescued, rebuilt, and back in play.

A quarter century of league history was trapped in a legacy CBS site. Sputnik Digital Graphics extracted every page of it, engineered a proper data warehouse, and rebuilt the league as a living platform: historical archive, news outlet, live Sleeper-era leagues, AI rankings, and automated social distribution.

TheGNG.us homepage: the GNG League Historical Archive hero with latest league news articles
Seasons archived 25 (2001-2025)
Matchups preserved 2,225
Draft picks 3,327
Board threads saved 874
Leagues served Keeper + Dynasty
01 The platform

A league archive that reads like a sports network.

TheGNG.us turns raw league data into stories: champion features, trophy shelves, rivalry records, season narratives, and a front page of real league news.

The history came out of 637 archived CBS pages: standings, week-by-week matchups, drafts, records, and two decades of message-board threads. A Python pipeline normalized all of it into a 36-table warehouse, and versioned migrations pushed it into the production MySQL database that powers the site.

On top of that archive sits a custom PHP platform with a multi-league identity model. The same rendering system draws the classic Keeper league and the Sleeper-era Dynasty league, so every franchise gets the same team pages, season pages, and record books no matter which platform its history came from.

  • Historical league archive
  • Multi-league team + season pages
  • News engine + admin panel
  • Member accounts + comments
  • AI player rankings
  • Automated social posting
TheGNG.us team archive page with franchise cards showing all-time records and season counts

Every system on the stack.

TheGNG.us took six interlocking systems: data rescue, platform engineering, live-league sync, publishing, distribution, and operations. All of it built in-house.

Sys 01

Data rescue & warehouse

A quarter century of league history lived inside a legacy CBS site. We extracted it, normalized it, and made it permanent.

  • CBS archive extraction 637 captured league pages preserved as raw JSON: standings, matchups, drafts, records, and message boards
  • SQLite warehouse 36-table normalized database covering 25 seasons, 2,225 matchups, 3,327 draft picks, and 874 board threads
  • Python ETL pipeline Rebuildable loaders, enrichment scripts, and destructive-rebuild safety rails
  • nflverse enrichment Real NFL stat data joined in for computed scoring and record verification
  • MySQL migrations Versioned SQL migrations and view definitions applied to the production database
Sys 02

Web platform

A custom PHP application, no CMS and no framework, engineered so every league renders through one shared design system.

  • PHP 8 + custom router Hand-rolled routing and page rendering on IONOS hosting
  • MySQL Production database serving history, live-league, news, and member data
  • Multi-league identity model Leagues, franchises, and season ownership unified across CBS and Sleeper eras
  • Shared rendering contracts One set of team, season, and record-book helpers renders every league with the same layout
  • Hand-built CSS + charts Custom dark gold design system with interactive team and season charts
Sys 03

Live league sync

The archive is not frozen. Current seasons flow in from the Sleeper platform and become part of the same history.

  • Sleeper API integration League settings, rosters, matchups, and playoff brackets synced into MySQL
  • Derived playoff logic Real bracket games separated from phantom pairings, with computed playoff boundaries
  • Scheduled cron jobs Recurring IONOS-hosted tasks keep scores, rankings, and records current
  • Computed record books Blowouts, streaks, and rivalry series generated from raw matchup data
Sys 04

Publishing & community

The league runs like a sports media outlet: articles, member accounts, comments, and a narrative voice built from the data.

  • News engine + admin Article authoring, hero imagery, and an admin panel for the commissioner
  • Member accounts Site users, authentication, and article comments
  • Data-driven narratives Season summaries and team stories generated from standings and matchup history
  • Trophy rooms Champion features, trophy shelves, and season-by-season record pages
Sys 05

Automation & distribution

Every article can fan out to the league's social channels automatically, and AI rankings flow in from a dedicated feed.

  • X / Twitter posting OAuth 1.0a automated article posts with hero image upload
  • Facebook Graph API Automated page posts with photo and link fallbacks
  • Bluesky AT Protocol Automated posts with link facets to the league Bluesky account
  • Pigskin AI rankings feed Daily sha256-verified imports of AI player rankings across four scoring profiles
Sys 06

Monetization & operations

The site earns and operates like a product: ads, search structure, deploy tooling, and source control discipline.

  • Google AdSense Manually placed display units tuned per device instead of layout-breaking auto ads
  • SEO structure Clean routes, canonical URLs, and crawlable league history pages
  • Deploy + diagnostics tooling Scripted SFTP deploys, remote PHP diagnostics, and site sync with automatic backups
  • GitHub source control Git as the source of truth with branch-per-phase development
02 The pipeline

From dying archive to daily operation.

The hard part was not the website. It was making 25 years of scattered, unstructured league history queryable, then keeping it alive with new data every week.

Extraction preserved the CBS pages before they could disappear. Normalization turned free-form tables into clean season, team, matchup, and draft records. Enrichment joined in real NFL data from nflverse and computed the record book. Today, scheduled jobs sync the live Sleeper leagues and import fresh AI rankings daily, so the archive and the current season share one database and one design language.

  • Archive extraction
  • SQLite data warehouse
  • MySQL production migrations
  • Sleeper league sync
  • Daily AI rankings import
  • Deploy + diagnostics tooling
Explore the live site

Sitting on data worth saving?

TheGNG.us started as a rescue mission and became a platform a whole league lives on. If you have history, records, or a community that deserves better software, open a channel.

Start your build