This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Touch Grass Nudge is a one-file web app with one job: get you away from the screen. Open it, press a button, and it gives you a single 10-minute outdoor quest suited to the weather, like "walk around the block and notice one thing you've never seen before". Go do it, come back, tap "I did it ✅", and it keeps a tally of the quests you've completed.
It's for anyone who thinks "I should really go outside" at 4pm and then doesn't. The whole interaction takes about ten seconds so that the screen is the shortest part of the day.
Demo
How it went: honestly, I had to try it indoors. It was raining, so my "touch grass" test was a screenshot from the desk and a quest of "walk around your house or yard for a 10-minute reset" that I'm obliged to follow when the rain stops. The weather-aware prompt tells the model to suggest something that works with rain or from a sheltered doorstep, which is exactly the situation I was in.
In that test the page couldn't get my location, so it said "weather unavailable" and the model got a generic prompt. The location and weather lookup is the part I did not see working end to end.
Code
mahmudurrahmanlabib
/
touch-grass-nudge
One-file app: local Gemma (Ollama) + Open-Meteo suggest a 10-minute outdoor quest
Touch Grass Nudge
One HTML file. Reads your local weather (Open-Meteo, no key), asks a local open-weight model (Gemma via Ollama) for a 10-minute outdoor micro-quest, and tracks completed quests in your browser. No backend, no account, nothing leaves your machine except the weather lookup.
ollama pull gemma3:1b
OLLAMA_ORIGINS="http://localhost:8000" ollama serve # allow this page to call Ollama
python3 -m http.server 8000 # then open http://localhost:8000
Use ?model=<name> to try another model. If Ollama isn't reachable it falls back to built-in quests.
License: MIT
How I Built It
-
Model: Gemma (
gemma3:1b), an open-weight model, running locally through Ollama. The page calls Ollama's/api/generatestraight from the browser. - Weather: Open-Meteo, free and keyless. The browser's geolocation feeds temperature, rain, wind and sunset time into the prompt.
-
App: a single
index.html, no build step, no backend, no account. Completed quests are stored inlocalStorage. - Fallback: if Ollama isn't reachable, it shows a built-in quest instead of an error.
The prompt took the most tuning. The first version let the 1B model write a fantasy story about a lost lantern; telling it "real, safe activity, no story, exactly 2 short sentences" fixed that.
I built it with Claude Code as my coding assistant, so this post is flagged as AI-assisted.
Why Does Open Innovation Matter?
A nudge app is only useful if you'll actually open it daily, and that depends on it being free and private:
- Costs nothing to run. There is no API key or per-request bill, so a ten-second daily habit never becomes a subscription.
- Your habits stay local. Your time of day, your location and your quest history never go to an AI provider. Only a coordinate pair goes to the weather API.
-
Swappable. A different model is a
?model=URL parameter away. I used a 1B model because it fits on a laptop and answers in seconds.
Prize Categories
Best Use of Gemma


Top comments (0)