<?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: Mahima</title>
    <description>The latest articles on DEV Community by Mahima (@lohanmahima).</description>
    <link>https://dev.to/lohanmahima</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%2F4090877%2F521bc008-63b5-42b4-8a32-236baf029f21.png</url>
      <title>DEV Community: Mahima</title>
      <link>https://dev.to/lohanmahima</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lohanmahima"/>
    <language>en</language>
    <item>
      <title>Ghost Trace: Local-First Digital Forensics Haunted by Open-Weight AI</title>
      <dc:creator>Mahima</dc:creator>
      <pubDate>Fri, 30 Oct 2026 17:57:48 +0000</pubDate>
      <link>https://dev.to/lohanmahima/ghost-trace-local-first-digital-forensics-haunted-by-open-weight-ai-3k21</link>
      <guid>https://dev.to/lohanmahima/ghost-trace-local-first-digital-forensics-haunted-by-open-weight-ai-3k21</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;p&gt;The Spark: What is the "Ghost in the Machine"?&lt;/p&gt;

&lt;p&gt;When I saw this week's Hacktoberfest theme—Ghost in the Machine, spanning Halloween and Día de los Muertos—I didn't want to just make another toy chatbot with purple CSS and a pumpkin icon. I wanted to build something where the ghost metaphor was real, practical, and rooted in a genuine engineering problem.&lt;/p&gt;

&lt;p&gt;In digital forensics and incident response (DFIR), investigating a compromised server is literally hunting for ghosts. An attacker breaks into a machine, moves around, and disappears, leaving behind only forgotten digital traces: six failed logins on an internal service account, a sudden privilege leap, and a database dump accessed at 2 AM.&lt;/p&gt;

&lt;p&gt;Security teams call these forensic artifacts; in my head, they are the lingering spirits of past system events.&lt;/p&gt;

&lt;p&gt;That led me to build GhostTrace&lt;br&gt;
: a local-first digital forensics workbench with a Día de los Muertos and Halloween atmosphere. It ingests system logs, detects attacks through deterministic rules, correlates "echoes" across past events, and uses a local open-weight model to explain the evidence without leaking data or hallucinating facts.&lt;/p&gt;

&lt;p&gt;Why Open-Source AI Matters for Forensics&lt;/p&gt;

&lt;p&gt;Before talking about features, this is the core reason GhostTrace exists: you cannot send breach logs to cloud LLMs.&lt;/p&gt;

&lt;p&gt;When a server gets breached, log files contain:&lt;/p&gt;

&lt;p&gt;Internal corporate IP addresses and network topologies.&lt;br&gt;
Compromised employee usernames and service account names.&lt;br&gt;
Internal database paths, API endpoints, and configuration secrets.&lt;br&gt;
In many cases, plaintext passwords typed into username fields by mistake.&lt;/p&gt;

&lt;p&gt;Copy-pasting those logs into ChatGPT or a cloud API is a massive compliance violation and an active security risk. If you are investigating a leak, you cannot risk leaking the investigation itself.&lt;/p&gt;

&lt;p&gt;Furthermore, real incident response often happens on an air-gapped machine with the network cable pulled or Wi-Fi disabled to contain an attack.&lt;/p&gt;

&lt;p&gt;By running open-weight models (Llama 3.2 3B and Gemma 3 4B) locally through Ollama:&lt;/p&gt;

&lt;p&gt;Zero Data Exfiltration: The logs stay in memory on 127.0.0.1. Nothing touches the cloud.&lt;br&gt;
Works With No Internet: Incident responders can analyze systems in an isolated SCIF or offline disaster zone.&lt;br&gt;
Zero Token Costs: Ingesting 100 MB (over 150,000 log events) costs exactly $0.00.&lt;br&gt;
Model Swappability: Users aren't locked into one vendor's pricing or availability. If you prefer Google's Gemma or Meta's Llama, you just pick it in the settings drawer.&lt;br&gt;
What GhostTrace Does&lt;/p&gt;

