<?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: Mohammed Abid Ali</title>
    <description>The latest articles on DEV Community by Mohammed Abid Ali (@mohammedabidali_1453).</description>
    <link>https://dev.to/mohammedabidali_1453</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%2F4157605%2Fe91ab11a-6868-4fa2-b502-10c83bc6a185.png</url>
      <title>DEV Community: Mohammed Abid Ali</title>
      <link>https://dev.to/mohammedabidali_1453</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mohammedabidali_1453"/>
    <language>en</language>
    <item>
      <title>Afterlight — The Ghost Is the Thread, Not the Impersonation</title>
      <dc:creator>Mohammed Abid Ali</dc:creator>
      <pubDate>Tue, 27 Oct 2026 17:35:51 +0000</pubDate>
      <link>https://dev.to/mohammedabidali_1453/afterlight-the-ghost-is-the-thread-not-the-impersonation-179h</link>
      <guid>https://dev.to/mohammedabidali_1453/afterlight-the-ghost-is-the-thread-not-the-impersonation-179h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Afterlight is a local-first family memory archive built around a simple idea: memories should stay personal, even when AI helps us revisit them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A family is full of small details that might seem ordinary at the time: a recipe passed down through generations, a familiar saying, a song someone used to hum, or a little ritual that made a house feel like home.&lt;/p&gt;

&lt;p&gt;Over time, those details become scattered across notes and recollections. Afterlight brings them together in one private archive and uses a locally running open-weight model to help users discover connections between them.&lt;/p&gt;

&lt;p&gt;The inspiration behind the project is the idea of a &lt;em&gt;ghost in the machine&lt;/em&gt;: an echo of someone's presence found in the things they left behind.&lt;/p&gt;

&lt;p&gt;But there is an important boundary.&lt;/p&gt;

&lt;p&gt;Afterlight does not impersonate someone who has died, invent conversations with them, or claim to know what they would say. It reflects on recorded memories and shows the original sources so the family can decide what those memories mean.&lt;/p&gt;

&lt;p&gt;The starter archive uses fictional stories, allowing people to explore the experience without exposing real family memories.&lt;/p&gt;

&lt;p&gt;The demo should show the fictional archive, a question about a remembered detail, the retrieved source notes, and the AI-generated reflection alongside those sources.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/mohammedabidali1956/Afterlight" rel="noopener noreferrer"&gt;mohammedabidali1956/Afterlight&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository includes the application, a fictional starter archive, setup instructions, and a demo guide.&lt;/p&gt;

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

&lt;p&gt;Afterlight uses Python, SQLite, HTML, CSS, and JavaScript, with Ollama providing local model inference.&lt;/p&gt;

&lt;p&gt;The core workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Family Memories
      ↓
Local SQLite Archive
      ↓
Keyword-Based Retrieval
      ↓
Ollama + Open-Weight Model
      ↓
Structured Reflection
      ↓
Original Source Notes + AI Interpretation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SQLite stores the archive locally. When a user asks a question, the application retrieves relevant notes and passes the selected excerpts to the locally running model.&lt;/p&gt;

&lt;p&gt;The model produces a short reflection about the retrieved memories. The application then checks proposed quotations against the original text before displaying them, keeping the source material distinct from AI-generated interpretation.&lt;/p&gt;

&lt;p&gt;The application is designed to run on the user's own computer without a cloud database, account system, proprietary AI API key, or third-party Python package. Gemma 3 (1B) is the recommended starting model, and the Ollama integration allows users to choose another installed model.&lt;/p&gt;

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

&lt;p&gt;Family memories are deeply personal. Sending them to an external AI service simply to find connections between them introduces a privacy trade-off that should not be necessary for this experience.&lt;/p&gt;

&lt;p&gt;Afterlight keeps the archive and model processing local. Once the model has been downloaded, its retrieval and reflection workflow can operate without an internet connection.&lt;/p&gt;

&lt;p&gt;Open-weight AI also gives users more control over the experience. They can inspect the prompts, choose a compatible model, or turn off AI processing without losing access to their stored memories.&lt;/p&gt;

&lt;p&gt;The original stories remain the source of truth. AI is a way to explore connections between them, not a replacement for the people who remember them.&lt;/p&gt;

