Why I built it
"Touch grass" is what the internet tells people who spend too much time online. I turned the joke into a game: finish small outdoor quests, prove it with a photo, and earn rewards.
Try it live at https://touchdegrass.onrender.com The source is on GitHub https://github.com/maltheshhh/TouchdeGrass.
How it plays
A round takes four steps:
Pick a quest, such as shoes off, tree hug or golden hour.
Upload a photo as proof.
Claude judges the photo and rejects screenshots, photos of screens and indoor shots.
A pass earns blades (the points) and a "Verified" stamp. Enough blades unlock vouchers. Features Touch Grass ships eight quests worth 155 blades in total, plus a progress meter and three vouchers. • AI photo judge: Claude checks each photo against the quest and leaves a one-line note on what it sees. • Photo proof: upload from your camera or gallery. Screenshots and photos of screens fail. • Blades and vouchers: a meter tracks your points, and vouchers unlock at 30, 80 and 140 blades. • Voucher codes: claim a code and copy it in one tap. • Saved progress: completed quests and claimed vouchers are kept in your browser. • Grass you can brush: the hero lawn bends away from your cursor or finger. • Light and dark themes: the lawn turns to night when your device is in dark mode. • Phone friendly: built to work at phone width, with a Start over button for a fresh run. The eight quests: Quest What to photograph Blades Level Shoes off Your bare feet on real grass 20 Easy Palm down One hand flat on a lawn 10 Easy Tree hug You hugging a tree, or both hands on the trunk 20 Medium Look up Open sky, with no ceiling or screen in frame 10 Easy Meet a local A bird, bug, snail or squirrel 25 Medium Leaf trio Three different leaves side by side 20 Medium Golden edge A sunrise or sunset 30 Hard Outdoor break A snack or a book outside 20 Easy Under the hood The whole app is one static HTML file with no build step: markup, styles and script live together in index.html. When you submit a proof, the page shrinks the photo to 1280 pixels on its longest side and sends it to Claude with the quest and a short rulebook. Claude replies with a pass or fail and a one-sentence reason, which the page shows on the quest card. The judge is told to ignore any instructions written inside the photo. One limit to know about: the judge runs on Claude's built-in features, so it works when the app is opened inside Claude. The Render version loads and saves progress, but it cannot verify photos yet. Moving the judge to a small backend that calls the Claude API is the next step. Try it Play it at touchdegrass.onrender.com and read the code on GitHub. Pull requests are welcome, especially new quests and a real backend for the photo judge. Now close the tab and go touch some grass.
Top comments (0)