I Built My Best Friend an Offline Trek Planner With a Local Gemma AI That Can't Make Things Up

I Built My Best Friend an Offline Trek Planner With a Local Gemma AI That Can't Make Things Up

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend Who I built it for My best friend treks in the Himalayas, the mountains are where he feels most like himself, and the planning before each trip is a ritual for him, a way of settling into the journey before it begins. But I've watched that ritual turn into chaos more than once: a train ticket in an SMS, a homestay number in a WhatsApp chat, the gear list in a notes app and the rest in his head. He kept wishing it were all in one place, so he could stop worrying about what he'd forgotten. So, I built Trek Organizer, an offline-first trek planning app with a local Gemma model at its heart that turns his scattered notes into one clear plan and tells him what's still missing. What I Built Trek Organizer is a phone-first trek planner that works offline. He enters his trip, travel, stays, trek days, gear, food and emergency contacts, and the app shows what's missing, what's unconfirmed and what's still to buy or borrow. On the trail, a Today screen shows only what he needs: where he's going, where he's sleeping, and who to call. Gemma does two jobs: 1. Sort my notes. He pastes messy text, like a train booking SMS or a WhatsApp message from a guide, and Gemma pulls out the travel, stays, gear, food, contacts and permits. Each one shows up as a card he can Add or Skip. Nothing goes into his plan without his tap. 2. Plan check. Gemma looks at his trek conditions (month, altitude, days, camping or not) and his gear list. It suggests gear he's likely missing, with a one-line reason and an Add to Gear button. It also asks the questions he should be able to answer before leaving, like "What will you do if the jeep to the trailhead doesn't run?" The rule I built everything around: it must not make things up On a trek, a confident wrong answer is worse than no answer. If an AI says "there's water at camp 3" and there isn't, that's a real problem. So Gemma is never trusted on facts: Every extracted value is checked against his own text, in plain code, not AI. If Gemma returns a place, name, booking number or phone number that doesn't appear in what he pasted, the code deletes it and tells him something was left out. Unknown stays unknown. Anything added from notes is marked Unknown until he confirms it himself. Suggestions are labelled as suggestions, e.g. "Suggestion — check this yourself". It never suggests medicines. The counting is done by code. What's packed, what's missing and what's unconfirmed are all calculated without AI. I tested this with deliberately vague text, like "Ask Raju at the dhaba about a jeep. Leave early on the first day." Gemma didn't invent a phone number for Raju or turn "early" into a time. Demo Live app: meawdak.github.io/Trek-Organizer Images from phone: The planner works for everyone straight from the link. The Gemma features need Ollama running on your own computer: install Ollama, run ollama pull gemma3:4b, and follow the setup steps in the README What He Said "Planning a trek has two sides: the physical preparation and the mental one. For me, building the itinerary and going through that mental checklist is how I prepare myself psychologically before I head out. Until now, that process was hectic. I'd be jumping between websites, YouTube videos, random notes and multiple AI chats, trying to hold it all together. And trek planning isn't something you can be casual about. It needs seriousness and caution. When I first used Trek Organizer, it honestly exceeded my expectations. It doesn't just organise my plans, my itinerary and every little detail in one place. It also checks through everything and points out the things I tend to forget. What surprised me most is that I actually trust it. I don't usually trust AI with something this important, but this one is careful. It doesn't guess, it doesn't make things up, and it treats planning a trek as the serious task it is. That's exactly how she built it, and it shows." — my best friend Code GitHub repo: github.com/meawdak/Trek-Organizer How I Built It Gemma 3 (gemma3:4b), run locally through Ollama on his everyday laptop: an Intel Core i3 (12th gen) with 8 GB RAM and no dedicated graphics card. The app talks to Ollama directly from the browser, so his notes and plan never leave the machine. While Gemma works, the app shows a timer and a Cancel button, because on a laptop like this a run can take a little while. Gemma is set to temperature 0 and strict JSON output, with a short system prompt that tells it to only extract or check, never plan or invent. Its answer then goes through my own code: a filter that drops junk and duplicates, and a check that keeps only values found word-for-word in his text. The app is plain HTML, CSS and JavaScript as an installable web app (PWA) with a service worker, so it works offline on a phone. There's no backend and no login, and his data stays on his device. Since Gemma runs on the laptop and the trek happens on the phone, he exports his plan as a JSON file and imports it on his phone before he leaves. I planned the product and wrote the specs (PRD, UX and technical spec, plus agent rules like "never invent missing information"), then built it step by step with Antigravity, testing each step before moving on. Why Does Open Innovation Matter? His data stays with him. Booking SMSes have PNR numbers and phone numbers. Here, they're processed by Gemma on his own laptop and never sent to anyone's server. With a closed API, every note he pasted would leave his hands. No internet needed on the trail. The app works fully offline on his phone. Gemma runs on the laptop while he plans at home, and everything it helped add is already saved in the app when he leaves. It costs nothing to run. No API key or subscription for something he'll use every trek. I control how it behaves. I chose the model, wrote its rules, and put my own check after every answer. I can swap in a bigger Gemma model on a stronger laptop without changing anything else. A closed API could change its behaviour or pricing under us. My Agent Session I built Trek Organizer with Antigravity in two sessions: Part 1 — offline app foundation Part 2 — Gemma integration Prize Categories Gemma: Gemma is the core of the app's AI features, running locally through Ollama.

Original Source

Read the full article at Dev →

KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.