&lt;p&gt;There are limitations: local inference still requires suitable hardware, and the prototype's SQLite database is not encrypted. Local processing reduces the need to send family stories to a cloud model, but it does not make the application automatically secure on a shared computer.&lt;/p&gt;

&lt;p&gt;For this project, open innovation makes privacy-conscious experimentation possible without making a family archive dependent on a proprietary model provider.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Imagine finding an old recipe card in a kitchen drawer.&lt;/p&gt;

&lt;p&gt;The handwriting is familiar. One instruction uses an unusual phrase. A note elsewhere mentions the same dish being prepared whenever it rained.&lt;/p&gt;

&lt;p&gt;Afterlight helps bring those fragments together. It can retrieve the original notes and offer a possible connection between them, while leaving the meaning of those memories to the family.&lt;/p&gt;

&lt;p&gt;It does not claim to bring someone back. It does not speak in their voice. It helps preserve the small details that might otherwise be forgotten.&lt;/p&gt;

&lt;p&gt;That distinction is the heart of Afterlight: &lt;strong&gt;the ghost is the thread connecting the memories, not an AI pretending to be the person.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The demo archive contains fictional stories, so this is the intended experience rather than a claim that a real family has already experienced that moment.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Afterlight uses Gemma 3 (1B) as its recommended open-weight model for the local reflection step. The model works with retrieved memory excerpts to generate structured reflections, while the application keeps source notes visible and checks generated quotations against the originals.&lt;/p&gt;

&lt;p&gt;Gemma is part of the core experience rather than an unrelated chatbot feature.&lt;/p&gt;

&lt;p&gt;I am entering Afterlight in the &lt;strong&gt;Best Use of Gemma&lt;/strong&gt; category.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>gemma</category>
    </item>
    <item>
      <title>Nudge — Turn Messy Thoughts Into Tasks with Local Gemma AI</title>
      <dc:creator>Mohammed Abid Ali</dc:creator>
      <pubDate>Sat, 24 Oct 2026 16:47:51 +0000</pubDate>
      <link>https://dev.to/mohammedabidali_1453/nudge-turn-messy-thoughts-into-tasks-with-local-gemma-ai-1jl3</link>
      <guid>https://dev.to/mohammedabidali_1453/nudge-turn-messy-thoughts-into-tasks-with-local-gemma-ai-1jl3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&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;Nudge&lt;/strong&gt;, a small local-first AI assistant that turns messy thoughts into actionable tasks.&lt;/p&gt;

&lt;p&gt;Sometimes, important things to do get buried in messages, notes, and random thoughts. You remember that something needs to be done, but organizing everything into individual tasks takes extra effort.&lt;/p&gt;

&lt;p&gt;Nudge aims to remove that friction.&lt;/p&gt;

&lt;p&gt;Instead of manually breaking a long note into separate tasks, you can enter something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Tomorrow I need to finish my DBMS assignment, call Rahul tonight about the project, and pay Ahmed ₹500 on Friday."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nudge uses Gemma to turn that unstructured text into organized tasks with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Task title&lt;/strong&gt; — What needs to be done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deadline&lt;/strong&gt; — When it needs to be completed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Priority&lt;/strong&gt; — High, medium, or low.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category&lt;/strong&gt; — College, personal, finance, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is a structured list that is easier to understand and act on.&lt;/p&gt;

&lt;p&gt;The idea behind Nudge is simple: spend less time organizing what you need to do and more time actually doing it.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Video Demo:&lt;/strong&gt; &lt;a href="https://youtu.be/Gp_h3yUaJh0" rel="noopener noreferrer"&gt;Watch Nudge on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The video demonstrates the core workflow: entering a messy natural-language note and turning it into structured tasks using local AI.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/mohammedabidali1956/Nudge-Hacktoberfest-2026-Build-for-a-Friend-Challenge" rel="noopener noreferrer"&gt;Nudge — Hacktoberfest 2026&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is intentionally small so the main AI workflow is easy to understand, run, and modify.&lt;/p&gt;

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

&lt;p&gt;Nudge is built with &lt;strong&gt;Python, Streamlit, Ollama, and Gemma 3 (1B)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The workflow is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Messy Natural-Language Note
          ↓
    Nudge (Streamlit)
          ↓
       Ollama
          ↓
     Gemma 3 (1B)
          ↓
      Structured JSON
          ↓
      Actionable Tasks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gemma handles the core language-processing task: identifying separate actions, interpreting deadlines, assigning priorities, and categorizing tasks.&lt;/p&gt;

