An experiment in how far current AI models can be pushed on real software — and what a person still has to check before it ships.
Vibe Arcade is a one-person experiment, started in early 2026, to find out how far current AI models can be taken on long-running, real-world software work — and, just as importantly, where the rough edges are and where a person still has to stay in the loop. The games are the proof: if the process does not produce something genuinely worth playing, the experiment has failed.
The setup: an overnight pipeline plans a new HTML5 game from a written spec, builds it, runs lint, security and a playability rubric, and commits only if every gate passes. If anything fails, I triage it in the morning. Over 100 playable games have come out of this so far. Every one of them is free in the browser — no signup, no install, no email capture.
The second output is a set of running notes — what the AI surprised me with, where it failed quietly, what got better between model versions, and which tasks I now trust it with versus the ones I keep tight human review on. I write these up as how-we-built posts on the blog. Each one is a data point, and each one names the things that went wrong as well as the things that worked.
Benchmarks are easy to game; a hundred games that strangers actually play is a harder test, and a more honest one.
AI writes the code here — all of it. Not a single line of what runs on this site was typed by a human, and that is the point of the project rather than something to bury. What a person does is decide: what gets built, what the bar is, whether a build clears it, and what to do about it when it does not. When something is broken I diagnose it and tell the AI what to change; I do not go in and patch it myself, because a fix I made by hand would be me quietly failing the experiment. "Built with AI" is not a quality standard, so here is the one this site actually runs on.
The site is run by one person, J. If you find something broken, wrong or unfair, please tell me — I read everything that comes through, and I would rather hear it from you than not.
Three open questions drive the experiment:
Game by game, what fraction of the work clears every gate without human intervention? Many months and 100+ games in, more nights ship cleanly than don't — but the failure modes are still informative when they happen.
Some categories of failure recur (content quality that passes structural lint, novel mechanics that need many human QA passes, cross-environment iframe issues). Tracking them over model versions tells me what's actually getting better in practice, not on benchmarks.
Auto-merge clears security, lint, and the playability rubric. I keep manual review on for anything that touches core architecture, anything content-quality-sensitive, and anything that could fail silently in production. The line between those buckets keeps moving as the rubric and lint gates get better.
The pipeline is the experimental apparatus. Each game runs through the same gate sequence; results compound across runs because every game is built against the same shared infrastructure (CSS, leaderboard widget, integration lint).
A planning model writes a detailed spec from the concept — genre, theme, scoring formula, integration checklist, naming, trademark notes. Either I author the concept or pull a top-voted submission from the idea board.
Implementation models build the game in iterations. Each iteration runs a 60-point QA rubric (playability, visuals, fun, integration, mobile, code) and writes feedback for the next pass. Most games clear the 58-point ship target within 3–4 iterations.
Structural rules: leaderboard wiring, canvas sizing, schema tags, no banned imports, etc. Grep is roughly 10× cheaper than a model pass and catches a surprising amount — so the pipeline runs lint first and only spends model tokens on the things grep can't check.
Universal categories first (the OWASP-style classes), then a project-specific tier that targets the exact infrastructure this site uses. The project-specific tier catches more real issues than the universal one — generic models can miss framework-specific patterns.
Final scoring pass. If the score clears the threshold and every gate is green, the build auto-merges. If anything fails, the run goes into manual review in the morning.
A separate improvement pipeline runs a couple of times a week to deepen existing games — that's how games grow past their initial overnight build.
Concrete observations from the run so far, rather than abstractions:
main.css fixed tablet tap responsiveness across all 20+ games in one commit instead of 20 per-game edits. Moving from a chat interface (where each game was built independently) to a unified pipeline is what made shared CSS, a universal leaderboard widget, and structural conventions consistent across every new build.If you're interested in the longer write-ups, many of the games have a how-we-built post on the blog with what surprised me, what broke, and what changed across iterations.
A few honest disclosures since the framing of "experiment" can be ambiguous: