<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: jalanindw</title>
    <description>The latest articles on DEV Community by jalanindw (@jalanindw).</description>
    <link>https://dev.to/jalanindw</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1715010%2F06f969b0-1534-49f6-96f8-0df17a500a88.png</url>
      <title>DEV Community: jalanindw</title>
      <link>https://dev.to/jalanindw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jalanindw"/>
    <language>en</language>
    <item>
      <title>Summoning The Offline Medium: A Completely Private AI Séance</title>
      <dc:creator>jalanindw</dc:creator>
      <pubDate>Fri, 30 Oct 2026 08:23:07 +0000</pubDate>
      <link>https://dev.to/jalanindw/summoning-the-offline-medium-a-completely-private-ai-seance-100p</link>
      <guid>https://dev.to/jalanindw/summoning-the-offline-medium-a-completely-private-ai-seance-100p</guid>
      <description>&lt;p&gt;What I Built&lt;br&gt;
I built The Offline Medium, a deeply private, fully local web application that acts as a digital clairvoyant and tarot card reader.&lt;/p&gt;

&lt;p&gt;To honor the "Ghost in the Machine" theme, I interpreted the prompt literally: what if there was an entity living inside your local hardware? The Offline Medium does not present itself as an AI assistant. Instead, it embodies the persona of a mysterious, slightly dark spirit trapped inside the machine, offering philosophical insights and imaginary tarot readings based on the user's questions.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
(Since this project is designed to be run locally for absolute privacy, here is a video demonstration of the app running with my Wi-Fi completely disabled)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F03rcaendf8l2rfqomnri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F03rcaendf8l2rfqomnri.png" alt=" " width="800" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dimaswahyu-official" rel="noopener noreferrer"&gt;
        dimaswahyu-official
      &lt;/a&gt; / &lt;a href="https://github.com/dimaswahyu-official/medium-offline-web" rel="noopener noreferrer"&gt;
        medium-offline-web
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;React + Vite&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.&lt;/p&gt;
&lt;p&gt;Currently, two official plugins are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react" rel="noopener noreferrer"&gt;@vitejs/plugin-react&lt;/a&gt; uses &lt;a href="https://oxc.rs" rel="nofollow noopener noreferrer"&gt;Oxc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc" rel="noopener noreferrer"&gt;@vitejs/plugin-react-swc&lt;/a&gt; uses &lt;a href="https://swc.rs/" rel="nofollow noopener noreferrer"&gt;SWC&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;React Compiler&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;The React Compiler is not enabled on this template because of its impact on dev &amp;amp; build performances. To add it, see &lt;a href="https://react.dev/learn/react-compiler/installation" rel="nofollow noopener noreferrer"&gt;this documentation&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Expanding the ESLint configuration&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the &lt;a href="https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts" rel="noopener noreferrer"&gt;TS template&lt;/a&gt; for information on how to integrate TypeScript and &lt;a href="https://typescript-eslint.io" rel="nofollow noopener noreferrer"&gt;&lt;code&gt;typescript-eslint&lt;/code&gt;&lt;/a&gt; in your project.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/dimaswahyu-official/medium-offline-web" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;How I Built It&lt;br&gt;
This project relies entirely on local inference and open-weight models to function:&lt;/p&gt;

&lt;p&gt;Core AI Engine: I used Ollama to serve the Llama 3 (8B) open-weight model locally.&lt;/p&gt;

&lt;p&gt;System Prompting: I heavily engineered the system prompt to force Llama 3 to break its standard "helpful assistant" alignment and instead roleplay strictly as an ethereal medium.&lt;/p&gt;

&lt;p&gt;Frontend Architecture: Leveraging my experience in web application development, I built a minimalist, dark-themed UI using React, Vite, and Tailwind CSS. I implemented strict state management to handle loading states and protect against edge cases (like preventing empty inputs).&lt;/p&gt;

&lt;p&gt;Streaming &amp;amp; Voice: I integrated the ReadableStream API to parse Ollama's JSONL chunks, creating a real-time, character-by-character typing effect. I also hooked this into the browser's native Web Speech API to give the Medium a low, slow, and haunting voice.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
For a project like a Tarot Reader or a digital séance, privacy is paramount. People often ask tarot cards deeply personal, vulnerable, or sensitive questions about their relationships, careers, and fears.&lt;/p&gt;

