<?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: Divyansh Tiwari</title>
    <description>The latest articles on DEV Community by Divyansh Tiwari (@divyansh_tiwari_862b70f9e).</description>
    <link>https://dev.to/divyansh_tiwari_862b70f9e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4153121%2F83dd19a6-ff8f-4a85-870b-4724d83ade3f.gif</url>
      <title>DEV Community: Divyansh Tiwari</title>
      <link>https://dev.to/divyansh_tiwari_862b70f9e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divyansh_tiwari_862b70f9e"/>
    <language>en</language>
    <item>
      <title>GrassRoute: The Zero-Signal Outdoor Companion &amp; Trail Naturalist</title>
      <dc:creator>Divyansh Tiwari</dc:creator>
      <pubDate>Sun, 11 Oct 2026 13:38:36 +0000</pubDate>
      <link>https://dev.to/divyansh_tiwari_862b70f9e/grassroute-the-zero-signal-outdoor-companion-trail-naturalist-fbl</link>
      <guid>https://dev.to/divyansh_tiwari_862b70f9e/grassroute-the-zero-signal-outdoor-companion-trail-naturalist-fbl</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 outdoor mobile apps suffer from a tragic irony: they claim to help you connect with nature, yet they keep your eyes glued to a glowing 6-inch rectangle of glass. You end up staring at turn-by-turn navigation arrows, scrolling through social feed leaderboards, or squinting at push notifications while walking past blazing red sugar maples and listening to chickadees calling in the canopy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://divyansh2102t-dev.github.io/grassroute/" rel="noopener noreferrer"&gt;GrassRoute&lt;/a&gt;&lt;/strong&gt; flips this dynamic entirely. Its foundational design philosophy is simple: &lt;strong&gt;spend 30 seconds on your screen, and the next 60 minutes in the woods.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GrassRoute is an offline-first, open-source AI trail companion and naturalist built around three core pillars:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sensory Micro-Quest Generator:&lt;/strong&gt; Instead of generic GPS tracks, GrassRoute prompts you for your activity (&lt;em&gt;forest hike, fall foliage jog, backyard gardening, birding stroll, or mindful grounding&lt;/em&gt;), your time budget (15 to 60+ minutes), and your companions (&lt;em&gt;solo, dog walk, kids exploration, or run club&lt;/em&gt;). An on-device open-weight model synthesizes a 3-part sensory mission: one distinct foliage or bark observation, one acoustic or olfactory cue to listen/smell for, and one grounding challenge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pocket Mode &amp;amp; Audio Pacer (Screen Minimizer):&lt;/strong&gt; The moment you tap &lt;strong&gt;"Touch Grass"&lt;/strong&gt;, the app enters a dimmed, battery-saving Pocket Sleep Mode. Synthesized Web Audio nature chimes (and optional offline voice cues) sound at milestone intervals—halfway mark, 5 minutes remaining, and completion. You put your phone deep inside your backpack or pocket and &lt;strong&gt;do not look at it while outdoors&lt;/strong&gt;. It calculates your &lt;strong&gt;Grass-to-Screen Ratio&lt;/strong&gt; (e.g. &lt;em&gt;96% Green Time&lt;/em&gt;), incentivizing minimum screen interaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Signal Offline Field Naturalist &amp;amp; Frost Planner:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autumn Foliage Pigment Radar:&lt;/strong&gt; Explains the science of fall colors (anthocyanins trapped by cooling nights vs carotenoids revealed by chlorophyll breakdown), bark textures, and critical safety lookalikes (harmless Staghorn Sumac with upright velvet berries vs hazardous Poison Sumac/Poison Ivy with drooping white berries).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trail Bird Call Identifier:&lt;/strong&gt; Teaches bird identification using phonetic mnemonics (&lt;em&gt;"fee-bee"&lt;/em&gt;, &lt;em&gt;"chick-a-dee-dee"&lt;/em&gt;, &lt;em&gt;"Who cooks for you?"&lt;/em&gt;) without needing mega-byte audio downloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;October Frost Date &amp;amp; Planting Radar:&lt;/strong&gt; Calculates weeks until the first seasonal frost by climate zone and provides a concrete checklist for what to plant &lt;em&gt;this week&lt;/em&gt;—from hardneck garlic cloves and cover crops to spring-flowering bulbs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local AI Naturalist Q&amp;amp;A:&lt;/strong&gt; When you're 5 miles deep into a canyon or wooded ridgeline with zero cellular bars, you can consult an on-device open-weight LLM running in GPU memory with zero network requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GrassRoute is built for hikers, runners, gardeners, dog walkers, and anyone experiencing digital burnout who needs a nudge to step outside and breathe crisp autumn air.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Deployed App:&lt;/strong&gt; &lt;a href="https://divyansh2102t-dev.github.io/grassroute/" rel="noopener noreferrer"&gt;https://divyansh2102t-dev.github.io/grassroute/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render Live Service:&lt;/strong&gt; Ready for 1-click deployment via the included &lt;a href="https://github.com/divyansh2102t-dev/grassroute/blob/main/render.yaml" rel="noopener noreferrer"&gt;render.yaml Blueprint&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Try the Zero-Signal Offline Test:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://divyansh2102t-dev.github.io/grassroute/" rel="noopener noreferrer"&gt;GrassRoute&lt;/a&gt; in Chrome, Edge, or Android Chrome.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Load Local AI&lt;/strong&gt; to load &lt;strong&gt;Qwen 2.5 (1.5B)&lt;/strong&gt; into your browser's WebGPU cache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn on Airplane Mode&lt;/strong&gt; (disconnect Wi-Fi and mobile data).&lt;/li&gt;
