<?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: Tanishq Gupta</title>
    <description>The latest articles on DEV Community by Tanishq Gupta (@shivgpt2809).</description>
    <link>https://dev.to/shivgpt2809</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%2F4163781%2Ffcb3f2ad-2e98-43e2-980e-010e02e605a8.jpg</url>
      <title>DEV Community: Tanishq Gupta</title>
      <link>https://dev.to/shivgpt2809</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shivgpt2809"/>
    <language>en</language>
    <item>
      <title>Mail Sloth: Photograph Your Paper Mail, Get Verdicts and Calendar Reminders, Fully Offline</title>
      <dc:creator>Tanishq Gupta</dc:creator>
      <pubDate>Thu, 22 Oct 2026 03:43:13 +0000</pubDate>
      <link>https://dev.to/shivgpt2809/mail-sloth-photograph-your-paper-mail-get-verdicts-and-calendar-reminders-fully-offline-3eg</link>
      <guid>https://dev.to/shivgpt2809/mail-sloth-photograph-your-paper-mail-get-verdicts-and-calendar-reminders-fully-offline-3eg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Mail Sloth turns a pile of paper mail into a short list of things to do, each with a calendar reminder, without you reading any of it.&lt;/p&gt;

&lt;p&gt;Nobody reads paper mail properly. Bills, bank letters, school circulars, society notices, and government letters pile up on a shelf, and the one with a due date gets missed. Mail Sloth is built for the laziest possible workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Take one photo of each letter, bill, or notice. A pile takes about a minute.&lt;/li&gt;
&lt;li&gt;Drop the photos into the app and go do something else.&lt;/li&gt;
&lt;li&gt;Come back to a one-page summary and a calendar file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For every item, it gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's from&lt;/strong&gt; and what it's about, in one line&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A verdict:&lt;/strong&gt; Pay, Reply, Sign, Keep, or Ignore&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The key facts:&lt;/strong&gt; amount due, due date, reference number, and what you actually have to do&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A calendar reminder&lt;/strong&gt; for anything with a deadline, exported as a standard .ics file that opens in any calendar app, with a reminder a week before and a day before&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You glance at a review table, fix anything flagged, and export. Junk mail gets a clear "Ignore" so you can throw it away without guilt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who gets to be lazier:&lt;/strong&gt; anyone who dreads their mail pile, such as busy parents buried in school circulars, people managing a home or a parent's paperwork, and anyone who has paid a late fee for a bill they never opened.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reading the letters:&lt;/strong&gt; an open-weight model, Gemma, running locally through [Ollama / your runtime]. [Choose what you really built: the vision model reads the photo directly, or OCR with Tesseract extracts the text first and the model reads that.] It extracts the sender, summary, amount, due date, reference number, and required action as structured JSON.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dates and amounts are handled by plain code, not the model.&lt;/strong&gt; The model only reads what the letter says. Normal code parses and validates the dates, checks that a due date is plausible, and generates the calendar entries. This keeps reminders trustworthy, because a language model should never be the thing deciding when your bill is due.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Honest uncertainty:&lt;/strong&gt; if the photo is blurry, a date is ambiguous (for example 03/04), or the model isn't confident, the item is flagged in the review table instead of silently guessed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verdicts:&lt;/strong&gt; a small, editable rule set maps the extracted fields to Pay, Reply, Sign, Keep, or Ignore, and you can adjust the rules to your own life.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calendar export:&lt;/strong&gt; the .ics file is generated directly in code with standard reminders, so it works with any calendar app and needs no account or integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch processing:&lt;/strong&gt; photos are processed one after another in the background. It is not fast, and it does not need to be, because you are not waiting for it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; [describe what you built: for example a local web app with drag-and-drop photo upload and an editable review table].&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Paper mail is about the most private data you have.&lt;/strong&gt; It holds your home address, bank and medical details, tax and government references, and your children's school information. Uploading photos of all of that to a cloud API is a bad trade for the convenience. Because the model runs on your own machine, none of it leaves it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It costs nothing per letter.&lt;/strong&gt; A pile of mail is dozens of photos every month, forever. With a paid vision API, a boring household task would carry a running bill. With a local model, you set it up once and never pay again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works offline.&lt;/strong&gt; There is no account, no login, and no connection needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You control how it behaves.&lt;/strong&gt; Verdict rules, reminder timing, and the output format are all editable, and the model can be swapped for a better or smaller one without waiting on a provider. If the model gets a layout wrong, I can fix the prompt or the rules myself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slow is fine.&lt;/strong&gt; A local model on an ordinary laptop is not as fast as a hosted API, but this is a task you hand off and walk away from, so speed hardly matters.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>WhatsApp Order Ledger: Turn a Messy Order Chat into a Clean Sheet, Offline, with Gemma</title>
      <dc:creator>Tanishq Gupta</dc:creator>
      <pubDate>Mon, 12 Oct 2026 21:37:47 +0000</pubDate>
      <link>https://dev.to/shivgpt2809/whatsapp-order-ledger-turn-a-messy-order-chat-into-a-clean-sheet-offline-with-gemma-m4m</link>
      <guid>https://dev.to/shivgpt2809/whatsapp-order-ledger-turn-a-messy-order-chat-into-a-clean-sheet-offline-with-gemma-m4m</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;WhatsApp Order Ledger turns a messy order chat into a clean, usable sheet.&lt;/p&gt;

