Slow and steady, a little lazy: I built a garden that grows from small commits
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady What I Built It is 11:52 PM. You are tired, the bug can wait until morning, but a small green square on your contrib
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
It is 11:52 PM. You are tired, the bug can wait until morning, but a small green square on your contribution graph is about to turn grey. So you push a typo fix you do not care about, just to keep the streak alive.
Most developers know that feeling. A tool meant to celebrate your work quietly turns every missed day into a small loss. I wanted the opposite: something that is glad when you show up, and does not punish you when you don't.
So I built Moss Garden, a slow-productivity game for developers. You sign in with GitHub, pick the repositories that count, and every small commit you author grows a hand-drawn garden of moss, ferns, flowers and a young maple.
The garden keeps everything it grows. XP never goes down, there are no streaks to protect, and nothing resets.
The laziness it rewards: showing up a little, on a few days, and ignoring the rest.
- Each commit is worth less the more you push in one day (1x, 0.5x, 0.25x, then 0.1x), and daily XP caps at 40. Ten commits at midnight are worth barely more than three.
- Four cared-for days in one week earn a one-time steady-week bonus that a single all-nighter cannot.
- Take a week off and vitality only settles to a floor. Plants never wilt. Come back after a month and it is all still there, waiting, with a "Came back" badge to say welcome home.
Anyone who has felt a contribution graph turn a missed day into a loss gets to be a little lazier here. After sign-in there is nothing to log. A nightly sync does the remembering, and an optional AI gardener writes you a short journal each week about what grew.
Demo
Live: https://moss-garden-api.onrender.com/
You do not need to sign in. Press Explore a demo garden on the home page and wander around.
A few corners of the garden:
Code
ADITYA-KUMAR-2358
/
Moss-Garden
A cozy garden that grows from your GitHub commits. Small, steady commits earn XP, plants, badges and seasons; all-nighters wither it, and missed days never reset it. Commit quality, plant names and a weekly journal come from Gemma 4, an open-weight model.
Live site ยท Product ยท Game rules ยท Architecture ยท Design system ยท Deploy ยท For coding agents
Moss Garden
A slow-productivity game for developers. Sign in with GitHub, pick the repositories that count, and every small commit you author grows a hand-drawn garden of moss, ferns, flowers and a young maple. The garden keeps everything it grows. There are no streaks to protect, no countdowns and nothing to lose.
Built for the DEV Hacktoberfest challenge "Slow and Steady: build something with open-weight models or open-source AI that rewards laziness."
Why
Contribution graphs and streak counters reward intensity. A missed day feels like a loss, a 2 a.m. push feels like a win, and the first broken streak is often the last day someone shows up. Moss Garden flips that:
- Steady beats loud. Each commit is worth less the more you push in one day, and daily XP is cappedโฆ
How I Built It
The rule I set myself: the garden has to be trustworthy first, and clever second.
Open-weight model: Gemma 4 through Backboard. google/gemma-4-26b-a4b-it names new plants and writes the weekly journal, the little touches that make a garden feel like yours.
- It is opt-in. It is off for every player until they switch it on, and off on the server until a request budget is set.
- It only sees garden counts, the season and plant species. It never sees code, repository names or commit messages.
- Model output is treated as untrusted. It is parsed against a strict schema, and a failed call falls back to plain rule-based text instead of lowering anyone's score.
- A daily request budget keeps calls within a small credit.
The game itself is deliberately not AI. XP, levels, vitality, plant growth and badges live in a pure Python rules engine with 409 pytest cases. A game people trust needs rules that behave the same every time, so the model only adds words and names. It never decides what you earned.
Stack: React 19 + Vite on the front, FastAPI + SQLAlchemy 2 + Alembic on the back, PostgreSQL in production and SQLite locally. The art is layered illustration, with light and dark themes and prefers-reduced-motion respected everywhere, because a calm game should be calm for everyone.
Render: render.yaml creates a free Docker web service and a free Postgres database. The container runs migrations, then starts the server. Free-tier limits shaped the design, and I leaned into them:
- A free web service sleeps, so a GitHub Actions keep-alive workflow pings it.
- Render cron jobs are not free, so a second GitHub Actions workflow calls
POST /api/jobs/nightlywith a bearer secret for the nightly sync.
ElevenLabs: the soft sound effects and ambience were generated with ElevenLabs once and shipped as static files, so there are no runtime calls and no key in production. Sound is off by default, never autoplays, and every sound has something on screen too. The journal can be read aloud with the browser's speech. An ElevenLabs narration client is written but not switched on yet.
Agent-friendly repo: AGENTS.md and a docs/ folder (rules, game design, architecture, design system, decisions) so a coding agent, or a curious human, can pick the project up cold.
Why Does Open Innovation Matter?
Moss Garden reads your commit history, which is personal. Open weights made three things possible that a closed API would not:
- Trust you can inspect. The code is public, the rules are documented, and the model is an open-weight Gemma 4 with a permissive licence. The model only receives counts and species, and because the weights are open, anyone could run it locally so nothing leaves their machine.
- A promise that outlives a vendor. The game promises that nothing resets. That promise should not depend on a hosted model version being deprecated. The garden works with the AI fully off, and the model is a swappable setting behind one Backboard key.
- Cost control on a small budget. Running a capable open model through one key, with a request budget, made an always-gentle feature affordable for a solo project.
The Lazy Payoff
The saved effort is attention, not hours. There is no logging, no habit to maintain and no streak to defend. You sign in once, commit as you normally would, and open the garden when you feel like it.
Close the laptop at 11:52 PM. Take the weekend. Take the month. When you come back, the moss will still be there, a little greener than you left it.
Prize Categories
-
Render: free Docker web service and Postgres from a single
render.yaml, with GitHub Actions covering keep-alive and the nightly sync around free-tier limits. - Backboard: Gemma 4 runs through a single Backboard API key, with a request budget and a rules-based fallback.
- ElevenLabs: the game's sound effects and ambience were generated with ElevenLabs and shipped as static assets.
- Gemma: Gemma 4 names the plants and writes the journal, and the whole app works without it.
-
GitHub Copilot: Copilot was my pair programmer while building Moss Garden, and the
AGENTS.mdanddocs/folder were written so an AI coding assistant can pick the project up cold.
Built solo, slowly and steadily, by Aditya Kumar.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes โ full credit and traffic to the original publisher.