&lt;p&gt;Here is a walkthrough of what I built:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ingestion and Raw File Inspection&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GhostTrace accepts standard .json and .jsonl system logs (tested up to 100 MB and 200,000 records).&lt;/p&gt;

&lt;p&gt;To make it beginner-friendly, I bundled 5 synthetic cases (brute-force bursts, routine noise, ambiguous traces, malformed records, and prompt injection attacks). On the landing page, users can click "View File" to preview line-numbered raw log records or download the .jsonl directly to see the required schema before uploading their own traces.&lt;/p&gt;

&lt;p&gt;GhostTrace Case Cards with Raw File Preview and Download&lt;/p&gt;

&lt;p&gt;Raw File Inspection Modal with line numbers and copy button&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 3D Séance Hall and Graveyard Timeline&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I wanted the interface to honor the theme without sacrificing readability:&lt;/p&gt;

&lt;p&gt;Séance Hall: A 3D WebGL scene rendered with Three.js featuring glowing candlelight, falling cempasúchil (marigold) petals, floating spirit wisps, and an automatic Día de los Muertos ofrenda altar (active around Oct 31 / Nov 1-2).&lt;br&gt;
The Graveyard Timeline: Every log event is plotted as a digital tombstone. You can filter by severity, event type, or echo group, and click any record to inspect the untouched, raw payload in the Evidence Drawer.&lt;/p&gt;

&lt;p&gt;GhostTrace 3D Seance Hall WebGL Scene&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Procedural 3D Audio and The Speed Ghost&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of loading bulky audio files, I wrote a procedural audio synthesizer from scratch using the Web Audio API:&lt;/p&gt;

&lt;p&gt;3D Binaural Doppler Panning: When whispers trigger, the sound sweeps from your left ear to your right ear in exact sync with a flying ghost dashing across the screen.&lt;br&gt;
The "Haaaawwwww..." Whisper: Uses parallel vocal formant filters (850Hz open throat gliding to 470Hz rounded lips) followed by an eerie, tremoring banshee cry.&lt;br&gt;
Respecting User Preferences: I added a toggle in Settings (Visuals &amp;amp; Apparitions) so anyone who finds the flying ghost distracting can turn it off with one click, while keeping the audio or running in silent mode.&lt;/p&gt;

&lt;p&gt;Visuals and Apparitions toggle in Settings&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deterministic Findings with Citation-Checked AI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of my pet peeves with "AI for security" tools is hallucination. An AI that invents fake IP addresses or accuses innocent accounts is worse than useless.&lt;/p&gt;

&lt;p&gt;GhostTrace solves this with a two-layer architecture:&lt;/p&gt;

&lt;p&gt;Layer 1 (The Law): 4 deterministic rules (GT-001 Brute Force, GT-002 Privileged Access, GT-003 Sensitive File Read, GT-004 Off-Hours Spikes) run mathematically against the data.&lt;br&gt;
Layer 2 (The Ghost Investigator): The local open-weight model (llama3.2:3b or gemma3:4b) writes a dossier explaining why the attack happened.&lt;br&gt;
The Citation Guardrail: Every explanation is verified against the case data. If the model hallucinates an event ID (EV-xxxxxx), a fake IP, or an unknown timestamp, GhostTrace automatically flags and strips it. If the evidence is insufficient, a hard sufficiency gate prevents the model from fabricating conclusions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GhostAI Assistant ("Echo")&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the bottom-right corner sits Echo, a floating ghost avatar with a speech bubble saying "Come close to me...". Clicking Echo opens an in-app chatbot that explains how GhostTrace works, breaks down detection rules, guides you on what log formats to upload, or summons audio cues. It runs on local Ollama with an instant fallback knowledge base if the model is asleep.&lt;/p&gt;

&lt;p&gt;Preview unavailable&lt;/p&gt;

&lt;p&gt;Hard Problems and Real Trade-offs&lt;/p&gt;

&lt;p&gt;A few things that were surprisingly tricky during development:&lt;/p&gt;