&lt;p&gt;The application requests structured JSON from the model and parses the response before displaying the resulting tasks.&lt;/p&gt;

&lt;p&gt;I deliberately avoided adding a complex agent framework, a database server, or multiple AI services. Nudge focuses on one useful job instead of becoming another general-purpose chatbot.&lt;/p&gt;

&lt;p&gt;The current version accepts text entered by the user; it does not automatically read WhatsApp messages or transcribe voice notes.&lt;/p&gt;

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

&lt;p&gt;For Nudge, open-weight AI makes local inference possible without depending on a proprietary hosted LLM API.&lt;/p&gt;

&lt;p&gt;The notes people enter can contain personal plans, payment details, relationships, and other private information. With Nudge running locally through Ollama, the text used for AI processing can stay on the user's computer rather than being sent to a third-party LLM provider.&lt;/p&gt;

&lt;p&gt;It also avoids per-request charges from a hosted LLM API. Users still need a computer capable of running the model, and the initial setup requires installing Ollama and downloading Gemma.&lt;/p&gt;

&lt;p&gt;Another advantage is flexibility. Because Nudge uses an open-weight model through Ollama, the model can be replaced or upgraded without rebuilding the entire application around a single proprietary provider.&lt;/p&gt;

&lt;p&gt;For a small utility like this, open innovation makes it possible to experiment with useful AI features while keeping the architecture simple, the processing local, and the ongoing API cost at zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;The effort Nudge is designed to save is the repetitive work of reading an unstructured note, identifying each task, figuring out its deadline, and organizing everything manually.&lt;/p&gt;

&lt;p&gt;One piece of text becomes a structured task list instead of a collection of things to remember.&lt;/p&gt;

&lt;p&gt;The benefit is not about automating an entire life. It is about removing one small, recurring source of friction.&lt;/p&gt;

&lt;p&gt;I have not conducted a timed comparison or collected formal user feedback, so I cannot honestly claim a specific number of minutes saved. Measuring how long it takes to organize the same note manually versus using Nudge would be a useful next step.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Nudge uses &lt;strong&gt;Gemma 3 (1B)&lt;/strong&gt; as its core language-understanding engine.&lt;/p&gt;

&lt;p&gt;Rather than adding AI as a decorative chatbot, the project depends on Gemma to transform unstructured text into actionable tasks. Local inference through Ollama is central to the application's privacy-focused design.&lt;/p&gt;

&lt;p&gt;I am entering Nudge in the &lt;strong&gt;Best Use of Gemma&lt;/strong&gt; category.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built a Local AI Listing Writer for Used-Mobile Sellers</title>
      <dc:creator>Mohammed Abid Ali</dc:creator>
      <pubDate>Sun, 18 Oct 2026 13:38:13 +0000</pubDate>
      <link>https://dev.to/mohammedabidali_1453/i-built-a-local-ai-listing-writer-for-used-mobile-sellers-5djf</link>
      <guid>https://dev.to/mohammedabidali_1453/i-built-a-local-ai-listing-writer-for-used-mobile-sellers-5djf</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;I built &lt;strong&gt;ListingMate&lt;/strong&gt;, a local-first AI listing writer designed for used-phone sellers and small mobile shops.&lt;/p&gt;

&lt;p&gt;Selling used phones involves more than just setting a price. Sellers need to write clear product descriptions, list specifications, explain the phone's condition, and create attractive listings for WhatsApp and online marketplaces.&lt;/p&gt;

&lt;p&gt;ListingMate makes this process simpler.&lt;/p&gt;

&lt;p&gt;The seller enters the phone's details, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brand and model&lt;/li&gt;
&lt;li&gt;RAM and storage&lt;/li&gt;
&lt;li&gt;Physical condition and battery health&lt;/li&gt;
&lt;li&gt;Price and included accessories&lt;/li&gt;
&lt;li&gt;Known defects or issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ListingMate uses an open-weight AI model to turn these details into a polished product title, a structured description, and a short listing ready to share with potential buyers.&lt;/p&gt;

&lt;p&gt;The goal is simple: help small sellers create professional listings faster without paying for a separate AI subscription.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accuracy matters, too.&lt;/strong&gt; ListingMate is designed to use the information supplied by the seller rather than inventing specifications, claiming nonexistent features, or hiding known defects.&lt;/p&gt;

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

