Fly.Pieter.com: A Flight Simulator Vibe-Coded in 3 Hours, $1M ARR in 17 Days
Legendary indie hacker Pieter Levels had zero game-dev experience, yet vibe-coded a 3D multiplayer flight simulator in the browser — Fly.Pieter.com — in 3 hours with Cursor + Claude 3.7. It peaked at 26,000 concurrent players and hit $1M ARR 17 days after launch: the benchmark money-making myth of vibe coding.

Three hours, one flight simulator
Pieter Levels is a legend in the indie hacker community (founder of Nomad List and Remote OK), but he had zero game development experience. In 2026, he vibe-coded Fly.Pieter.com in 3 hours using Cursor + Claude 3.7 Sonnet + Grok 3 for the backend: a 3D multiplayer flight simulator running entirely in the browser, built on Three.js, monetized with ads and paid upgrades.
17 days, $1M ARR
The numbers are wilder than the story: a peak of 26,000 concurrent players, and $1M ARR (annualized recurring revenue) just 17 days after launch. No funding, no team — one person “flying planes” in a browser, casually earning a small company's yearly revenue.
Why did it explode?
Simple, fun, zero friction. Open the browser and fly. No download, no sign-up.
Multiplayer is built-in marketing. Screenshots of flying with friends are the best ads.
Lightweight monetization. Ads + paid upgrades — the two most natural revenue streams for vibe-coded projects.
A replicable formula
Fly.Pieter.com's success breaks down into a formula: one fun single-purpose experience × instant browser play × multiplayer/social element × lightweight monetization. It applies beyond games — any “open and play for 5 minutes” micro-tool can use it.
Related articles

On October 3, 'Sites in ChatGPT' hit the HN front page with ~209 points and 218 comments. Not a launch — a reckoning: is prompt-to-URL a toy, a prototype host, or a productivity tool? The four debates, the doc-backed facts (D1/R2, sign-in, custom domains), and three verdicts for vibe coders.

Every vibe project eventually needs scheduled jobs: daily syncs, expired-order cleanup, billing reconciliation, scheduled reports. AI's first version is usually setInterval — fine for dev, fatal in production. This guide maps four scheduling options, cron expressions and timezone traps, idempotency, distributed locks against overlap, failure retries and alerting, run-log observability, and cron endpoint auth — plus a launch checklist.

Every vibe project hits the same moment: a list page firing a dozen DB queries per load, the database melting under modest traffic. This guide starts from the three-question caching mindset, then layers HTTP cache headers, Next.js data caching, Redis application caching with key design and the penetration/breakdown/avalanche defenses, and AI result caching (semantic cache, prompt caching), plus invalidation strategy and a launch checklist.