&lt;p&gt;Procedural Whisper vs. Metallic Ringing: Initially, filtering white noise with high resonance (Q &amp;gt; 4) made the whisper sound like a high-pitched metallic whistle. I had to rebuild the vocal tract using wide bandpass formants (Q between 1.6 and 2.4) and a 5.2Hz tremolo LFO to get an organic, airy "Haaaawwwww" breath.&lt;br&gt;
Handling 100 MB Uploads In-Memory: I didn't want GhostTrace writing temporary files to disk because forensic evidence shouldn't leave residual traces on the host. Streaming chunks into a bytearray in FastAPI and parsing line-by-line in memory keeps it fast while maintaining a zero-footprint guarantee.&lt;br&gt;
Exorcism (Instant Purge): Clicking "Exorcise Case" triggers a deep memory wipe that clears all parsed events, findings, and timeline rows from RAM, returning the app to an unburdened clean state.&lt;br&gt;
Development Journey and Agent Session&lt;/p&gt;

&lt;p&gt;I built and iterated GhostTrace with pair-programming assistance from an agent. You can inspect the actual session transcript, thoughts, and technical iterations below:&lt;/p&gt;


&lt;div class="ltag-agent-session"&gt;
  &lt;div class="agent-session-header"&gt;
    
    &lt;span class="agent-session-tool-icon-badge" title="Codex"&gt;
&lt;/span&gt;
    &lt;span class="agent-session-title"&gt;Building GhostTrace: Local-First DFIR &amp;amp; Haunted Open-Source AI Workbench&lt;/span&gt;
  &lt;/div&gt;

  &lt;div class="agent-session-scroll"&gt;

      &lt;div class="agent-session-message agent-session-user"&gt;
        &lt;div class="agent-session-role-badge agent-session-role-user"&gt;
          You
        &lt;/div&gt;
        &lt;div class="agent-session-content"&gt;
                &lt;div class="agent-session-text"&gt;
                  &lt;p&gt;Let's build and refine GhostTrace for Hacktoberfest Week 4: Ghost in the Machine, featuring local open-source AI (Ollama with llama3.2:3b and gemma3:4b), procedural 3D spatial horror audio, and local digital forensics.&lt;/p&gt;

                &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;

      &lt;div class="agent-session-message agent-session-assistant"&gt;
        &lt;div class="agent-session-role-badge agent-session-role-assistant"&gt;
          Agent
        &lt;/div&gt;
        &lt;div class="agent-session-content"&gt;
                &lt;div class="agent-session-text"&gt;
                  &lt;p&gt;Implemented procedural Doppler horror audio with vocal formant whisper and banshee screams in Web Audio API, built the local GhostAI chatbot assistant with Ollama llama3.2:3b, expanded upload limit to 100MB, added per-case raw file inspection/download modals, and added a visual settings toggle for the flying ghost apparition. Tested locally on RTX 3050 GPU with 60 FPS locked.&lt;/p&gt;

                &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="agent-session-footer"&gt;
    &lt;span class="agent-session-meta"&gt;
        2 of 2 messages
    &lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;How to Run It Locally&lt;/p&gt;

&lt;p&gt;GhostTrace is completely open source under the MIT license.&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Clone and install backend
&lt;/h1&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/lohanmahima/ghosttrace.git" rel="noopener noreferrer"&gt;https://github.com/lohanmahima/ghosttrace.git&lt;/a&gt;&lt;br&gt;
cd ghosttrace&lt;br&gt;
pip install -r backend/requirements.txt&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Build frontend
&lt;/h1&gt;

&lt;p&gt;cd frontend &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; npm run build &amp;amp;&amp;amp; cd ..&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Pull an open-weight model in Ollama
&lt;/h1&gt;

&lt;p&gt;ollama pull llama3.2:3b&lt;/p&gt;

&lt;h1&gt;
  
  
  or: ollama pull gemma3:4b
&lt;/h1&gt;

&lt;h1&gt;
  
  
  4. Start GhostTrace
&lt;/h1&gt;

&lt;p&gt;python backend/api.py&lt;/p&gt;