&lt;p&gt;The demonstration will show a seller entering the details of a used phone and generating a ready-to-share listing.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
The project is designed to be small and easy to run locally, with a straightforward workflow from product details to generated listing.&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;ListingMate uses &lt;strong&gt;Gemma 3 (1B)&lt;/strong&gt;, Google's open-weight model, running locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The application uses Python and Streamlit for its interface and sends the seller's product details to the locally running model.&lt;/p&gt;

&lt;p&gt;The core workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Phone Details
     ↓
ListingMate (Streamlit)
     ↓
Ollama
     ↓
Gemma 3 (1B)
     ↓
Structured Product Listing
     ↓
Copy and Share
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gemma handles the language-generation task: organizing specifications, improving readability, describing the reported condition, and formatting the information for potential buyers.&lt;/p&gt;

&lt;p&gt;The application is intentionally focused. It does not need a complex agent framework, a cloud database, or a collection of AI services to perform its main task.&lt;/p&gt;

&lt;p&gt;The model is instructed to preserve the seller's supplied facts and to avoid introducing unsupported product claims.&lt;/p&gt;

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

&lt;p&gt;For a small seller, AI is only useful if the cost and complexity make sense for the business.&lt;/p&gt;

&lt;p&gt;A proprietary AI API can introduce usage charges and send business information to an external service. ListingMate explores a different approach by running its language model locally.&lt;/p&gt;

&lt;p&gt;Product details can include inventory information, selling prices, and notes about a device's condition. With local inference, these details do not need to be sent to a third-party LLM API for description generation.&lt;/p&gt;

&lt;p&gt;Running Gemma through Ollama also gives the application flexibility. The model can be changed or upgraded without making the entire product dependent on one proprietary AI provider.&lt;/p&gt;

&lt;p&gt;This approach does not eliminate every operating cost: the computer still needs sufficient resources to run the model. However, it avoids per-request charges from a hosted LLM API.&lt;/p&gt;

&lt;p&gt;For an independent shop producing multiple listings, that trade-off could make AI-assisted writing more practical.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;ListingMate uses Gemma 3 as its core text-generation model rather than treating AI as an optional chatbot feature.&lt;/p&gt;

&lt;p&gt;The model transforms raw product details into useful, structured sales listings while following constraints intended to prevent unsupported claims.&lt;/p&gt;

&lt;p&gt;I am entering ListingMate in the &lt;strong&gt;Best Use of Gemma&lt;/strong&gt; category.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>FieldQuest: The Local-First Outdoor Adventure Companion</title>
      <dc:creator>Mohammed Abid Ali</dc:creator>
      <pubDate>Sun, 11 Oct 2026 12:00:46 +0000</pubDate>
      <link>https://dev.to/mohammedabidali_1453/fieldquest-the-local-first-outdoor-adventure-companion-1ab7</link>
      <guid>https://dev.to/mohammedabidali_1453/fieldquest-the-local-first-outdoor-adventure-companion-1ab7</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;
  
  
  FieldQuest: The Local-First Outdoor Adventure Companion
&lt;/h2&gt;

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

