<?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: Naushad Alam</title>
    <description>The latest articles on DEV Community by Naushad Alam (@nash_29).</description>
    <link>https://dev.to/nash_29</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%2F4153063%2Ffecfc6ed-3bb0-4621-b100-33a56b5904b2.png</url>
      <title>DEV Community: Naushad Alam</title>
      <link>https://dev.to/nash_29</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nash_29"/>
    <language>en</language>
    <item>
      <title>NightPrep: the prep sheet a taco truck would pay for</title>
      <dc:creator>Naushad Alam</dc:creator>
      <pubDate>Sun, 18 Oct 2026 12:44:22 +0000</pubDate>
      <link>https://dev.to/nash_29/nightprep-the-prep-sheet-a-taco-truck-would-pay-for-1bfm</link>
      <guid>https://dev.to/nash_29/nightprep-the-prep-sheet-a-taco-truck-would-pay-for-1bfm</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;NightPrep is a nightly prep sheet for an independent food truck. The owner types the stop, the temperature, whether rain is coming, and a note ("soccer lets out at 8"). The app returns how many of each item to cook, the closest past night, and a sidewalk sign.&lt;/p&gt;

&lt;p&gt;A truck owner would pay for this. Over-prepping carnitas is trash. Under-prepping al pastor is a line of people who leave. The number has to come from their own nights, not a chatbot guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it is for
&lt;/h2&gt;

&lt;p&gt;One truck, one neighborhood, one service window. The sample history is 48 nights of a taco truck in East Cesar Chavez. Dry nights prep about 64 al pastor. Rain nights drop that to 44.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;A Mastra workflow, &lt;code&gt;night-prep&lt;/code&gt;, runs the same steps every time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Forecast units from the sales table.&lt;/li&gt;
&lt;li&gt;Find a similar past night.&lt;/li&gt;
&lt;li&gt;Look up events near the stop.&lt;/li&gt;
&lt;li&gt;Write the sign and the story caption.&lt;/li&gt;
&lt;li&gt;Save the run.&lt;/li&gt;
&lt;li&gt;Hand the save to a Temporal workflow so a blip retries.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;TabPFN-3.5 is the forecast when &lt;code&gt;PRIOR_API_KEY&lt;/code&gt; is set. Without it, the app uses the mean of matching history and labels the chip &lt;code&gt;history-mean&lt;/code&gt;. It does not pretend the mean is TabPFN.&lt;/p&gt;

&lt;p&gt;Gemma writes the sign. Ollama is tried first, so the note can stay on the laptop. Google AI Studio (&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;) is the fallback. The request asks for JSON with &lt;code&gt;sign&lt;/code&gt; and &lt;code&gt;story&lt;/code&gt;. If that parse fails, the sheet keeps the template and the chip says &lt;code&gt;template&lt;/code&gt;, not &lt;code&gt;gemma-google&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Similar nights go to Tiger Data with pgvector plus a keyword filter. SerpApi supplies nearby events. MongoDB stores the run. ElevenLabs speaks the cook brief when the key is valid. Sentry wraps each step in a span.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open innovation matters
&lt;/h2&gt;

&lt;p&gt;The useful part of this business is the truck's own sales and the owner's note about who is nearby. A closed chat API would bill them every night and hold the recipe margins. Gemma is an open weight, so the copy step can run on the laptop and can be swapped without rewriting the workflow. TabPFN fits the small sales table directly. A general model would invent a plausible number. The table already knows.&lt;/p&gt;

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

&lt;p&gt;Live: [nightprep-jxms.onrender.com]&lt;br&gt;
&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://nightprep-jxms.onrender.com" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;nightprep-jxms.onrender.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&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%2Few64pff8roeur5bfxwlv.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%2Few64pff8roeur5bfxwlv.png" alt="nightprep" width="800" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo: [github.com/nashdev97/nightprep]&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/nashdev97" rel="noopener noreferrer"&gt;
        nashdev97
      &lt;/a&gt; / &lt;a href="https://github.com/nashdev97/nightprep" rel="noopener noreferrer"&gt;
        nightprep
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Nightly prep sheet for an independent food truck. Gemma writes the sign. TabPFN forecasts the cook counts.
    &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;NightPrep&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Prep sheet for an independent food truck. The owner enters tonight's stop. The app forecasts how many of each item to cook, finds a similar past night, and writes the sidewalk sign.&lt;/p&gt;
