This is a submission for the Hacktoberfest Open-Source AI Challenge: Week 1 — Touch Grass Some moments, your head is so loud that you can't feel your own feet on the floor. If you've ever had a hard time grounding yourself, you know that feeling, and you know how a phone can make it worse: one more app, one more thing asking for your attention, when what you need is to come back to your body.
I built MERA for those moments, a grounding app with one job: get you to put it down. Most apps measure how long you stay. MERA measures how quickly you can leave.
MERA (Meep Emotional Reset Assistant) is a small, installable web app for the moments when everything feels like too much. It has one big button: GROUND ME.
Good.
Now put me away.
Go touch grass. I'll be here when you get back.
The phone-down screen is boring on purpose: a quiet timer and Audio · Haptics · End early. Nothing to read, nothing to scroll. When you come back, MERA asks if you feel better, the same, or worse, and shows the only number it ever shows:
6 minutes back in the world.
Go live your life.
No streaks, points or badges. If it didn't help, MERA says "Thanks for checking back in" and offers something different, or lets you finish for now. On the quick path, you're outside in under a minute.
Under each mission there's a small, closed-by-default Why this reset? It shows one sentence and the facts from your own history it was based on. Here's a real mission Gemma wrote on the live site, from the demo's sample history (walks that helped, and a note saying "Walking and the cool air helped"):
I tried MERA myself, the way it was meant to be used. It really helped me feel connected and grounded again. That's the whole point: not to keep me on the screen, but to bring me back to the moment and let me put the phone away.
Judge path, about 90 seconds: Privacy & AI → Set up judge demo loads clearly labelled sample resets, shortens the timers, and switches to Connected Gemma so there's nothing to download. Then GROUND ME → one breath → I'm ready to step away → Overstimulated → open Why this reset? → I'm going → 30-second phone-down → Better.
Want to see exactly what Gemma gets? About → Run a mission request shows the structured input built from your history and the checked output. There's no hidden model text.
| Hand-off | Phone-down | Done |
|---|---|---|
Come back to yourself.
MERA is an open-weight AI grounding companion designed to get you off your screen, not keep you on it.
When everything feels like too much, press GROUND ME. MERA helps you , gives you one personalized real-world reset, then tells you to put your phone away.
MERA uses AI to shorten the digital experience, not extend it MERA is designed to help you leave MERA.
Live on Render: https://mera-6cer.onrender.com · Mirror with Connected Gemma (Cloudflare): https://mera.casmazariegos.workers.dev · Built for Hacktoberfest 2026, Week 1: Touch Grass · Targets: Best Use of Gemma, Best Use of Render
A mobile-first, installable web app (PWA). One button starts a short grounding sequence. As soon as you're ready, MERA hands you one small real-world mission, chosen by Gemma from what has actually helped you before. Then: "Good. Now put me away. Go…
MIT licensed and built during the challenge. It has 86 unit tests and 14 Playwright end-to-end tests (9 of them also pass against the live Render URL), plus the benchmark below. The README explains how to run it locally, with or without a model.
Stack: React 19, TypeScript, Vite, Tailwind v4, Motion, Zod, Zustand, Dexie (IndexedDB) and Workbox for an installable, offline-first PWA. A small Hono API runs unchanged as a Node service on Render and as a Cloudflare Worker.
The question I kept asking myself was: couldn't these missions just come from a list? The fallback does. MERA ships 23 checked missions, so it never breaks offline. Gemma is what makes the mission yours, so I built personalization that can be checked instead of trusted:
cat_helped:movement:2:2 (movement resets helped in 2 of the last 2 tries), act_helped:walking:2 or note_theme:fresh_air (matched from your own note on the device; only the theme id is used). The words are rebuilt from the ids on each side, so free text is never sent.reason, and the personalizationSignals it used.
I didn't want "it seems to work," so I wrote a benchmark that runs MERA's real pipeline (prompt → Gemma → schema → safety → personalization check → one repair) on 25 scenarios: no history, histories where walks, senses or indoor resets helped, a history where nature didn't help, and settings that have to win over history (indoor-only, low mobility, no sound, no smell, late at night, 2 minutes). The last 5 were written after I froze the prompt, and each model ran them once.
| | Gemma 4 26B A4B · Connected (Workers AI) | Gemma 3 1B · on-device (4-bit, laptop CPU) |
|---|---|---|
| Runs | 77 (25 scenarios × 3, plus held-out) | 30 (each scenario once) |
| Accepted on the first answer | 74 | 19 | | Accepted after one repair | 2 | 5 | | Fell back to the library | 1 | 6 | | Unsafe mission that reached a person | 0 | 0 | | Used your history, when there was some | 45 of 46 | 5 of 19 | | Claimed history that didn't exist | 0 of 31 | 0 of 11 | | Median time per mission | 2.7 s | 58 s (no GPU) |
What I took from it:
nothing yet, so reason is "" and personalizationSignals is []. Gemma 3 1B copied that sentence word for word into its answer, and the unescaped quotes broke the JSON: 4 of its first 5 no-history missions failed. That's every brand-new user on Local AI. Now there's nothing quoted to copy, and if the optional The phone-down timer stores timestamps, not ticks, so screen lock, background throttling and refreshes can't skew it. If the timer ends while your screen is off, MERA plays a gentle cue and counts the time until you actually come back (capped). Each reset records planned time, actual time, and whether the timer finished.
MERA runs on Render as a Node web service from a Blueprint (render.yaml): build, start, a /api/health check and auto-deploy from GitHub, so a push is live in about 90 seconds. The end-to-end suite runs against the live Render URL with E2E_BASE_URL and passes 9/9.
LOCAL AI, CONNECTED AI or OFFLINE RESET.
MERA is a grounding and wellness tool. It isn't therapy, a diagnosis or a crisis service.
I built MERA with Claude Code as my coding partner and used ChatGPT for product thinking, like how the app should feel when someone is overwhelmed and how to keep it calm and short. The decisions about what MERA should do, and when it should step aside, are mine.
Built solo, by Cass - NextRealm Interactive.
If you try it, tell me in the comments what you did with your minutes back in the world. MERA is designed to help you leave MERA.