&lt;p&gt;Modern life has tethered us to algorithmic feeds, glowing rectangles, and endless notifications. Many of us genuinely want to explore the outdoors, but outdoor apps often exacerbate screen addiction: requiring live turn-by-turn navigation, cloud logins, subscription tiers, and constant screen gaze.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FieldQuest&lt;/strong&gt; (TouchGrass) is an AI-powered, local-first outdoor adventure companion built around a single core philosophy:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Plan before leaving. Explore while outside. Preserve memories afterward.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;The AI supports your outdoor journey without becoming another reason to stare at a screen.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How FieldQuest Works:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plan at Home (Desktop or Mobile):&lt;/strong&gt; Enter your starting location (via GPS or map click), choose a destination, select your available time (30, 60, or 120 minutes), difficulty, and observational interests (Nature, Bird Song, Flora, Photography, Mindfulness, Local History).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verified Pedestrian Route:&lt;/strong&gt; FieldQuest queries the OpenStreetMap / OSRM Foot Profile API to compute a real, walkable route with genuine geometry, distance, and turn steps. FieldQuest strictly forbids inventing imaginary trails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI Mission Design:&lt;/strong&gt; An open-weight &lt;strong&gt;Gemma 3 (1B)&lt;/strong&gt; model running locally via Ollama personalizes 3 to 4 observational challenges (e.g. noticing leaf vein architectures, counting bird calls, or framing natural patterns) along with a safety checklist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Field Mode:&lt;/strong&gt; Export an Adventure Pack JSON or take the installed PWA outside. Turn off Wi-Fi or enable Airplane Mode. While outside, you check off missions, write raw field observations, and capture photos using your camera (auto-compressed to &amp;lt;=1280px JPEG directly in IndexedDB).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Truthful Adventure Journal:&lt;/strong&gt; Return from your outing and import your completed pack back to your computer. Gemma 3 synthesizes a grounded, reflective Adventure Journal based &lt;em&gt;strictly&lt;/em&gt; on what you actually observed and recorded. No hallucinated species, no fabricated weather, and no invented achievements.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;h3&gt;
  
  
  📸 Application Walkthrough
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;1. Route Planning &amp;amp; Waypoints&lt;/th&gt;
&lt;th&gt;2. Verified Route &amp;amp; AI Missions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&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%2Fv1kqsx417rdowt8jdssn.png" alt="Route Planning Screen" width="800" height="394"&gt;&lt;/td&gt;
&lt;td&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%2Fjxmyzbso1yg0kq5hfpt9.png" alt="Verified Adventure Route" width="800" height="394"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;3. Offline Field Mode&lt;/th&gt;
&lt;th&gt;4. Grounded Adventure Journal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&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%2Fqbndrf8nyqwynsvr04i6.png" alt="Offline Field Mode" width="800" height="394"&gt;&lt;/td&gt;
&lt;td&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%2Ffs4hkbwk6wnls1fsp0kn.png" alt="Grounded Adventure Journal" width="800" height="394"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Development URL:&lt;/strong&gt; &lt;a href="http://localhost:5173" rel="noopener noreferrer"&gt;http://localhost:5173&lt;/a&gt; (Local-First React PWA)&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;The entire codebase is open-source under the MIT License:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/mohammedabidali1956/FieldQuest" rel="noopener noreferrer"&gt;https://github.com/mohammedabidali1956/FieldQuest&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture Highlights:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;src/lib/ollama.ts&lt;/code&gt;: Ollama &lt;code&gt;/api/chat&lt;/code&gt; integration with Gemma 3 (1B), timeout handling, and safe fallback missions.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/lib/routing.ts&lt;/code&gt;: Pedestrian routing with caching and strict grounding (no hallucinated paths).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/lib/storage.ts&lt;/code&gt;: Native IndexedDB persistence for offline adventures and compressed photos.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/lib/adventureSchema.ts&lt;/code&gt;: Zod schema validation for AI JSON output and import/export packs.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/lib/imageUtils.ts&lt;/code&gt;: Client-side HTML5 canvas downscaling (max 1280px JPEG).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/pages/FieldModePage.tsx&lt;/code&gt;: High-contrast outdoor mode with autosave and offline indicators.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/pages/JournalPage.tsx&lt;/code&gt;: Grounded memory synthesis with print/PDF layout.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────┐
│                       FIELDQUEST PWA                        │
├──────────────────────────────┬──────────────────────────────┤
│       1. PLAN &amp;amp; ROUTE        │      2. ADVENTURE PACK       │
│  - Browser GPS / Leaflet     │  - Real OSRM Foot Geometry   │
│  - Time / Difficulty Options │  - 3-4 Observational Missions│
│  - Outdoor Interest Chips    │  - Safety &amp;amp; Gear Checklist   │
├──────────────────────────────┼──────────────────────────────┤
│       3. FIELD MODE          │     4. ADVENTURE JOURNAL     │
│  - 100% Offline (Workbox)    │  - Grounded Gemma 3 (1B)     │
│  - IndexedDB Persistence     │  - Photo Gallery &amp;amp; Captions  │
│  - Camera Photo Compression  │  - Printable PDF / Markdown  │
└──────────────────────────────┴──────────────────────────────┘
                               │
               Local Inference via Ollama API
                               │
                 ┌─────────────┴─────────────┐
                 │     gemma3:1b (Local)     │
                 │  - Zero Cloud Telemetry   │
                 │  - Zero API Key Required  │
                 └───────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1. Local Open-Source AI (Gemma 3 1B via Ollama)