&lt;p&gt;Plenty of small businesses run on WhatsApp: home bakers, tiffin and meal services, boutique and handmade sellers. Customers send orders as casual text, half-sentences, edits ("make that 3, not 2"), mixed-language messages, and voice notes. The seller then spends an hour every evening scrolling through it all, copying orders into a notebook or spreadsheet, and working out who owes what.&lt;/p&gt;

&lt;p&gt;You export the chat from WhatsApp, drop the file into the app, and it produces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clean order sheet: customer, items, quantities, notes, delivery date&lt;/li&gt;
&lt;li&gt;A delivery list, grouped by date and area, ready to print&lt;/li&gt;
&lt;li&gt;Daily totals: how many of each item to make or pack&lt;/li&gt;
&lt;li&gt;A payment tracker: bills per customer and who hasn't paid yet&lt;/li&gt;
&lt;li&gt;Voice notes, transcribed and read like any other message&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The seller sets up their menu and prices once in a simple list, including the nicknames customers actually use for items and the way their customers actually write. After that, every day's chat becomes a sheet in minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who would pay for it:&lt;/strong&gt; a solo home baker, caterer, or small seller who takes 10 to 50 orders a day over WhatsApp. It replaces the daily hour of copying and tallying, and it catches mistakes that cost real money, like a missed order or a forgotten payment. It's priced as a small monthly fee, which is a tiny cost against an hour saved every day. [Add the price you would actually charge.]&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language model:&lt;/strong&gt; Gemma, an open-weight model, running locally through [Ollama / your runtime]. It reads each message in context and extracts items, quantities, corrections, delivery dates, and payment notes as structured JSON.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice notes:&lt;/strong&gt; an open-source Whisper model transcribes WhatsApp voice notes locally, so they flow into the same pipeline as text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chat parsing:&lt;/strong&gt; the standard WhatsApp "Export chat" text file is parsed into messages with timestamps and senders. The app never connects to WhatsApp itself, so there is no risk to the seller's account and nothing to authorize.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Menu and slang config:&lt;/strong&gt; a plain editable file holds the seller's items, prices, and the nicknames customers use for them. The model is prompted with this list, so it learns the shop's own vocabulary without any retraining.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured output and validation:&lt;/strong&gt; the model's JSON output is validated against the menu. If an item or quantity looks wrong or ambiguous, it is flagged for the seller to check instead of silently guessed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Totals are computed in plain code, not by the model.&lt;/strong&gt; The model only reads messages, and normal code does the arithmetic. This keeps bills and totals exact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outputs:&lt;/strong&gt; a printable delivery list and a CSV export that opens in any spreadsheet app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; [describe: a simple local web app, with a drag-and-drop file upload and an editable review table].&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The customers' data stays on the seller's laptop.&lt;/strong&gt; Order chats are full of customer names, phone numbers, and home addresses. Sending that to a third-party API is a real privacy problem for a small business that depends on its customers' trust. Running an open-weight model locally means none of it leaves the machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The business actually works at this price.&lt;/strong&gt; Each day's chat can be thousands of messages, plus voice notes. With a paid API, the cost per seller grows with every message. With a local model, the marginal cost is zero, so a small monthly fee can be real profit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It handles how people actually write.&lt;/strong&gt; Order chats mix languages, abbreviations, and local item names. Because the model and the prompts are open and under my control, I can tune them to the seller's own menu and vocabulary, add a new language, or swap in a better model later, without waiting on a provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in.&lt;/strong&gt; If a provider changes prices or terms, a seller on a closed API is stuck. Here, the model is a file on their machine, and the pieces can be swapped.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works offline.&lt;/strong&gt; The tool does not depend on a stable connection, which matters for small sellers who often work from home on unreliable internet.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>hacktoberfest</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Acoustic Atlas: An Offline Open-Weight Model That Finds the Best-Sounding Places to Touch Grass</title>
      <dc:creator>Tanishq Gupta</dc:creator>
      <pubDate>Thu, 08 Oct 2026 15:32:16 +0000</pubDate>
      <link>https://dev.to/shivgpt2809/acoustic-atlas-an-offline-open-weight-model-that-finds-the-best-sounding-places-to-touch-grass-55ef</link>
      <guid>https://dev.to/shivgpt2809/acoustic-atlas-an-offline-open-weight-model-that-finds-the-best-sounding-places-to-touch-grass-55ef</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;Acoustic Atlas is a listening companion that finds the places near you that sound alive. Most outdoor apps tell you where to go. This one measures what a place actually sounds like.&lt;/p&gt;