&lt;h1&gt;
  
  
  Open &lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Happy Halloween &amp;amp; Feliz Día de los Muertos! May your systems stay safe and your forgotten traces speak clearly. 🕯️👻&lt;br&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%2F080gvofxhdi1p9gj8ohu.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%2F080gvofxhdi1p9gj8ohu.png" alt=" " width="800" height="496"&gt;&lt;/a&gt;&lt;br&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%2Fpx1e6qgj60487kvsttgz.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%2Fpx1e6qgj60487kvsttgz.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;br&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%2Fwjuiv8lidzn9f03eo2pu.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%2Fwjuiv8lidzn9f03eo2pu.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;br&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%2F7l1x4plwcowvpvdq8ngr.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%2F7l1x4plwcowvpvdq8ngr.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>SOWCAST — Know what to sow, right when to sow it</title>
      <dc:creator>Mahima</dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:57:09 +0000</pubDate>
      <link>https://dev.to/lohanmahima/sowcast-know-what-to-sow-right-when-to-sow-it-37nn</link>
      <guid>https://dev.to/lohanmahima/sowcast-know-what-to-sow-right-when-to-sow-it-37nn</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;Most gardening guides give you advice like "direct sow 2 weeks after the last spring frost" or "start seeds indoors 6 weeks before final thaw". But for everyday people, beginners, and urban balcony growers, this immediately brings friction: When actually IS the last frost in my neighborhood?&lt;/p&gt;

&lt;p&gt;That confusion keeps people glued to screens reading conflicting blog posts and confusing agricultural charts instead of stepping outside into the dirt.&lt;/p&gt;

&lt;p&gt;I built SOWCAST to bridge that gap and get people off their screens and into the real world with soil on their hands.&lt;/p&gt;

&lt;p&gt;SOWCAST is an offline-first, botanical smart garden planner that tells you exactly what to plant THIS WEEK, based on real 20-year historical climate normals for your exact coordinates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Capabilities:
&lt;/h2&gt;

&lt;p&gt;What SOWCAST Can Do:&lt;br&gt;
"This Week" Dashboard: Tells you exactly what to sow right now, what to start indoors, and what to wait on — with clear reasons based on your local soil temperatures.&lt;br&gt;
Frost Countdown &amp;amp; Alerts: Shows a live countdown to your last frost, plus a 48-hour warning before sudden cold snaps so you can protect your young plants.&lt;br&gt;
Works Anywhere on Earth: Automatically adjusts for cold climates with frost dates, or warm/tropical areas with monsoon and dry seasons.&lt;br&gt;
Interactive Garden Bed Planner: Drag and drop plants into a square-foot grid. It warns you about bad plant neighbors and highlights friendly plants that help each other grow.&lt;br&gt;
64+ Curated Plant Guides: Step-by-step instructions for popular vegetables, herbs, and flowers — including spacing, sunlight, watering, and harvest times.&lt;br&gt;
100% Offline &amp;amp; Private: Saves everything directly on your device. Works without internet, needs no login or backend, and installs right onto your phone like a native app.&lt;/p&gt;

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

&lt;p&gt;Live Deployed App: &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://sowcast.vercel.app" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;sowcast.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
 Try Demo Garden: You can launch the app and click "Try Demo Garden" on the landing page or dashboard to test it with pre-populated beds and local weather intelligence instantly!&lt;br&gt;
Code

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