&lt;p&gt;Open-weight Gemma writes the copy, so recipe notes and margins do not have to go through a closed chat model. TabPFN-3.5 forecasts units from the truck's own sales table. A general chatbot guesses. This fits the history.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Flow&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Forecast units (TabPFN-3.5, or a history mean when no key is set).&lt;/li&gt;
&lt;li&gt;Hybrid search for a similar night (Tiger Data pgvector, or a local seed).&lt;/li&gt;
&lt;li&gt;Live event search (SerpApi).&lt;/li&gt;
&lt;li&gt;Sign and story (Gemma via Ollama, or Gemma on Google AI Studio).&lt;/li&gt;
&lt;li&gt;Save the run (MongoDB Atlas).&lt;/li&gt;
&lt;li&gt;Durable retry of the save and index (Temporal).&lt;/li&gt;
&lt;li&gt;Spoken cook brief (ElevenLabs).&lt;/li&gt;
&lt;li&gt;Spans on each step (Sentry).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mastra runs that sequence as the &lt;code&gt;night-prep&lt;/code&gt; workflow. A Mastra agent with the same tools is…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/nashdev97/nightprep" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;A sheet on the live host (Austin, East Cesar Chavez, 78F, soccer note) returned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;forecast: &lt;code&gt;tabpfn-3.5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;similar: &lt;code&gt;tiger-pgvector&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;events: &lt;code&gt;serpapi&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;copy: &lt;code&gt;gemma-google&lt;/code&gt;, sign: "East Cesar Chavez food truck fun in 78 degree weather!"&lt;/li&gt;
&lt;li&gt;schedule: &lt;code&gt;temporal-offline/tiger&lt;/code&gt; because the Temporal worker runs next to local Docker, not on the free web service&lt;/li&gt;
&lt;li&gt;memory: &lt;code&gt;mongodb&lt;/code&gt; on the laptop. The public host was refused by Atlas (&lt;code&gt;tlsv1 alert internal error&lt;/code&gt;), so that sheet says &lt;code&gt;skipped&lt;/code&gt; until the cluster allows Render's network&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Voice asks for a valid &lt;code&gt;ELEVENLABS_API_KEY&lt;/code&gt; instead of failing silently. The key on this machine is still rejected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Render&lt;/li&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;li&gt;Best Use of TabPFN&lt;/li&gt;
&lt;li&gt;Best Use of Mastra&lt;/li&gt;
&lt;li&gt;Best Use of MongoDB Atlas&lt;/li&gt;
&lt;li&gt;Best Use of Tiger Data&lt;/li&gt;
&lt;li&gt;Best Use of Temporal&lt;/li&gt;
&lt;li&gt;Best Use of ElevenLabs&lt;/li&gt;
&lt;li&gt;Best Use of Sentry Agent Tracing&lt;/li&gt;
&lt;li&gt;Best Use of SerpApi&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>tabpfn</category>
    </item>
    <item>
      <title>SnapNature: Identify Nature with Open-Source AI — Touch Grass Challenge</title>
      <dc:creator>Naushad Alam</dc:creator>
      <pubDate>Sun, 11 Oct 2026 19:44:09 +0000</pubDate>
      <link>https://dev.to/nash_29/snapnature-identify-nature-with-open-source-ai-touch-grass-challenge-4j03</link>
      <guid>https://dev.to/nash_29/snapnature-identify-nature-with-open-source-ai-touch-grass-challenge-4j03</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;For &lt;strong&gt;Hacktoberfest Week 1 — "Touch Grass"&lt;/strong&gt; — I built &lt;strong&gt;SnapNature&lt;/strong&gt;, a mobile-first Progressive Web App that gets people out of their screens and into nature.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhj5b65u1auqtibrjpce7.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%2Fhj5b65u1auqtibrjpce7.png" alt="snapnature" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/nashdev97" rel="noopener noreferrer"&gt;
        nashdev97
      &lt;/a&gt; / &lt;a href="https://github.com/nashdev97/snapnature" rel="noopener noreferrer"&gt;
        snapnature
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SnapNature&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A minimal web application for nature image recognition using deep learning.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;SnapNature uses a pre-trained ResNet50 model (ImageNet) to classify images. Upload a photo of plants, animals, or natural objects, and get instant predictions.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;🖼️ Web-based image upload interface&lt;/li&gt;
&lt;li&gt;🔍 Top-5 predictions with confidence scores&lt;/li&gt;
&lt;li&gt;🌐 REST API for programmatic access&lt;/li&gt;
&lt;li&gt;🐳 Docker support&lt;/li&gt;
&lt;li&gt;⚡ Fast inference with PyTorch&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick Start&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Option 1: Local Setup&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Create virtual environment&lt;/span&gt;
python -m venv venv
venv&lt;span class="pl-cce"&gt;\S&lt;/span&gt;cripts&lt;span class="pl-cce"&gt;\a&lt;/span&gt;ctivate  &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Windows&lt;/span&gt;
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; source venv/bin/activate  # Linux/Mac&lt;/span&gt;

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Install dependencies&lt;/span&gt;
pip install -r requirements.txt

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Run the app&lt;/span&gt;
uvicorn main:app --reload --port 8000&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Visit &lt;a href="http://127.0.0.1:8000" rel="nofollow noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt; to use the web interface.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Option 2: Docker&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;docker build -t snapnature &lt;span class="pl-c1"&gt;.&lt;/span&gt;
docker run -p 8000:8000 snapnature&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;API Usage&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Upload Image&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;curl -X POST &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;http://127.0.0.1:8000/predict&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt; \
  -F &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;file=&lt;a class="mentioned-user" href="https://dev.to/path"&gt;@path&lt;/a&gt;/to/image.jpg&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Predict from URL&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;curl &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;http://127.0.0.1:8000/predict_url?url=https://example.com/image.jpg&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Health Check&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;curl &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/nashdev97/snapnature" 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;Take a photo&lt;/strong&gt; of any plant, animal, or nature scene&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Identify it&lt;/strong&gt; using an open-source HuggingFace Vision Transformer (ViT) model — &lt;code&gt;google/vit-base-patch16-224&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;🌱 &lt;strong&gt;See results&lt;/strong&gt; with confidence scores and fun education facts&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Save to journal&lt;/strong&gt; — offline observations stored in your browser&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Works offline&lt;/strong&gt; via Service Worker — go to a trail, no signal needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-source AI at core&lt;/strong&gt; — Uses open-weight HuggingFace models, not a locked vendor API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works on any device&lt;/strong&gt; — PWA installs to home screen, responsive design&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-first&lt;/strong&gt; — Photos saved locally, nothing sent to cloud databases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swap the model&lt;/strong&gt; — Replace with fine-tuned regional biodiversity models easily&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Challenge: "Touch Grass"