&lt;/h3&gt;

&lt;p&gt;I chose Google's open-weight &lt;strong&gt;Gemma 3 (1B)&lt;/strong&gt; model deployed locally via &lt;strong&gt;Ollama&lt;/strong&gt;. Gemma 3 1B is astonishingly fast, runs on modest hardware, and follows structured JSON schemas with high fidelity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inference Setup:&lt;/strong&gt; Configured to call &lt;code&gt;http://localhost:11434/api/chat&lt;/code&gt; using strict JSON schemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilience:&lt;/strong&gt; If Ollama is offline or experiencing connectivity issues, FieldQuest never crashes. It immediately switches to intelligent curated observation challenges and a grounded factual journal template.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Grounded Geography &amp;amp; Safety Guardrails
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OSRM Foot Routing Profile:&lt;/strong&gt; To ensure the user stays on authentic pedestrian paths, routes are obtained directly from OpenStreetMap data via the OSRM foot engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anti-Hallucination Prompting:&lt;/strong&gt; Gemma 3 is explicitly instructed never to confirm biological species names unless verified by retrieved data, and the journal synthesis prompt is strictly conditioned on user-recorded facts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Progressive Web App &amp;amp; Offline Storage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Built using &lt;strong&gt;React 19 + TypeScript + Vite&lt;/strong&gt; with &lt;code&gt;vite-plugin-pwa&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The PWA precaches its shell and static assets so Field Mode operates in full airplane mode.&lt;/li&gt;
&lt;li&gt;Local storage uses &lt;strong&gt;IndexedDB&lt;/strong&gt; (&lt;code&gt;fieldquest_db&lt;/code&gt;) to store route points, checklist state, observations, and photo attachments. Photos are downscaled client-side to &amp;lt;=1280px JPEG to keep JSON exports compact.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Open innovation—specifically open-weight foundation models and open geospatial data—fundamentally transformed how this project was conceived and built:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;True Privacy in Intimate Outdoor Spaces:&lt;/strong&gt; When people walk, hike, or reflect in nature, they should not have their precise GPS coordinates, personal thoughts, and candid photographs sent to third-party commercial cloud servers. With open-weight Gemma 3 running locally on the user's computer and an offline PWA on mobile, user data never leaves their control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cost &amp;amp; Censorship-Free Exploration:&lt;/strong&gt; Closed AI APIs charge per token and impose cloud rate limits. Open-weight models empower developers to build offline-first tools that remain free forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenStreetMap Power:&lt;/strong&gt; OpenStreetMap is one of the greatest collaborative human achievements. Pairing open geospatial infrastructure with open-weight AI demonstrates how community-driven data and open AI models reinforce one another.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;This project was built pair-programming with Google DeepMind's Antigravity agentic coding assistant. The agent analyzed the Hacktoberfest prompt, scaffolded the Vite + TypeScript + PWA codebase, implemented the OSRM pedestrian routing module, integrated local Ollama inference with Gemma 3 (1B), set up IndexedDB offline persistence, verified the entire flow in an end-to-end browser subagent session, and ran focused Vitest unit tests.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary Track:&lt;/strong&gt; &lt;em&gt;Touch Grass (Hacktoberfest Week 1)&lt;/em&gt; — AI that gets people off their screens and engaging with the real world.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Innovation:&lt;/strong&gt; Demonstrating the power of local inference with open-weight Gemma 3 and OpenStreetMap data.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My Friend Keeps Forgetting Things Buried in WhatsApp and Voice Notes — So I Built Nudge</title>
      <dc:creator>Mohammed Abid Ali</dc:creator>
      <pubDate>Sun, 04 Oct 2026 19:00:55 +0000</pubDate>
      <link>https://dev.to/mohammedabidali_1453/my-friend-keeps-forgetting-things-buried-in-whatsapp-and-voice-notes-so-i-built-nudge-5249</link>
      <guid>https://dev.to/mohammedabidali_1453/my-friend-keeps-forgetting-things-buried-in-whatsapp-and-voice-notes-so-i-built-nudge-5249</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&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;Nudge&lt;/strong&gt;, a small local-first AI assistant for a friend who often has multiple things to remember but keeps them buried in messy notes and messages.&lt;/p&gt;