&lt;p&gt;The complete source code is open-source on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/lohanmahima/SOW_CAST" rel="noopener noreferrer"&gt;https://github.com/lohanmahima/SOW_CAST&lt;/a&gt;&lt;/strong&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%2Fa8g3ykk3m366356dt4f1.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%2Fa8g3ykk3m366356dt4f1.png" alt="SOWCAST Architecture" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;SOWCAST was crafted with a modern, zero-cost, open-source stack designed for 60fps responsiveness and zero maintenance overhead:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Framework &amp;amp; Language:&lt;/em&gt; Next.js 14 (App Router) with strict TypeScript, delivering statically optimized pages and seamless client-side hydration.&lt;br&gt;
Design &amp;amp; Micro-interactions: Tailwind CSS with custom editorial botanical typography (Playfair Display + Plus Jakarta Sans), warm cream paper palettes (#F6F1E7), deep moss greens (#2F4A3A), and Framer Motion spring physics for sprout animations, confetti celebrations, and bed drag-and-drop interactions.&lt;br&gt;
&lt;em&gt;The Frost Engine:&lt;/em&gt; Connects to the free, keyless Open-Meteo APIs (Geocoding API, 7-Day Weather Forecast, and the 20-Year Historical Weather Archive). It analyzes decades of daily minimum temperatures to calculate the exact 50% probability freeze-thaw boundary.&lt;br&gt;
Client-Side Storage Engine: Powered by Dexie.js (IndexedDB) with relational reactive live queries (useLiveQuery). All user beds, custom plantings, journal photos, growth milestones, and care checklists persist locally on device.&lt;br&gt;
_Autonomous AI Agent Harness: _Built in deep collaboration with an autonomous agentic pair programming harness (Google Antigravity). The agent assisted with mathematical frost curve modeling, synthesizing the companion planting conflict matrix for 64 botanical species, and architecting the square-foot grid coordinate system.&lt;/p&gt;

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

&lt;p&gt;Food growing and climate resilience shouldn't be locked behind proprietary paywalls, opaque subscriptions, or corporate garden apps that sell your data.&lt;/p&gt;

&lt;p&gt;_Open innovation made SOWCAST possible in two fundamental ways:&lt;br&gt;
_&lt;br&gt;
Open Meteorological Science: The Open-Meteo project provides open-access historical weather data and global forecasts without API keys or rate-limit paywalls. Closed APIs typically charge thousands of dollars for decades of archived minimum temperature readings, pricing out independent developers and hobbyist gardeners.&lt;br&gt;
Browser-Native Standards: Using open web standards—IndexedDB for zero-cloud client storage, Web Push / Notification APIs, Service Workers for PWA offline capabilities, and SVG vector graphics—SOWCAST runs entirely on the user's hardware with zero operational infrastructure costs.&lt;/p&gt;

&lt;p&gt;Open innovation proves that individual developers can build production-quality tools that empower people to grow their own organic food and reconnect with nature.&lt;/p&gt;

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

&lt;p&gt;This project was built from conception to production using the Antigravity agentic coding environment. The agent executed end-to-end full-stack workflows:&lt;/p&gt;

&lt;p&gt;Initialized the Next.js 14 App Router architecture and Dexie database schema.&lt;br&gt;
Researched companion planting matrices and built the spatial conflict engine.&lt;br&gt;
Wrote the Open-Meteo statistical freeze calculation algorithms.&lt;br&gt;
Iteratively tested production builds (npm run build), eliminated all TypeScript errors, and packaged PWA service worker manifests.&lt;/p&gt;

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

&lt;p&gt;Best Overall Project&lt;br&gt;
Getting People Out into the Real World (Bridging technology to dirt, soil, and organic food cultivation)&lt;br&gt;
Best Use of Open-Source AI / Open Innovation Tools&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>webdev</category>
      <category>garden</category>
    </item>
    <item>
      <title>I built a strict local AI for my friend so he could actually learn to code</title>
      <dc:creator>Mahima</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:53:46 +0000</pubDate>
      <link>https://dev.to/lohanmahima/i-built-a-strict-local-ai-for-my-friend-so-he-could-actually-learn-to-code-22gk</link>
      <guid>https://dev.to/lohanmahima/i-built-a-strict-local-ai-for-my-friend-so-he-could-actually-learn-to-code-22gk</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;
  
  
  &lt;strong&gt;What I Built&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I built RootCause for my friend, Ojju. Ojju is learning how to code and kept getting stuck on logic problems. Every time he asked AI tools for help, they would just hand him the entire correct code. It solved the problem, but it ruined his learning process because it didn't teach him how to think.&lt;/p&gt;

&lt;p&gt;RootCause is an AI learning companion that strictly refuses to give you the answer. Instead, you paste your broken code and explain your thought process. It diagnoses exactly why you are stuck (e.g., a logic flaw, a missing concept, or a missed edge case) and guides you back to the right path with progressive Socratic hints. It also tracks your weak spots and generates micro-exercises in a "Logic Gym" so you can practice your mistakes.&lt;/p&gt;

&lt;p&gt;Code&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/lohanmahima" rel="noopener noreferrer"&gt;
        lohanmahima
      &lt;/a&gt; / &lt;a href="https://github.com/lohanmahima/RootCause" rel="noopener noreferrer"&gt;
        RootCause
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI learning companion that diagnoses WHY you're stuck on coding problems instead of handing you answers. Socratic hints, targeted micro-exercises, and learning memory. Runs locally with Ollama + Gemma.
    &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;RootCause&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;RootCause is a coding companion that diagnoses why you are stuck instead of giving you the answer.&lt;/p&gt;
&lt;p&gt;I built this for a friend, Ojju, who was learning to code but kept getting stuck on logic errors. When he used standard tools, they handed him the corrected code immediately, which solved the problem but didn't help him learn how to fix it himself next time. RootCause forces you to explain your approach first, reads your broken code, and points out the specific conceptual or logic gap you are missing.&lt;/p&gt;
&lt;p&gt;[TODO: one real thing Ojju said after trying it]&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Live Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;You can access the live version of this application here
?? &lt;strong&gt;&lt;a href="https://cold-guests-wonder.loca.lt" rel="nofollow noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;(Note: Initial startup may show a security warning. Click "Continue" to proceed. This URL requires the host laptop to be online).&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Screenshots&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/lohanmahima/RootCause/docs/screenshots/home.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Flohanmahima%2FRootCause%2FHEAD%2Fdocs%2Fscreenshots%2Fhome.png" alt="Home"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/lohanmahima/RootCause/docs/screenshots/solve.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Flohanmahima%2FRootCause%2FHEAD%2Fdocs%2Fscreenshots%2Fsolve.png" alt="Solve"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it does&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Solve flow:&lt;/strong&gt; You explain your approach, paste your broken code, and provide…&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/lohanmahima/RootCause" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;RootCause is built entirely around local inference using open-weight models.&lt;/p&gt;

&lt;p&gt;Frontend &amp;amp; App Logic: Python with Streamlit. I built a custom sandboxed Python environment to safely evaluate the user's Logic Gym code using subprocess and ast.&lt;br&gt;
AI Engine: Google's Gemma 3 (4B) model, running locally via Ollama.&lt;br&gt;
Data Persistence: SQLite for tracking topics, XP, and daily streaks locally.&lt;/p&gt;

&lt;p&gt;The app uses Gemma 3 through Ollama's Python client to act as a strict tutor. I designed specific system prompts to force the model to output JSON judgments ({"met": false, "feedback": "...", "thinking_trick": "..."}) instead of free text. If the local Ollama instance crashes or runs out of memory, I built a silent fallback mechanism that automatically switches the Logic Gym to a verified offline bank of hand-written exercises so the user's workflow is never interrupted.&lt;/p&gt;

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

&lt;p&gt;Open innovation made RootCause possible because a learning tool for students needs to be free and private. If I built this on a closed API, Ojju would eventually have to pay per prompt, or I would have to pay a server bill to keep it running for him. By using an open model like Gemma 3 running locally via Ollama, it costs absolutely nothing. Ojju can use it offline on an airplane, and his messy, broken code never leaves his laptop.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Open Innovation&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>From AI/ML Student to AI Agent Builder</title>
      <dc:creator>Mahima</dc:creator>
      <pubDate>Sun, 23 Aug 2026 15:02:45 +0000</pubDate>
      <link>https://dev.to/lohanmahima/from-aiml-student-to-ai-agent-builder-o71</link>
      <guid>https://dev.to/lohanmahima/from-aiml-student-to-ai-agent-builder-o71</guid>
      <description>&lt;p&gt;I’m a B.Tech CSE (AI &amp;amp; ML) student focused on building practical software and AI-driven applications. Interested in Artificial Intelligence, cloud computing, and emerging technologies, with a strong focus on continuous learning and hands-on development. Currently exploring different technologies and development approaches to strengthen my technical skills and build scalable, real-world solutions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/lohanmahima/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/lohanmahima" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