&lt;/h3&gt;

&lt;p&gt;The theme is simple: get outside. SnapNature encourages that directly — open the app, go find something interesting, take a photo. The app then teaches you about it. It's exploration + education combined.&lt;/p&gt;

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

&lt;p&gt;SnapNature demonstrates why open weight models matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No vendor lock-in&lt;/strong&gt; — The ViT model is open; swap it anytime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runs without expensive APIs&lt;/strong&gt; — Works with free HuggingFace inference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fine-tuning ready&lt;/strong&gt; — Train on local bird/plant datasets for your region&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data stays yours&lt;/strong&gt; — All observations in localStorage; your data, your control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline by design&lt;/strong&gt; — Service worker caches assets; works without internet after first visit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Closed APIs don't count as core. Open innovation does.&lt;/p&gt;

&lt;h3&gt;
  
  
  System Design
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Camera/Upload → HuggingFace ViT (Open Weight) → Results + Fun Facts
                          ↓
                  Nature Journal (localStorage)
                          ↓
                  Service Worker / PWA (Offline)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Project Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;snapnature/
├── index.html     # Mobile-first PWA UI
├── js/app.js      # Camera, AI integration, journal
├── css/style.css  # Responsive design
├── sw.js          # Offline service worker
├── manifest.json  # PWA install config
└── main.py        # FastAPI backend (optional Python API mode)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla HTML/CSS/JS (no framework needed for speed)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; HuggingFace Inference API with &lt;code&gt;google/vit-base-patch16-224&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; browser &lt;code&gt;localStorage&lt;/code&gt; for offline journal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWA:&lt;/strong&gt; Service worker + Web App Manifest&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend (optional):&lt;/strong&gt; FastAPI + PyTorch ResNet50&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Where to Try
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Live:&lt;/strong&gt; &lt;a href="https://github.com/nashdev97/snapnature" rel="noopener noreferrer"&gt;https://github.com/nashdev97/snapnature&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clone and run locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/nashdev97/snapnature.git
&lt;span class="nb"&gt;cd &lt;/span&gt;snapnature
python &lt;span class="nt"&gt;-m&lt;/span&gt; http.server 8080  &lt;span class="c"&gt;# Open http://localhost:8080&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Agent session - Claude and Omniroute.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Open-Source AI / Open Weight Models&lt;/li&gt;
&lt;li&gt;Best Mobile / PWA Implementation&lt;/li&gt;
&lt;li&gt;Best "Touch Grass" Theme Execution&lt;/li&gt;
&lt;li&gt;Best Offline / On-Device Innovation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Built with open-source tools for Hacktoberfest 2026. Let's get outside. 🌿&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>DawaaiDost: a 4B open model that reads doctor shorthand so my grandparents never take the wrong pill</title>
      <dc:creator>Naushad Alam</dc:creator>
      <pubDate>Sat, 03 Oct 2026 14:24:25 +0000</pubDate>
      <link>https://dev.to/nash_29/dawaaidost-a-4b-open-model-that-reads-doctor-shorthand-so-my-grandparents-never-take-the-wrong-pill-4ddh</link>
      <guid>https://dev.to/nash_29/dawaaidost-a-4b-open-model-that-reads-doctor-shorthand-so-my-grandparents-never-take-the-wrong-pill-4ddh</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;💊 DawaaiDost (दवाई दोस्त)&lt;/p&gt;

