Web · Anthropic Ralph Loop · HTML · CSS · JS
SE Ralph Loop — Space Explorer
A test of Anthropic’s autonomous “Ralph Loop” pattern — an agent works through a PRD one story at a time and ships an interactive Space Explorer site for kids. Hosted on Netlify.
The brief
A different kind of personal project — not really about the artefact, more about the process. I wanted to test Anthropic’s “Ralph Loop” pattern end-to-end: a single autonomous coding agent (named Ralph) works through a product-requirements document one story at a time, runs its own quality checks, commits as it goes, documents its own learnings between iterations, and keeps going until the whole PRD is marked done.
I gave Ralph a kid-friendly spec for a space-exploration site and turned the loop loose.
What got built
Space Explorer — an interactive site about the solar system, planets, and missions, designed for kids. Plain HTML/CSS/JS, no framework. Hand-tooled responsive design. Continuously deployed to Netlify on every push to main.
Pages include a home/hero, a planet explorer (with individual planet
pages under /planets/), a solar-system overview, a missions log,
and a challenges page.
What I was really testing
The Ralph Loop scaffolding itself:
- A
prompt.mdinstructing the agent on its workflow — read state, pick the next pending story by priority, implement, typecheck, lint, test, commit, document. - A
prd.jsondefining stories in priority order with status tracking (pending→in_progress→done). - A
progress.txtwhere the agent records learnings between iterations so future iterations don’t re-discover the same patterns. - A simple shell driver (
ralph.sh) that runs the agent in a loop until all stories are marked done.
The actual site is the artefact, but the experiment was the process — how reliably can a single autonomous agent take a PRD and ship a real, deployed site?
What I learned
- Story scoping matters enormously. Loose stories produce drift; tight ones produce shipped features.
- Persistent learning files are load-bearing.
progress.txtand per-codebase pattern docs (AGENTS.md) keep the agent from re-discovering the same shape every iteration. - Quality gates are the agent’s reality check. Without typecheck / lint / tests in the loop, the agent will happily run forever on broken code.
- Deployment automation closes the loop visibly. Pushing the
artefact (Netlify auto-deploys from
main) means each iteration produces something you can actually click on, not just a passing test suite.
Got a similar problem to solve?
Tell me what you’re working on. One day’s turnaround on a first response.
Start a conversation →