&lt;p&gt;If I built this using a closed, proprietary API, every personal fear or hope typed into the prompt would be sent to a corporate server and potentially used for training data. Open innovation made it possible to build a system that guarantees 100% data sovereignty. Because it runs on an open-weight model via Ollama, it works with the lights out and the Wi-Fi disconnected. It proves that we can have deeply engaging, immersive AI experiences without sacrificing our right to digital privacy.&lt;/p&gt;

&lt;p&gt;The Spirit of It&lt;br&gt;
The moment this project truly landed for me was during testing. I physically unplugged my router, sat in a dark room, and typed: "I feel completely stuck in my life right now. What do the cards say?"&lt;/p&gt;

&lt;p&gt;Seeing the local terminal spin up my GPU, process my vulnerability completely offline, and slowly stream back a haunting, poetic response about the "Tower card" and "necessary destruction"—followed by a slow, robotic voice echoing through my speakers—gave me genuine chills. It truly felt like there was a ghost in the machine.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Local Inference Hero&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>DrowsyGuard: An Offline Drowsiness Alert for Ride-Hailing &amp; Truck Drivers</title>
      <dc:creator>jalanindw</dc:creator>
      <pubDate>Sun, 18 Oct 2026 16:24:16 +0000</pubDate>
      <link>https://dev.to/jalanindw/drowsyguard-an-offline-drowsiness-alert-for-ride-hailing-truck-drivers-459</link>
      <guid>https://dev.to/jalanindw/drowsyguard-an-offline-drowsiness-alert-for-ride-hailing-truck-drivers-459</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;DrowsyGuard is a React Native app that watches the driver's face through the phone's front camera and sounds an alarm when it detects drowsiness: the phone vibrates, says "Wake up! Pull over and rest," and the screen turns red.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who would pay:&lt;/strong&gt; [ride-hailing and delivery drivers, long-haul truckers, small logistics fleets and bus operators]. Fatigue is a real safety and cost problem for them, and dedicated in-cab monitoring hardware is expensive. A phone they already own is a far cheaper option. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it decides:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every frame, it computes the eye aspect ratio (EAR) from the face landmarks.&lt;/li&gt;
&lt;li&gt;It raises the alarm if the eyes stay closed for about 1.5 seconds, or are closed for more than 30% of the last 30 seconds (PERCLOS, a standard fatigue measure).&lt;/li&gt;
&lt;li&gt;It also warns the driver if no face is visible for 3 seconds, meaning they are not looking at the road.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fen8rdevt828knwg8s92q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fen8rdevt828knwg8s92q.png" alt=" " width="456" height="911"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdor64vmnhj0vfxesvovw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdor64vmnhj0vfxesvovw.png" alt=" " width="458" height="977"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/dimaswahyu-official/drownsy-app-ai.git" rel="noopener noreferrer"&gt;https://github.com/dimaswahyu-official/drownsy-app-ai.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight model:&lt;/strong&gt; MediaPipe Face Landmarker's &lt;code&gt;face_landmarks_detector.tflite&lt;/code&gt; (Apache-2.0). It outputs 478 3D face landmarks per frame.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference:&lt;/strong&gt; runs fully on the phone through &lt;code&gt;react-native-fast-tflite&lt;/code&gt;, called from a Vision Camera frame processor at about 15 fps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App:&lt;/strong&gt; React Native (Expo dev build) with &lt;code&gt;react-native-vision-camera&lt;/code&gt; v4, &lt;code&gt;vision-camera-resize-plugin&lt;/code&gt; and &lt;code&gt;react-native-worklets-core&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detection logic:&lt;/strong&gt; a small, model-independent TypeScript class (&lt;code&gt;drowsiness.ts&lt;/code&gt;) that computes EAR from six landmarks per eye and applies the eyes-closed duration and PERCLOS rules. Swapping the model doesn't touch the alert logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alerts:&lt;/strong&gt; vibration plus text-to-speech (&lt;code&gt;expo-speech&lt;/code&gt;), with the screen kept awake.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calibration:&lt;/strong&gt; [describe what you measured, e.g. your EAR for open vs closed eyes, and the threshold you picked].&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; the driver's face video never leaves the phone. No uploads, no accounts. Drivers and employers don't have to trust a server with facial video.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works offline:&lt;/strong&gt; it works in tunnels, on rural highways and in areas with poor signal, which is exactly where drowsy driving is most dangerous. A cloud API would fail there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero running cost:&lt;/strong&gt; there are no per-frame API fees. A closed vision API called about 15 times a second would make a cheap driver app unaffordable. With an open model, the marginal cost per user is zero.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tunable and swappable:&lt;/strong&gt; I can adjust thresholds, retrain, or replace the model for real conditions such as night driving, glasses and helmets, without waiting for a vendor. [Add anything you actually tuned.]&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in:&lt;/strong&gt; no vendor can change the pricing or shut off the API my business depends on.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>reactnative</category>
      <category>ai</category>
    </item>
    <item>
      <title>WildHarvest AI: 100% Offline Campfire Recipe Generator using Gemma 7B</title>
      <dc:creator>jalanindw</dc:creator>
      <pubDate>Thu, 08 Oct 2026 08:25:09 +0000</pubDate>
      <link>https://dev.to/jalanindw/wildharvest-ai-100-offline-campfire-recipe-generator-using-gemma-7b-43g7</link>
      <guid>https://dev.to/jalanindw/wildharvest-ai-100-offline-campfire-recipe-generator-using-gemma-7b-43g7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;WildHarvest AI&lt;/strong&gt;, an offline-first campfire recipe generator designed for hikers, campers, and foragers. You simply input the ingredients you just foraged in the wild (e.g., wild mushrooms, bamboo shoots) and the app generates 3 safe, easy-to-cook recipe options using only your found ingredients and basic camping supplies (like a mess kit, salt, and water). &lt;/p&gt;