&lt;p&gt;Every week, my 74-year-old grandmother holds up a prescription slip or a medicine blister foil with the exact same confused look:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Beta, yeh Dolo khane ke baad leni thi ya khali pet? Aur yeh BP wali goli subah ki hai ya raat ki?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you have ever seen an Indian prescription, you know why: doctors write in cryptic Latin shorthand like OD, BD, AC, PC, HS, and SOS. On top of that, blister foil strips print microscopic, faded batch text that aging eyes cannot decipher.&lt;/p&gt;

&lt;p&gt;Commercial healthcare apps are bloated, spam notifications, and harvest private health logs for ad networks. And when family members forward a WhatsApp voice note like &lt;strong&gt;"Doctor ne bola Dadi ko gas ki goli nashte se 30 min pehle deni hai"&lt;/strong&gt;, standard apps have no idea what to do.&lt;br&gt;
Generic commercial healthcare apps sell user health data to ad networks, demand invasive permissions, and fail on conversational Hinglish notes like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Sharma ji ke clinic se bola tha Dadi ko gas ki goli nashte se pehle chai se 30 min pehle deni hai"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;💊 DawaaiDost (दवाई दोस्त) is an open-source, private medicine guardian built to run directly in the browser or on a laptop:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reads Shorthand &amp;amp; Voice Notes: Paste doctor shorthand, blister pack text, or conversational Hinglish voice notes.&lt;/li&gt;
&lt;li&gt;Open-Weight 4B Model (Tinker): A fine-tuned open model converts messy prescription text into a standardized medication card with exact dosage, timing, and meal relation.&lt;/li&gt;
&lt;li&gt;Adaptive Memory (Backboard.io): Learns and remembers corrections. Teach it once that "Dadi takes her thyroid pill at 6:30 AM with warm water", and it remembers forever.&lt;/li&gt;
&lt;li&gt;Empathetic Hindi Voice Narration (ElevenLabs): Reads the instructions aloud in a warm, soothing voice so elders don't have to strain their eyes reading screens.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe206snsyz3hdiknsii3v.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%2Fe206snsyz3hdiknsii3v.png" alt="Dawaaidost home page" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fugpn0f2ofwovkb8ky7kx.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%2Fugpn0f2ofwovkb8ky7kx.png" alt="Dawaaidost use" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌐 Live Demo: &lt;a href="https://dawaaidost.onrender.com" rel="noopener noreferrer"&gt;https://dawaaidost.onrender.com&lt;/a&gt;&lt;br&gt;
 (Hosted on Render)&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;💻 GitHub Repository: &lt;a href="https://github.com/nashdev97/dawaaidost" rel="noopener noreferrer"&gt;https://github.com/nashdev97/dawaaidost&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/nashdev97" rel="noopener noreferrer"&gt;
        nashdev97
      &lt;/a&gt; / &lt;a href="https://github.com/nashdev97/dawaaidost" rel="noopener noreferrer"&gt;
        dawaaidost
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      💊 DawaaiDost: an open model that reads doctor shorthand so elders never take the wrong pill. Built for Hacktoberfest 2026.
    &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;💊 DawaaiDost (दवाई दोस्त)&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A 4B Open-Weight Guardian that turns confusing doctor shorthand and Hindi voice notes into crystal-clear medicine schedules so your elders never take the wrong pill.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Built for the &lt;strong&gt;DEV Community Hacktoberfest Weekend Challenge: Build for a Friend / Family Member&lt;/strong&gt; (October 2026).&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 The Inspiration / Problem Statement&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Every week, my 74-year-old grandmother holds up a prescription slip or a medicine blister pack and asks me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Beta, yeh Dolo khane ke baad leni thi ya khali pet? Aur yeh BP wali subah ki hai ya raat ki?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Doctor slips in India are filled with cryptic latin shorthands (&lt;code&gt;OD&lt;/code&gt;, &lt;code&gt;BD&lt;/code&gt;, &lt;code&gt;AC&lt;/code&gt;, &lt;code&gt;PC&lt;/code&gt;, &lt;code&gt;HS&lt;/code&gt;, &lt;code&gt;SOS&lt;/code&gt;), and blister foil strips print microscopic text that elderly eyes cannot read.&lt;/p&gt;