&lt;li&gt;Generate an outdoor quest, ask the field naturalist questions, search the foliage catalog, or start Pocket Mode. It runs with zero network packets!&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;The complete source code is open source under the MIT License:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/divyansh2102t-dev/grassroute" rel="noopener noreferrer"&gt;https://github.com/divyansh2102t-dev/grassroute&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grassroute/
├── index.html        # Responsive UI, Pocket Mode overlay, multi-tab layout
├── app.js           # WebLLM engine, quest generation, audio synthesizer, timer
├── fieldguide.js    # Zero-signal botanical, bird call, and frost database
├── style.css        # Sunlight-readable outdoor theme with breathing animations
├── render.yaml      # Render Blueprint specification (Static Site &amp;amp; Node Service)
├── server.js        # Zero-dependency Node.js HTTP server for Render runtime
├── package.json     # Project scripts and metadata
├── CONTRIBUTING.md  # Hacktoberfest contributor guide
└── README.md        # Comprehensive documentation and local run instructions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;GrassRoute was intentionally engineered as an &lt;strong&gt;offline-first hybrid architecture&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. In-Browser Local Inference via WebLLM &amp;amp; WebGPU
&lt;/h3&gt;

&lt;p&gt;Rather than relying on remote cloud APIs that fail in the wild, GrassRoute uses &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;&lt;code&gt;@mlc-ai/web-llm&lt;/code&gt;&lt;/a&gt; to run open-weight models directly in client-side WebGPU memory:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Models Supported:&lt;/strong&gt; &lt;code&gt;Qwen2.5-0.5B-Instruct&lt;/code&gt;, &lt;code&gt;Qwen2.5-1.5B-Instruct&lt;/code&gt;, &lt;code&gt;Llama-3.2-1B-Instruct&lt;/code&gt;, and &lt;code&gt;SmolLM-360M-Instruct&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cloud Latency:&lt;/strong&gt; The model is compiled to WebAssembly (WASM) and runs shader execution on the user's native GPU. Once cached by the browser's CacheStorage API, inference works completely offline with zero server roundtrips.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Deterministic Fallback &amp;amp; Knowledge Base (&lt;code&gt;fieldguide.js&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Real outdoor utility requires instant reliability. If a user is on an older mobile device without WebGPU support, or needs an instant answer in 0 milliseconds, the app includes a deterministic JavaScript knowledge engine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instant multi-field keyword matcher indexing Latin binomials, leaf serration types, pigment chemistry, and safety warnings.&lt;/li&gt;
&lt;li&gt;USDA climate zone frost date estimator calculating exact days until the first hard frost.&lt;/li&gt;
&lt;li&gt;Curated sensory trail missions for hiking, running, gardening, birding, and mindfulness.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Screen-Free Web Audio &amp;amp; Speech Synthesis
&lt;/h3&gt;

&lt;p&gt;To solve the "screen addiction" dilemma, GrassRoute implements a pure Web Audio API synthesizer. Without downloading external audio files, it mathematically generates pure sine-wave harmonic pentatonic chimes (&lt;em&gt;528 Hz, 660 Hz, 792 Hz&lt;/em&gt;) to gently signal milestones while the phone is tucked in a jacket pocket. When enabled, the browser's native &lt;code&gt;SpeechSynthesis&lt;/code&gt; speaks the mission prompts aloud before you step out the door.&lt;/p&gt;

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

&lt;p&gt;Building for the outdoors brings the reality of proprietary cloud AI into sharp focus. Here is why open innovation and open-weight models were essential to make GrassRoute work:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Canyons and Ridge Trails Have No 5G:&lt;/strong&gt;
Closed APIs (OpenAI, Anthropic, Google Cloud) presuppose high-bandwidth, continuous connectivity. But nature doesn't have Wi-Fi. 5 miles into a national forest or valley trail, a closed AI app turns into an unresponsive error screen. Open-weight models (Qwen, Llama, SmolLM) running locally via WebGPU work in deep wilderness, airplane mode, and basement mudrooms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Privacy of Location and Health Habits:&lt;/strong&gt;
Closed fitness and outdoor platforms collect GPS coordinates, trail timestamps, routines, and biometric patterns to build commercial advertising profiles. GrassRoute sends &lt;strong&gt;zero bytes&lt;/strong&gt; to any cloud server. Your field journal, frost zone, and walking habits live exclusively in your local &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Marginal Operating Cost:&lt;/strong&gt;
With open weights, running an outdoor assistant for thousands of hikers costs exactly $0.00 in API inference bills. The computation happens on the device already in the hiker's pocket. Anyone in the open-source community can fork, self-host, and customize the tool without entering a credit card.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Extensibility for Regional Nature:&lt;/strong&gt;
Closed models often suffer from geographical bias. An open-source codebase allows contributors from across the globe to PR regional native plant guides, indigenous botanical names, and local bird mnemonics directly into &lt;code&gt;fieldguide.js&lt;/code&gt; during Hacktoberfest.&lt;/li&gt;
&lt;/ol&gt;

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

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

&lt;p&gt;GrassRoute is built and configured for deployment on &lt;strong&gt;Render&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Includes a complete &lt;strong&gt;&lt;a href="https://github.com/divyansh2102t-dev/grassroute/blob/main/render.yaml" rel="noopener noreferrer"&gt;&lt;code&gt;render.yaml&lt;/code&gt; Blueprint specification&lt;/a&gt;&lt;/strong&gt; defining both a global Static Site (with custom security headers for WebGPU SharedArrayBuffer support) and a Node.js Web Service runtime.&lt;/li&gt;
&lt;li&gt;Includes a containerized &lt;code&gt;server.js&lt;/code&gt; ready to spin up on Render's global application runtime with 1-click blueprint synchronization.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SafePlate</title>
      <dc:creator>Divyansh Tiwari</dc:creator>
      <pubDate>Sun, 04 Oct 2026 18:03:57 +0000</pubDate>
      <link>https://dev.to/divyansh_tiwari_862b70f9e/safeplate-2i1l</link>
      <guid>https://dev.to/divyansh_tiwari_862b70f9e/safeplate-2i1l</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;My friend &lt;strong&gt;Aarav&lt;/strong&gt; is allergic to peanuts, tree nuts and dairy. Every time we eat out or grab a snack, the same thing happens. He flips the packet over, squints at the tiny print, and asks: &lt;em&gt;"Is **lecithin&lt;/em&gt;* a soy thing? Is &lt;strong&gt;khoya&lt;/strong&gt; dairy? Does 'may contain' count?"* Restaurants are worse. "Paneer butter masala" sounds harmless until you remember the gravy is usually thickened with &lt;strong&gt;cashew paste&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;SafePlate&lt;/strong&gt;. You paste an ingredient label, a menu item or a recipe, and it tells you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VERDICT: SAFE / CAUTION / AVOID&lt;/strong&gt; for &lt;em&gt;your&lt;/em&gt; allergy profile&lt;/li&gt;
&lt;li&gt;which ingredients are a problem, including hidden and regional names (&lt;em&gt;kaju&lt;/em&gt;, &lt;em&gt;ghee&lt;/em&gt;, &lt;em&gt;maida&lt;/em&gt;, &lt;em&gt;til&lt;/em&gt;, &lt;em&gt;mawa&lt;/em&gt;…)&lt;/li&gt;
&lt;li&gt;any "may contain" or shared-facility warnings&lt;/li&gt;
&lt;li&gt;practical swaps, or what to ask the waiter&lt;/li&gt;
&lt;li&gt;answers to follow-up questions ("what can I use instead of cream here?")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs &lt;strong&gt;on his phone or laptop&lt;/strong&gt;. There's no account, no API key and no server.&lt;/p&gt;

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

&lt;p&gt;🔗 &lt;strong&gt;Live:&lt;/strong&gt; &lt;a href="https://divyansh2102t-dev.github.io/safeplate/" rel="noopener noreferrer"&gt;https://divyansh2102t-dev.github.io/safeplate/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open it in Chrome or Edge (it needs WebGPU). Click &lt;strong&gt;Load model&lt;/strong&gt; once. After that it works offline.&lt;/p&gt;

&lt;p&gt;Try the &lt;strong&gt;sample&lt;/strong&gt; button. It loads a biscuit label with &lt;em&gt;"milk solids, soya lecithin, may contain traces of cashew and peanut"&lt;/em&gt;. The instant scanner flags those ingredients right away, and the local LLM then explains each one and suggests alternatives.&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/divyansh2102t-dev" rel="noopener noreferrer"&gt;
        divyansh2102t-dev
      &lt;/a&gt; / &lt;a href="https://github.com/divyansh2102t-dev/safeplate" rel="noopener noreferrer"&gt;
        safeplate
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Allergy checker for a friend, powered by an open-weight LLM running 100% in the browser (WebLLM)
    &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;🍽️ SafePlate&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;An allergy buddy that runs entirely in your browser.&lt;/strong&gt; Paste an ingredient label, a restaurant menu item or a recipe, and SafePlate tells you whether it's safe for &lt;em&gt;your&lt;/em&gt; allergies, what the hidden ingredients are, and what to swap.&lt;/p&gt;
&lt;p&gt;Built for my friend Aarav (peanut, tree-nut and dairy allergies) for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01" rel="nofollow"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://divyansh2102t-dev.github.io/safeplate/" rel="nofollow noopener noreferrer"&gt;https://divyansh2102t-dev.github.io/safeplate/&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why it's different&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight LLM, running locally.&lt;/strong&gt; Uses &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt; (MLC) to run Qwen2.5 / Llama 3.2 / Phi-3.5 on your GPU via WebGPU. No API key, no server, no cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your health data stays on your device.&lt;/strong&gt; Allergy profile is saved in &lt;code&gt;localStorage&lt;/code&gt;, label text never leaves the tab.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works offline&lt;/strong&gt; once the model is cached — perfect for basements, flights and dhabas with no signal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two layers of safety.&lt;/strong&gt; A deterministic keyword scanner (with Indian label names like &lt;em&gt;kaju, ghee, maida, paneer, til&lt;/em&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/divyansh2102t-dev/safeplate" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;&lt;/strong&gt; (MLC AI, Apache-2.0) runs open-weight models directly in the browser using WebGPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight models:&lt;/strong&gt; the default is Qwen2.5-1.5B-Instruct. You can also pick Llama 3.2 1B, Qwen2.5 0.5B for older phones, or Phi-3.5-mini for the smartest answers. They're in a dropdown, so changing models takes one line of code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two layers of safety.&lt;/strong&gt; Small models explain things well, but I didn't want to rely on one remembering that &lt;em&gt;ghee is dairy&lt;/em&gt;. So:

&lt;ol&gt;
&lt;li&gt;A &lt;strong&gt;deterministic scanner&lt;/strong&gt; (&lt;code&gt;allergens.js&lt;/code&gt;) uses a synonym dictionary, including Indian label names and Hinglish, to highlight every match instantly. It works without the model.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;LLM&lt;/strong&gt; then gives the verdict, explains it, catches anything the dictionary missed, and suggests swaps. The system prompt tells it to answer &lt;strong&gt;CAUTION, never SAFE&lt;/strong&gt; whenever it's unsure, and it runs at temperature 0.2.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;The allergy profile is saved in &lt;code&gt;localStorage&lt;/code&gt;. Answers stream token by token, and follow-up questions keep the chat history.&lt;/li&gt;
&lt;li&gt;There's no framework and no build step: just &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;app.js&lt;/code&gt;, &lt;code&gt;allergens.js&lt;/code&gt; and &lt;code&gt;style.css&lt;/code&gt;, hosted on GitHub Pages.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;For this project, open weights aren't just a nice extra. The app couldn't work the way it does without them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Health data stays private.&lt;/strong&gt; Someone's allergies are medical information. With a closed API, every label Aarav checked would be sent to someone else's server. Here, nothing leaves the browser tab.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works where he actually needs it.&lt;/strong&gt; Restaurant basements, flights, roadside dhabas with one bar of signal. Once the model is downloaded and cached, SafePlate runs fully offline. A cloud API fails exactly when you're hungry and unsure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's free to run.&lt;/strong&gt; There's no API key to leak, no bill and no rate limit, so I can give it to every friend who has allergies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I control how it behaves.&lt;/strong&gt; I can pick a model size that suits his phone, tune the prompt to be cautious, and later fine-tune a small model on allergen data. No vendor can quietly change or retire the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anyone can improve it.&lt;/strong&gt; The repo is tagged &lt;code&gt;hacktoberfest&lt;/code&gt; and has &lt;code&gt;good first issue&lt;/code&gt;s for adding allergen names in more Indian languages and E-number lookups. Every name someone adds makes it safer for everyone.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;I built this quickly with an AI coding agent helping with the scaffolding, the allergen dictionary and the WebLLM integration.&lt;/p&gt;

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

&lt;p&gt;This is an entry for the main challenge only.&lt;/p&gt;




&lt;p&gt;⚠️ &lt;em&gt;SafePlate is a second pair of eyes, not a doctor. Always read the real label and carry your epinephrine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