&lt;p&gt;You tap "Listen" at a spot, put your phone in your pocket, and walk or sit for a few minutes. An open-weight audio model classifies the soundscape on-device, separating what it hears into nature sound (birdsong, wind, water, insects, rustling leaves) and human noise (traffic, engines, horns, construction, crowds). When the timer ends, your phone vibrates and gives you a Nature Score for that spot and time of day.&lt;/p&gt;

&lt;p&gt;Over a few walks it builds your personal atlas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your best-sounding spots, ranked&lt;/li&gt;
&lt;li&gt;The best time of day for each spot (for example, "dawn is 3x livelier than evening")&lt;/li&gt;
&lt;li&gt;A "quietest, most alive place near me right now" suggestion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The screen is the shortest part of the experience. The app is only used to start and stop a listen, and all the real time is spent outside, listening.&lt;/p&gt;

&lt;p&gt;It's for walkers, runners, birders, people who live in noisy cities, and anyone who wants a reason to sit somewhere green and pay attention.&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/Shivgg1234" rel="noopener noreferrer"&gt;
        Shivgg1234
      &lt;/a&gt; / &lt;a href="https://github.com/Shivgg1234/devtopost" rel="noopener noreferrer"&gt;
        devtopost
      &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;🌿 Acoustic Atlas&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Acoustic Atlas&lt;/strong&gt; is a static, offline-first Progressive Web App (PWA) that uses an on-device TensorFlow.js Machine Learning model (&lt;strong&gt;YAMNet&lt;/strong&gt;) to score how "alive" a natural location sounds, building a personal atlas of the best-sounding spots and times.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎯 Core Philosophy &amp;amp; Privacy Model&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The screen is designed to be the shortest part of the experience:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tap &lt;strong&gt;Start Listening&lt;/strong&gt; (pick 3, 5, or 10 minutes).&lt;/li&gt;
&lt;li&gt;Put the phone in your pocket and listen outdoors.&lt;/li&gt;
&lt;li&gt;Get a &lt;strong&gt;Nature Score (0–100)&lt;/strong&gt;, top sound breakdown, birdsong share, and optimal time-of-day recommendation.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Zero Audio Uploads &amp;amp; 100% On-Device&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In-Memory Streaming&lt;/strong&gt;: Microphone audio is resampled to 16 kHz mono in RAM, sliced into ~0.96s windows (15,360 samples), evaluated by YAMNet, and &lt;strong&gt;immediately discarded&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Audio Saved or Uploaded&lt;/strong&gt;: Raw audio is &lt;strong&gt;NEVER&lt;/strong&gt; stored on disk or transmitted over any network. Only numeric score aggregates are stored locally.&lt;/li&gt;
&lt;li&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/Shivgg1234/devtopost" 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;Model:&lt;/strong&gt; YAMNet, Google's open-weight audio event classifier (Apache 2.0), trained on AudioSet and able to recognize 521 sound classes. It runs fully in the browser through TensorFlow.js, with the model files bundled locally instead of fetched from a CDN.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scoring:&lt;/strong&gt; Each second of audio is classified, and the class probabilities are grouped into "nature" and "human noise" buckets. The Nature Score is the share of the soundscape that is nature. The class grouping is a plain config file, so anyone can change what counts as nature for their region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App:&lt;/strong&gt; A static Progressive Web App. A service worker caches the app and the model, so after the first load it works in airplane mode on a trail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; Spots, scores, time of day, and GPS coordinates are saved in IndexedDB on the device. There is no backend and no account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screen-minimal design:&lt;/strong&gt; After you tap Listen, the screen drops to a dark minimal card with a countdown. The phone vibrates when done, and you only look at the screen again for the result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio is never saved:&lt;/strong&gt; Audio is processed in memory in short windows and thrown away. Only the numeric scores are stored.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy is the product.&lt;/strong&gt; An ambient soundscape recording can capture conversations, your family, and your location habits. With an open-weight model running on-device, the audio never leaves your phone and only anonymous scores are kept. A cloud audio API would need the recordings uploaded, which is a bad fit for something you carry everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works where the signal doesn't.&lt;/strong&gt; The best-sounding places (parks, hills, riverbanks) often have the worst reception. Local inference makes zero connectivity the normal case, not an edge case.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's free to run.&lt;/strong&gt; There are no per-minute audio API costs, so you can listen for hours without paying anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You can change what "nature" means.&lt;/strong&gt; A forest in Canada and a riverside in Southeast Asia sound very different. Because the model and the class mapping are open, anyone can adjust the scoring for their region, or swap in a bird-specific model like BirdNET or a fine-tuned one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's auditable.&lt;/strong&gt; Anyone can read exactly how a score is computed. There is no black-box "wellness score."&lt;/li&gt;
&lt;/ul&gt;

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