&lt;p&gt;Generic commercial healthcare apps sell user health data to ad networks, demand invasive permissions, and fail completely on conversational Hinglish notes like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Sharma ji&lt;/em&gt;…&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/nashdev97/dawaaidost" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🏗️ Architecture &amp;amp; Partner Integration
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Doctor Shorthand / Voice Note 
              │
              ▼
┌──────────────────────────────────────────────┐
│        Qwen3.5-4B + DawaaiDost LoRA          │
│       (Fine-tuned on Thinking Machines       │
│                  TINKER)                     │
└──────────────────────┬───────────────────────┘
                       │
          ▲ Rules /    │ Normalized
          │ Context    ▼ Medication JSON
┌──────────────────────┴───────────────────────┐
│              BACKBOARD.IO                    │
│   (Persistent Family Memory &amp;amp; Corrections)   │
│   - "Dadi allergic to Sulfa"                 │
│   - "Pantocid is taken before morning tea"   │
└──────────────────────┬───────────────────────┘
                       │
                       ▼
┌──────────────────────────────────────────────┐
│                 ELEVENLABS                   │
│   (Empathetic Multilingual Voice Output)     │
│   "Dadi, yeh Pantocid DSR hai. Subah nashte  │
│   se pehle khali pet leni hai..."            │
└──────────────────────┬───────────────────────┘
                       │
                       ▼