&lt;p&gt;Instead of manually organizing those thoughts, they can simply write something naturally, such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Tomorrow I need to finish my DBMS assignment, call Rahul tonight about the project, and pay Ahmed ₹500 on Friday.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nudge uses &lt;strong&gt;Gemma 3&lt;/strong&gt; through &lt;strong&gt;Ollama&lt;/strong&gt; to understand the note and turn it into clear, actionable tasks with deadlines, priorities, and categories.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Finish DBMS assignment&lt;/strong&gt; — Tomorrow — High — College&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Call Rahul about the project&lt;/strong&gt; — Tonight — Medium — Personal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay Ahmed ₹500&lt;/strong&gt; — Friday — High — Finance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to build another complicated productivity app. It is to remove the friction between having a thought and turning it into an action.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Video Demo:&lt;/strong&gt; &lt;a href="https://youtu.be/Gp_h3yUaJh0" rel="noopener noreferrer"&gt;Watch Nudge on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo shows a messy natural-language note being processed locally and transformed into structured, actionable tasks.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/mohammedabidali1956/Nudge-Hacktoberfest-2026-Build-for-a-Friend-Challenge" rel="noopener noreferrer"&gt;mohammedabidali1956/Nudge-Hacktoberfest-2026-Build-for-a-Friend-Challenge&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is intentionally small and focused so that the core AI workflow is easy to understand and reproduce.&lt;/p&gt;

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

&lt;p&gt;Nudge is built around &lt;strong&gt;Gemma 3&lt;/strong&gt;, Google's open-weight model, running locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The core pipeline is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User's Note
     ↓
Nudge (Streamlit)
     ↓
Ollama
     ↓
Gemma 3 (1B)
     ↓
Structured JSON
     ↓
Actionable Tasks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application uses &lt;strong&gt;Python&lt;/strong&gt; and &lt;strong&gt;Streamlit&lt;/strong&gt; for the interface and communicates directly with the locally running Ollama instance.&lt;/p&gt;

&lt;p&gt;Gemma handles the core natural-language understanding: identifying individual actions, interpreting relative deadlines such as “tomorrow” or “Friday,” assigning priorities, and categorizing tasks.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Tonight call Rahul and tomorrow submit the DBMS assignment.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;becomes structured task data rather than a generic AI response.&lt;/p&gt;

&lt;p&gt;I deliberately kept the architecture simple so that the open-weight model is the core of the product rather than an additional chatbot feature.&lt;/p&gt;

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

&lt;p&gt;For Nudge, local open-weight AI is not just a technology choice. It directly affects how the product can be used.&lt;/p&gt;

&lt;p&gt;A friend's notes can contain personal plans, payments, relationships, and other private information. With Nudge's local-first architecture, that information does not need to be sent to a proprietary cloud AI API.&lt;/p&gt;

&lt;p&gt;Instead, the workflow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Friend's Computer
       ↓
     Nudge
       ↓
    Ollama
       ↓
     Gemma
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI processing can happen directly on the user's computer.&lt;/p&gt;

&lt;p&gt;Using an open-weight model also means the AI layer is not permanently tied to a single closed provider. The model can be replaced or upgraded while keeping the core application architecture simple.&lt;/p&gt;

&lt;p&gt;For this project, open AI made it possible to build a private, reproducible assistant that can run on a personal computer without requiring API keys or a proprietary AI service.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;Nudge is built around &lt;strong&gt;Gemma 3&lt;/strong&gt; as its core natural-language understanding engine.&lt;/p&gt;

&lt;p&gt;Gemma performs the task extraction, deadline interpretation, prioritization, and categorization that make Nudge useful.&lt;/p&gt;

&lt;p&gt;I am entering Nudge in the &lt;strong&gt;Best Use of Gemma&lt;/strong&gt; category.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>HacktoberFest 2k26</title>
      <dc:creator>Mohammed Abid Ali</dc:creator>
      <pubDate>Fri, 02 Oct 2026 13:43:52 +0000</pubDate>
      <link>https://dev.to/mohammedabidali_1453/hacktoberfest-2k26-pp6</link>
      <guid>https://dev.to/mohammedabidali_1453/hacktoberfest-2k26-pp6</guid>
      <description></description>
    </item>
  </channel>
</rss>
