# WildPack: A Local-First Trail Guide with Gemma

> Source: <https://dev.to/parthlightning/wildpack-a-local-first-trail-guide-with-gemma-moa>
> Published: 2026-10-12 04:35:19+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass](https://dev.to/challenges/hacktoberfest-week1-2026-10-05)*

WildPack is a local-first trail-guide prototype for hikers and curious naturalists. It brings an imported region pack, trail notes, and pack-grounded questions together in a browser app, with GPX route replay and optional browser geolocation.

The goal is to make a phone or laptop more useful outdoors—not to keep someone scrolling. The app stores packs and observations in the browser, and the local AI path can answer questions without sending them to a hosted model. The app is still a prototype: its bundled route and nature text are synthetic examples, not verified trail or species information.

WildPack on GitHub.

WildPack is a desktop-first, local-first trail-guide prototype. It stores imported
`.wildpack` files and observations in this browser, can replay synthetic GPX
routes, and can use Ollama on the same computer for pack-grounded questions
The bundled demo route and its natural-history text are synthetic: they are not
a real trail, species record, or source of outdoor-safety advice.

The implementation follows the accompanying
[Software Requirements Specification](https://github.com/parth-lightning/Hacktoberfest-Week1-Challenge/./WildPack%20Software%20Requirements%20Specification.md)
but not every phase or acceptance criterion is complete. The current status and
limitations are listed in the [phase-status checklist](https://github.com/parth-lightning/Hacktoberfest-Week1-Challenge/./docs/phase-status.md).
DigitalOcean is not required for the local prototype.

Requirements: Node.js 20.19+ or 22.12+, npm, and (for local model features)
[Ollama](https://ollama.com/).

```
npm install
ollama pull gemma3:4b
ollama pull embeddinggemma
npm run dev:all
```

Open `http://localhost:5173`. `dev:all` starts Vite on port 5173 and the Express
API on port 3001. The app can load its synthetic demo pack without credentials
Local…

WildPack uses React, TypeScript, and Vite for the frontend, with an Express API for local model calls. Imported packs and observations are stored in browser storage, and a service worker provides an app shell and caches same-origin resources.

For AI, I used Gemma 3 4B through Ollama for local model features and EmbeddingGemma for embeddings and retrieval. The intent is to keep questions and location data on the user’s machine rather than depend on a hosted inference service.

I also added an ElevenLabs integration path for narration generation in the pack builder. I didn’t generate or test a voiced pack for this prototype, so narration should be treated as an unverified capability—not as part of the demo.

Open-weight models and local inference let this prototype explore a useful trade-off: AI features can be available without sending a hiker’s question or location to a hosted model provider. They also make it possible to experiment on modest local infrastructure rather than requiring a cloud account.

That matters for an outdoor guide, where connectivity can be limited and location is sensitive. The current app’s pack storage and GPX replay work locally; offline model inference and real-world field use still need further testing.

Gemma: WildPack uses Gemma 3 4B locally through Ollama for pack-grounded questions, with EmbeddingGemma for retrieval.

ElevenLabs: The pack builder includes an ElevenLabs narration-generation integration. I did not generate or test narrated audio for this prototype, so please confirm this qualifies for the category before submitting.

Solo submission by [@parthlightning](https://dev.to/parthlightning)