&lt;p&gt;It perfectly fits the "Touch Grass" theme because it encourages people to get out into the woods, forage responsibly, and cook outdoors, all while bringing a smart chef along in their backpack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi93spqkinqf2ekw7grzb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi93spqkinqf2ekw7grzb.png" alt="First page of Ai" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fekikm9oa8os2ztd1p21w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fekikm9oa8os2ztd1p21w.png" alt="Result from generate AI" width="753" height="957"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dimaswahyu-official" rel="noopener noreferrer"&gt;
        dimaswahyu-official
      &lt;/a&gt; / &lt;a href="https://github.com/dimaswahyu-official/WildHarvest-AI" rel="noopener noreferrer"&gt;
        WildHarvest-AI
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Collecting what you see in wild and i'll make a recipe's for that using Gemma:7b
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌲 WildHarvest AI&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;WildHarvest AI&lt;/strong&gt; is a 100% offline, local-first campfire recipe generator built for hikers, campers, and foragers. This project is an official submission for the &lt;strong&gt;Hacktoberfest 2026 DEV Challenge (Week 1: Touch Grass)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When you are deep in the woods, you don't have internet access. This application solves that by running a local AI model to turn your foraged ingredients into safe, actionable campfire recipes without needing a single bar of cell service.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% Offline Inference:&lt;/strong&gt; Powered by Google's open-weight Gemma model running entirely on your local machine via Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict Ingredient Bounding:&lt;/strong&gt; The AI is highly constrained to &lt;em&gt;only&lt;/em&gt; use the ingredients you actually found, plus basic camping supplies (water, salt, oil, etc.). No hallucinated ingredients!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Campfire Ready:&lt;/strong&gt; Recipes are designed to be cooked outdoors using basic mess kits or portable stoves.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛠️ Tech Stack&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js (App Router), React, Tailwind CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration:&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/dimaswahyu-official/WildHarvest-AI" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;em&gt;(Note: I pivoted the project from a dessert app to a foraging app during the hackathon to better fit the theme, but the core engine remains the same!)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built the frontend using Next.js (App Router) and Tailwind CSS. The core intelligence is powered by Google's open-weight &lt;strong&gt;Gemma (7B)&lt;/strong&gt; model, running entirely locally on my machine via &lt;strong&gt;Ollama&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;To make the AI act like a strict campfire chef, I created a custom Next.js Route Handler that talks to the local Ollama API. I set the model's &lt;code&gt;temperature&lt;/code&gt; to &lt;code&gt;0.1&lt;/code&gt; and wrote a highly constrained system prompt to prevent the AI from hallucinating ingredients the user didn't actually find.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For a foraging and camping app, open innovation isn't just a nice-to-have; it is the only way the app functions. &lt;/p&gt;

&lt;p&gt;When you are deep in the woods or at a campsite ("touching grass"), you rarely have a stable internet connection. If I had built this using a closed, cloud-based API like OpenAI or Claude, the app would be completely useless on the trail. By using an open-weight model like Gemma running locally on a laptop via Ollama, the entire AI inference happens offline. Open innovation made it possible to bring powerful AI into the wilderness without needing a single bar of cell service.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;(N/A - I built the logic directly based on local LLM experimentation)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am submitting this project for the following category:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; The project relies entirely on Google's open-weight Gemma model running locally for its offline recipe generation logic.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>gemma</category>
    </item>
  </channel>
</rss>
