← All case studies

// case study 04 · static web game · agentic workflow

Movie Hi-Lo A 2,000-title game with zero backend

Two movies, one question: which has the higher rating? The game is simple. The interesting part is how it was built: mostly by an autonomous coding agent working from my written task briefs, with a data pipeline designed so that agent couldn't quietly corrupt the catalog.

Role
Product owner and engineer; I direct the agent and own the pipeline
Timeline
March 2026 to present
Status
Live; Flutter app port in progress
Core stack
Vanilla JS, Node scripts, Vitest, static hosting

TL;DR

  • Agent-built: 18 of 19 commits were authored by an autonomous coding agent, each driven by a written task brief and closed out with a written report.
  • Data you can trust: a 2,000-title catalog from IMDb's public datasets, with every poster URL verified as an image before it's marked ready.
  • Learned the hard way: an early agent pass broke the catalog. The fix was process: backup-first, append-only scripts, and a pipeline doc written for agents.
  • Zero backend: runs from any static host, with 2,000+ generated pages for search and 130 tests.

01Problem

A higher-or-lower game lives or dies on its catalog. It needs thousands of recognizable movies with accurate ratings, working posters, and real taglines. It also needs to cost nothing to run and be discoverable by search engines, even though the game itself is a JavaScript single-page app.

I also wanted to find out how far an autonomous coding agent could carry a real product. That meant answering two questions: how do you give it work it can finish, and how do you stop it from doing damage at catalog scale?

02Build

The agent loop

The agent runs unattended on one of my own machines. Work reaches it as a written brief, and it hands work back as a written report. 26 of these briefs and reports live in the repo's planning/ folder.

  1. 01

    Task brief

    Goal, scope, constraints, deliverables, verification expectations

  2. 02

    Agent run

    Implements in the repo and runs the tests

  3. 03

    Report

    What changed, files touched, what was verified, follow-ups

  4. 04

    Follow-up

    The report's recommendations seed the next brief

The product

03Challenges

Challenge

An agent pass broke the catalog

A subagent asked to add 500 movies rewrote the catalog file and didn't finish. Its own report said so: the expansion "did not fully land" and needed "immediate remediation before merge/use."

Approach

Treat it as a process bug, not a one-off. Catalog writes now go only through scripts that take a timestamped backup first, append rather than rewrite, dedupe by normalized title, year, and IMDb ID, and emit a report. The rebuild then went in seven small verified batches instead of one big rewrite.

Challenge

Keeping future agents consistent

Every new session starts cold. Without a standard, each agent invents its own way to add movies, and quality drifts.

Approach

CATALOG_PIPELINE.md exists "so future agents follow the same ingestion/verification standard instead of doing ad hoc catalog edits." It spells out the required row shape, identity resolution, and dedupe rules. A poster counts as ready only after a HEAD (or ranged GET) returns an image/* response, and taglines must be real, never invented.

Challenge

Search traffic for a JavaScript game

A single-page game gives crawlers almost nothing to index.

Approach

Put every critical signal in static HTML, and generate a real page for each movie and genre from the catalog. Tracking parameters are stripped at runtime with history.replaceState, so canonicals stay clean. Asset URLs are cache-busted with the catalog version.

Challenge

Static hosting, external images

No server to fall back on, and poster hosts can fail at any time.

Approach

The catalog is bundled, so gameplay is deterministic. Designed fallback cards cover any image that fails to load, and broken-URL remediation scripts re-validate posters in bulk.

04Impact

  • 2,000movies in the catalog, all with a validated poster URL
  • 2,000+statically generated movie and genre pages, plus a sitemap
  • 130Vitest tests passing across game logic, catalog integrity, page generation, and SEO
  • 18 / 19commits authored by the autonomous agent, driven by 26 briefs and reports
  • $0backend. Deployable to any static host or CDN.

Sources: the movie-hilo repository (catalog metadata, planning folder, git history). Test count is from a local run in October 2026. Traffic and engagement numbers are omitted.

05Stack

Game
vanilla JavaScriptHTMLCSSlocalStorage
Data pipeline
Node.js scriptsIMDb public datasetsstreamed TSV parsing
SEO
static page generatorJSON-LDOpen Graphsitemap.xml
Testing
Vitestjsdom
Agent workflow
autonomous coding agenttask briefsrun reportspipeline spec
Mobile
Flutter
Back to the startStudio White Tiger → Read