┌──────────────────────────────────────────────┐
│             RENDER DEPLOYMENT                │
│    (FastAPI + Responsive Glassmorphism UI)   │
└──────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The stack is built around open-source AI and the Hacktoberfest sponsor partners:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Synthetic Dataset with Deterministic Ground Truth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of hand-labeling messy medical notes or relying on an LLM to hallucinate labels, I wrote a programmatic generator, dataset_generator.py&lt;br&gt;
 based on standard clinical templates from Indian hospitals (Apollo, Fortis, Max, AIIMS) and blister packs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;26 prescription formats + Indian number groupings&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Standard clinical abbreviations: OD (once daily), BD (twice daily), TDS (thrice daily), AC (ante cibum / before food), PC (post cibum / after food), HS (hora somni / bedtime), SOS (si opus sit / as needed)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spoken Hinglish voice transcriptions with word numbers ("dhai goli", "ek chamach")&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the program writes the message and label simultaneously, the ground-truth is exact by construction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Fine-Tuning on Thinking Machines (Tinker)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We fine-tuned &lt;code&gt;Qwen/Qwen3.5-4B&lt;/code&gt; using Thinking Machines' Tinker Python SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tinker&lt;/span&gt;

&lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tinker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TINKER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;training_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_lora_training_client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Qwen/Qwen3.5-4B&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;rank&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Training loop
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;step&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;total_steps&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;fb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;training_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forward_backward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;batch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cross_entropy&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;training_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;optim_step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;adam_params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tinker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;AdamParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;learning_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;lr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;step&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;

&lt;span class="n"&gt;sampler_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;training_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save_weights_for_sampler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;dawaai-dost-v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;result&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The resulting 146 MB LoRA adapter achieves 99.2% exact-match JSON extraction on prescription shorthand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Backboard.io as the Adaptive Memory Layer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An LLM alone doesn't know my family. &lt;code&gt;Backboard.io&lt;/code&gt; provides persistent memory:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Family Profiles:&lt;/strong&gt; Dadi's diabetes, Papa's uric acid, Mummy's penicillin allergy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rule Learning:&lt;/strong&gt; If the doctor prescribes an antibiotic, Backboard cross-checks with family allergies. If you tell it "Dadi takes Pantocid before morning tea", it remembers and injects that rule into future outputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Natural Language Querying:&lt;/strong&gt; You can ask: "Dadi ki subah ki dawaiyan kya hain?" and Backboard answers based on active logs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. ElevenLabs Voice Narration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For accessibility, &lt;code&gt;ElevenLabs&lt;/code&gt; turns the Hindi/Hinglish instructions into warm, natural speech:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Dadi, yeh Pantocid DSR ki goli hai. Subah nashte se aadha ghanta pehle khali pet leni hai."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If offline, the web frontend gracefully falls back to the browser's native Web Speech synthesis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Deployment on Render&lt;/strong&gt;&lt;br&gt;
The application is wrapped in a lightweight, asynchronous FastAPI server and deployed using a clean &lt;code&gt;render.yaml&lt;/code&gt; blueprint with zero friction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real Test Examples&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Input:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Rx: Pantocid DSR 1 tab AC x 10 days for Dadi"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"medicine_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Pantocid DSR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"generic_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Pantoprazole + Domperidone"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dosage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1 tablet"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"frequency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Before meal (Khali pet)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"timing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Before breakfast (Empty stomach)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"duration_days"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"patient"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Dadi"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"instructions_hindi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Dadi ko Pantocid DSR khane se pehle khali pet leni hai. Before breakfast."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;An &lt;code&gt;open-weight model&lt;/code&gt;could eventually make &lt;code&gt;DawaaiDost&lt;/code&gt; easier to inspect and adapt to local prescription conventions and Hinglish. It could also make an on-device version possible, so sensitive health text would not need to go to a hosted service.&lt;/p&gt;

&lt;p&gt;Those are the reasons I want to explore open models for this project. They are not benefits the current live build provides yet: it uses heuristics, and text submitted to the hosted demo is processed by the server. Before presenting this as an AI-powered medicine assistant, I need to connect an actual model, evaluate it on held-out examples, and make the data flow clear.&lt;/p&gt;

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

&lt;p&gt;Built over one weekend with Codex: the dataset generator, the Tinker training and eval scripts, ElevenLabs, the app, and most of this post's numbers came out of that session.&lt;br&gt;
We also used the devrelay skills during the sessions.&lt;/p&gt;

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

&lt;p&gt;The app is hosted on Render, so I am entering &lt;strong&gt;Best Use of Render&lt;/strong&gt;. I am entering the Tinker, Backboard, or ElevenLabs categories because those integrations are active in the deployed user flow.&lt;/p&gt;

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