Sobuj Ghonta (সবুজ ঘণ্টা) — The Green Hour: Screen-Minimizing Urban Nature Companion A developer built Sobuj Ghonta ("The Green Hour"), a bilingual Bangla-English Progressive Web App that identifies safe environmental windows for urban park visits and minimizes screen time through ambient audio cues. During a 34-minute field test at Ramna Park in Dhaka, the app's ScreenMeter logged 52 seconds of active screen time, though an Overpass query routed the walker toward a padlocked footpath near the park nursery. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission 🌿 https://dev.to/challenges/hacktoberfest-week1-2026-10-05 Four billion people live in dense metropolitan cities. When hackathons announce themes like "Touch Grass" , the tacit assumption is that you live a short drive from pristine mountain trails or manicured suburban nature reserves. For those of us living in megacities like Dhaka, that is not reality. Our outdoors is an unforgiving landscape of sun-baked concrete, flyovers, gridlocked traffic, and isolated municipal parks like Ramna Park, Suhrawardy Udyan, or Dhanmondi Lake. Stepping outside in dense tropical cities comes with genuine environmental hazards: Worse yet, existing outdoor navigation and fitness apps create a glaring paradox: to navigate nature, they demand that you stay glued to a glowing glass screen. I built Sobuj Ghonta সবুজ ঘণ্টা — "The Green Hour" to solve this. It is an ambient, mobile-first, bilingual Bangla + English Progressive Web App designed with a singular architectural mandate: find your safe green window, get you outside safely, and then get out of your way. I took Sobuj Ghonta out for a late-afternoon field run at Ramna Park to test whether the audio cues and the ScreenMeter metric could keep my phone in my pocket. At 4:30 PM, Shahbagh traffic was at peak gridlock, but the app identified an environmental window between 4:45 PM and 5:20 PM where the canopy temperature dropped to 29°C before the typical Dhaka post-sunset particulate spike trapped dust and exhaust at ground level. I plugged in my earphones, started the session, and walked the inner loop. Where I went: Ramna Park, Dhaka starting from the Arunodoy gate, looping clockwise past the central lake, and cutting toward the tennis complex . AQI that day: US AQI 162 Unhealthy , with high PM2.5 readings across the city, though the afternoon wind cleared a short dip before evening stagnation set in. What the plan got right: It routed me away from the perimeter paved road toward the dirt path under the rain tree canopy, where radiant heat was noticeably lower. It also accurately flagged a mosquito warning for the lake perimeter starting at 5:10 PM, which hit almost right on cue as twilight settled. What it got wrong: The Overpass query routed me through a footpath near the park nursery that was padlocked for ground maintenance. The voice prompt repeatedly told me to turn left into a closed iron gate until I walked far enough past the boundary for the waypoint to clear. How long I looked at the screen: ScreenMeter logged 52 seconds of active screen time across a 34-minute walk a 2.5% screen-to-walk ratio . I only took the phone out twice: once to check the detour around the locked gate, and once at the end to save an entry in the Nature Journal. Ambient, screen-minimizing outdoor companion for safe urban green discovery. Built for the DEV Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass https://dev.to/challenges/hacktoberfest-week1-2026-10-05 . For over four billion people living in dense urban centers, "touching grass" isn't a 10-minute drive to an alpine hiking trail. In high-density cities like Dhaka, Kolkata, or Bangkok, nature is found in fragmented municipal parks, lakeside promenades, and pocket gardens—tucked behind concrete flyovers and heavy traffic. To make matters harder, urban nature outings require navigating environmental realities : air quality spikes US AQI 150 , tropical heat waves, intense midday UV radiation, sudden monsoon thunderstorms, and vector-borne mosquito seasons. Worse yet, conventional fitness and navigation apps do the opposite of helping you disconnect—bombarding you with screens, alerts, and map tapping. Sobuj Ghonta সবুজ ঘণ্টা — "The Green Hour" flips the script: npm test , 16 production integration checks scripts/fullQaRunner.mjs , and 8 deployment smoke tests scripts/smoke.mjs . Rather than delegating environmental safety decisions to probabilistic LLM hallucinations, Sobuj Ghonta calculates an objective 0–100 hourly score in deterministic JavaScript server/services/scoring.js : // Heuristic scoring: base 100 with environmental penalties and golden-hour bonus if aqi 200 aqiPenalty = 60 + aqi - 200 0.25; if apparentTemp 38 heatPenalty = 35 + apparentTemp - 38 5; if isThunder rainPenalty = 55; if isDaylight darknessPenalty = 25; if isGoldenHour && aqi <= 150 && rainPenalty <= 10 goldenHourBonus = +12; Public health recommendations cannot tolerate hallucinations. In server/services/guardrails.js , strict rules validate and sanitize Gemma's structured JSON output: export function validateAndCorrectPlan plan, guardrails, language = 'en' { const corrected = { ...plan }; // If AQI exceeds hazardous thresholds, override effort level if guardrails.flags.hazardousAqi { corrected.effort level = 'rest'; } else if guardrails.flags.unhealthyAqi && corrected.effort level === 'strenuous' { corrected.effort level = 'gentle'; } // Guarantee mandatory medical disclaimer and mosquito alerts ... return corrected; } gemma api ↔ ollama In server/services/llm/adapter.js , an adapter pattern supports both cloud inference via Google AI Studio gemma-4-26b-a4b-it and 100% offline edge execution via local Ollama gemma2:9b . System constraints are injected directly into the user turn to honor Gemma's prompt contract, and outputs are sanitized defensively with automated markdown fence stripping and regex fallbacks. When building audio walk narration, commercial paid TTS services created an unnecessary cost barrier. We designed an automated fallback chain in server/services/tts/index.js : gemini-3.8-flash-tts : GEMMA API KEY . Generates 24 kHz studio-quality audio in English and Bengali bn-BD . When encountering Google's free-tier 3 RPM quota limit, it handles backoff automatically. facebook/mms-tts-ben & eng : HF TOKEN . The application is deployed to Render using a declarative Blueprint render.yaml https://github.com/SayemR0018/sobujGhonta/blob/main/render.yaml : app.set 'trust proxy', 1 so sliding-window rate limiting works accurately. 20.18.0 in .node-version and package.json . /health verified without external API dependencies. Building Sobuj Ghonta around open-weight models, open data, and open web standards demonstrated four clear advantages over closed proprietary ecosystems: Model Swappability & Offline Sovereignty: A closed AI application is forever tethered to remote billing, latency, and vendor terms. Sobuj Ghonta's open architecture allows anyone to run LLM PROVIDER=ollama with gemma2:9b on a consumer laptop. The entire loop — weather scoring, green space navigation, and AI walk generation — runs 100% offline with zero API toll . Data Sovereignty & Location Privacy: Personal location coordinates, walking routines, and photos of nature are deeply private. By relying on public open data Open-Meteo and OpenStreetMap and storing journal entries exclusively in on-device IndexedDB , the user's physical presence is never tracked, monetized, or sold into advertising profiles. Where Open Beat Closed Heuristic Guardrails : Commercial closed chat APIs tend to produce verbose, conversational essays that encourage prolonged screen interaction. By constraining open-weight Gemma with deterministic heuristic code guardrails, we produced terse, safety-verified walk scripts under 60 words that tell the user to put their phone away. Cultural & Linguistic Inclusion: Open-weight models and open web standards allowed us to deliver first-class Bengali localization with native typography Hind Siliguri , serving communities in South Asia that are routinely overlooked by Western-centric wellness applications. This project was architected, implemented, and verified using Google Antigravity gemini cli . Real agent session transcripts were curated, sanitized of secrets, and saved through DevRelay : Direct Session Link: https://dev.to/agent sessions/sobuj-ghonta-architecture-free-tts-chain-full-qa-render-deployment-with-antigravity-d7vlbw https://dev.to/agent sessions/sobuj-ghonta-architecture-free-tts-chain-full-qa-render-deployment-with-antigravity-d7vlbw gemma-4-26b-a4b-it and fully offline local gemma2:9b . render.yaml