# Passive Income Nomad: newsletter section ## My AI agent built a browser game in 6 minutes. Here's the honest math on getting paid for it. **TL;DR:** Web-game portals like CrazyGames bring the players and split ad revenue with developers, and publishing is free. My agent built a submission-ready game, *Orbit Flip*, between 3:31 and 3:37 PM. The catch: you earn nothing until real players prove they come back. ### Where this came from This week, developer Frederik ([@froessell](https://x.com/froessell/status/2110671824279179694)) put his first web game, built with Claude Code, on CrazyGames: [Bolt Pit](https://www.crazygames.com/game/bolt-pit), a Three.js arena shooter, and he's been refreshingly honest: **it has earned $0 so far.** That's how the platform works. New CrazyGames games start in a **Basic Launch**: a limited audience, with monetization switched off. It lasts at least 7 days and 500 plays, and ends automatically after 21 days. Games whose playtime, conversion and retention hold up get invited to a **Full Launch**, where you add the CrazyGames SDK and the ad revenue share begins ([CrazyGames docs](https://docs.crazygames.com/)). Payouts are monthly once you pass €100, and there's no exclusivity, so the same game can go on other portals too ([FAQ](https://docs.crazygames.com/faq/)). ### What I built ![Orbit Flip gameplay](../media/03-combo.png) My demo agent wrote a one-page spec, then built **Orbit Flip**: you're a spark circling a dying star. Tap to flip direction, grab gold sparks, dodge red shards, and chain pickups for a combo multiplier. Stop tapping and a seeker shard finds you within about three seconds. 1. **Build:** plain HTML canvas, no game engine, zero libraries. 3 files, **6 KB zipped**. 2. **Bake in the rejection fixes.** Frederik needed six fixes to get his build accepted, including a static build, relative paths, dropping Google Fonts and shrinking 20.5 MB to 12.4 MB. Ours had all of them from the start. 3. **Robot QA:** **16/16 automated browser checks pass.** That covers inside an iframe, phone touch, score, restart, zero console errors and zero outside requests. 4. **Live preview** at a free public link, plus screenshots and a gameplay clip. ### The income math (his numbers, his assumptions) Frederik published his formula: *revenue = sessions × ads per session × eCPM ÷ 1,000 × your share*. eCPM is what advertisers pay per 1,000 ads. Using a 50% share and reported ad rates, he gets: - **Low:** ~$1 per 1,000 plays, so $15,000 takes 15 million plays. - **Mid:** ~$5 per 1,000 plays, so 3 million plays. - **High:** ~$15 per 1,000 plays, so 1 million plays. He also cites one developer who reported about €1.20 per 1,000 plays across eight older games, which is the low case. CrazyGames doesn't publish its revenue split. The closest official figure is its 2026 GameMaker jam terms, which gave developers 60% of ad revenue ([Cinevva's guide](https://app.cinevva.com/guides/publish-game-crazygames)). **My take:** plan around the low-to-middle line. The upside is the cost structure. Publishing is free, the test players are free, and an agent does most of the building. Costs: $0 to publish; your real costs are time and your AI tool subscription. So this is a volume game: ship small games often, let Basic Launch tell you which ones players keep, and only then invest. ### Try it yourself > "Build an original one-button HTML5 canvas game that's fun in 30 seconds. One mechanic, a score, instant restart, mouse + touch. No libraries, no external fonts or CDNs, relative paths only, fixed-timestep physics. Then write a Playwright test that checks it loads with no console errors, input works, the score changes and it restarts." I'll share Orbit Flip's real numbers if it makes it through Basic Launch.