<?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: GS</title>
    <description>The latest articles on DEV Community by GS (@derangedsaturnian).</description>
    <link>https://dev.to/derangedsaturnian</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%2F3592104%2Fad46e515-ff54-4d66-b1fa-56d9cdaf4128.png</url>
      <title>DEV Community: GS</title>
      <link>https://dev.to/derangedsaturnian</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/derangedsaturnian"/>
    <language>en</language>
    <item>
      <title>A Lazy File Tidier That Never Deletes Anything</title>
      <dc:creator>GS</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:06:11 +0000</pubDate>
      <link>https://dev.to/derangedsaturnian/a-lazy-file-tidier-that-never-deletes-anything-5fj1</link>
      <guid>https://dev.to/derangedsaturnian/a-lazy-file-tidier-that-never-deletes-anything-5fj1</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;SlothNest is a lazy file tidier. You point it at a messy folder, and a small open-weight model reads each file's name and a peek at its contents, then sorts it into a category folder with a cleaner name. I got tired of my Downloads folder looking like a junk drawer, so this does the sorting for me.&lt;/p&gt;

&lt;p&gt;It's built to be careful, not clever. It &lt;strong&gt;never deletes anything&lt;/strong&gt;, it only moves files into a &lt;code&gt;SlothNest&lt;/code&gt; folder, and it keeps an undo ledger so one command puts everything back. It also works through a small batch at a time, because sloths don't rush.&lt;/p&gt;

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

&lt;p&gt;Before: five messy files in a folder. Then &lt;code&gt;python sloth.py apply&lt;/code&gt; sorts them, &lt;code&gt;find&lt;/code&gt; shows where they ended up, and &lt;code&gt;python sloth.py undo&lt;/code&gt; puts everything back exactly as it was.&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%2Fnutsxs3huk5x6jdc32o7.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%2Fnutsxs3huk5x6jdc32o7.png" alt="Before and after run" width="800" height="283"&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%2Fub3eqqwh9v7b7aprl48d.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%2Fub3eqqwh9v7b7aprl48d.png" alt="The folder before" width="678" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/GnautSpace/slothnest" rel="noopener noreferrer"&gt;SlothNest repo&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; Gemma 3 (1B), an open-weight model from Google, served locally by &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glue:&lt;/strong&gt; about 100 lines of Python using the &lt;code&gt;ollama&lt;/code&gt; library, with SQLite for the undo ledger.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How it works:&lt;/strong&gt; for each file, the model returns JSON with a category, a short new name, and a one-line reason. The script validates the answer before moving anything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1B model isn't perfect. Sometimes it returns a category that isn't in my list, or a filename with a stray space. One of those showed up in my first test, where &lt;code&gt;untitled3.py&lt;/code&gt; got a leading space in its name. I fixed it with one line of code, and I added a fallback that sorts by file extension if the model's answer is unusable. A tiny model plus a few guardrails turned out to be enough.&lt;/p&gt;

&lt;p&gt;I built and tested this in Google Cloud Shell with a fake messy folder. The tool is designed to run on a laptop against a real Downloads folder, and the settings (&lt;code&gt;SLOTH_WATCH&lt;/code&gt;, &lt;code&gt;SLOTH_MODEL&lt;/code&gt;) are environment variables, so no code changes are needed.&lt;/p&gt;

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

&lt;p&gt;A file tidier needs to read your files, and I don't want to send my receipts and homework to someone else's server just to rename them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; with an open-weight model running through Ollama, the files stay on the machine doing the sorting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; no API key and no per-file bill. It's free to run on every download, forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable:&lt;/strong&gt; changing models is one setting (&lt;code&gt;SLOTH_MODEL=...&lt;/code&gt;), so I can trade speed for accuracy without touching the code.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;N/A&lt;/p&gt;

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

&lt;p&gt;I only tested this on five fake files, so I won't pretend I have a time-saved number yet. The plan is to schedule it (cron or Task Scheduler) to sort a few files every half hour, so the folder stays tidy without me doing anything.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built MenuLingo So You Never Have to Guess What’s in Your Food Again</title>
      <dc:creator>GS</dc:creator>
      <pubDate>Sun, 18 Oct 2026 17:50:13 +0000</pubDate>
      <link>https://dev.to/derangedsaturnian/i-built-menulingo-so-you-never-have-to-guess-whats-in-your-food-again-5h77</link>
      <guid>https://dev.to/derangedsaturnian/i-built-menulingo-so-you-never-have-to-guess-whats-in-your-food-again-5h77</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;h3&gt;
  
  
  Restaurant Owner preview page
&lt;/h3&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%2Fqoblsmzf6i0hg0u8lueg.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%2Fqoblsmzf6i0hg0u8lueg.png" alt="owner preview page" width="800" height="493"&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%2Fk46n5qgvgpg0xpbubk5n.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%2Fk46n5qgvgpg0xpbubk5n.png" alt=" " width="799" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Owners can set qr cider for customers to scan the menu from&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%2Frwfh9yym98hq02ljq9op.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%2Frwfh9yym98hq02ljq9op.png" alt=" " width="800" height="449"&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%2Fxvk0srdtlan0pjuukgas.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%2Fxvk0srdtlan0pjuukgas.png" alt=" " width="800" height="453"&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%2Fod2h5wygwsnq157lqw3n.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%2Fod2h5wygwsnq157lqw3n.png" alt=" " width="800" height="464"&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%2Fgbi1f9talpuckqg7ct5s.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%2Fgbi1f9talpuckqg7ct5s.png" alt=" " width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Owners can clarify with chefs if the AI stated allergens and ingredients are true and if not change it. (Humam-in-loop)&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%2Fhpz937w1rz3r187bp6lo.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%2Fhpz937w1rz3r187bp6lo.png" alt=" " width="799" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Owners  can also upload lists if menu files&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%2Fwus5dpircvfp9ei5jq75.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%2Fwus5dpircvfp9ei5jq75.png" alt=" " width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Guests/Customers preview pages
&lt;/h3&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%2Fqu3q33ruvmni11xnactc.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%2Fqu3q33ruvmni11xnactc.png" alt=" " width="799" height="490"&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%2F714gsy9ehnb7ubdkx5pn.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%2F714gsy9ehnb7ubdkx5pn.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;**Customers can filter out the dishes with allergens and also use the Voice forthe  pronunciation of the dish names" &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%2Fzz27stzbwho2z24dg8kq.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%2Fzz27stzbwho2z24dg8kq.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;MenuLingo is a menu that explains itself.&lt;/p&gt;

&lt;p&gt;Small family restaurants often serve dishes that Google Translate just butchers. Try translating &lt;em&gt;Pizzoccheri della Valtellina&lt;/em&gt; and you get nonsense. And if you have an allergy, nonsense isn't good enough. You want to know if it has gluten or dairy before you order.&lt;/p&gt;

&lt;p&gt;So the owner pastes in their menu, and a local AI model writes a plain-language explanation for each dish, lists the likely ingredients, and flags allergens. Then the owner checks every dish and ticks a "verified" box. Guests scan a QR code, pick what they need to avoid, and the menu filters for them. They can also tap a button to hear the dish name pronounced.&lt;/p&gt;

&lt;p&gt;Who'd pay? A small restaurant that wants a decent digital menu for tourists and guests with allergies, without paying for a big closed platform. I haven't proven anyone would pay. That's my guess.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://menu-lingo.onrender.com/" rel="noopener noreferrer"&gt;Menu Lingo live&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The link shows the guest view, using a sample Italian menu.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/GnautSpace/menu-lingo" rel="noopener noreferrer"&gt;Menu Lingo Repo&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma (open-weight)&lt;/strong&gt;, running locally through &lt;strong&gt;Ollama&lt;/strong&gt;. I used &lt;code&gt;gemma3:1b&lt;/code&gt; because I built this in cloud environment, which is tiny.(gemma3:4b) will be suitable more. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; for the whole UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pydantic + Ollama's JSON schema output&lt;/strong&gt; so Gemma answers in a strict format (description, ingredients, allergens, spice level, a confidence flag).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google TTS (gTTS)&lt;/strong&gt; for the pronunciation button. The app picks the language from the menu, so Italian dishes sound Italian and Danish dishes sound Danish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render&lt;/strong&gt; hosts the customer page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How it works: the AI runs on the owner's machine to generate the menu. The public website is just a read-only page that shows the saved &lt;code&gt;menu.json&lt;/code&gt;. I did it this way because Render's cheap tier can't run a model.&lt;/p&gt;

&lt;p&gt;Some things that went wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The 1B model sometimes got stuck repeating itself and crashed. I added length limits, a repeat penalty, and retries.&lt;/li&gt;
&lt;li&gt;Cloud Shell ran out of disk space when it tried to save a tiny JSON file. Lesson learned.&lt;/li&gt;
&lt;li&gt;I planned to use ElevenLabs for voices, but their API needed a paid plan, so I switched to Google TTS.&lt;/li&gt;
&lt;li&gt;A small model will still get allergens wrong sometimes. That's why the owner has to verify every dish, and guests can see which dishes are verified and which aren't.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Because the restaurant's menu and data stay on their own machine, and there's no bill per request. For a tiny business, even small API fees add up, and sending data to someone else's server isn't always okay.&lt;/p&gt;

&lt;p&gt;It also means anyone can swap in a bigger model, or one fine-tuned on their own cuisine. I'd want a model that really knows regional dishes, and with open weights that's possible. With a closed API, it's whatever the company decides to give you.&lt;/p&gt;

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

&lt;p&gt;N/A&lt;/p&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;N/A&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;: Gemma runs the whole menu-explaining part, locally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render&lt;/strong&gt;: it hosts customer facing page.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Root Bound touch grass to make the blob happy</title>
      <dc:creator>GS</dc:creator>
      <pubDate>Sat, 10 Oct 2026 16:11:21 +0000</pubDate>
      <link>https://dev.to/derangedsaturnian/root-bound-touch-grass-to-make-the-blob-happy-d95</link>
      <guid>https://dev.to/derangedsaturnian/root-bound-touch-grass-to-make-the-blob-happy-d95</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;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%2Fb41hc3ku5e1lhix4o8p8.jpg" 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%2Fb41hc3ku5e1lhix4o8p8.jpg" alt=" " width="720" height="596"&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%2Fow5mb68lzse4jsg1u8zh.jpg" 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%2Fow5mb68lzse4jsg1u8zh.jpg" alt=" " width="720" height="672"&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%2Feuygox93ddaihpbttj60.jpg" 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%2Feuygox93ddaihpbttj60.jpg" alt=" " width="720" height="641"&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%2Flfs3zbdt7o9pjiedamqk.jpg" 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%2Flfs3zbdt7o9pjiedamqk.jpg" alt=" " width="720" height="624"&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%2Fr3ba4bil5fsobg59cdoh.jpg" 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%2Fr3ba4bil5fsobg59cdoh.jpg" alt=" " width="720" height="588"&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%2Fqmq0f62gireawdt3a75b.jpg" 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%2Fqmq0f62gireawdt3a75b.jpg" alt=" " width="720" height="589"&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%2Fy8uvw5tntuw3ah003itr.jpg" 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%2Fy8uvw5tntuw3ah003itr.jpg" alt=" " width="720" height="590"&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%2F042vvuykf7a6emjrsf8c.jpg" 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%2F042vvuykf7a6emjrsf8c.jpg" alt=" " width="720" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built Rootbound: Solitary Sprouts ,it is a cozy, low-pressure 3D web app made specifically for introverts who want to get outdoors without social anxiety(cause I'm an introvert myself)&lt;/p&gt;

&lt;p&gt;It pairs you with a floating 3D Gourd/Blob companion that needs real-world nature to grow. To keep your blob happy, you step outside alone and complete peaceful, solo outdoor dares (like finding moss or river stones), play a nature-only word chain game, spin a 3D nature match minigame, or snap a photo of a real houseplant or garden sapling to heal your sprite!&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://root-bound.onrender.com/" rel="noopener noreferrer"&gt;Root Bound Live&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/GnautSpace/root-bound" rel="noopener noreferrer"&gt;Root Bound Repo&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Frontend &amp;amp; 3D Interactive UI: Built using Next.js (App Router), Tailwind CSS, and Three.js (@react-three/fiber &amp;amp; @react-three/drei) for the interactive floating 3D companion that distorts and glows when you complete quests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open-Source AI Vision: Uses open-weight vision models (like Gemma) on the backend API route (/api/sprite) to analyze uploaded plant photos, verifying foliage health and calculating XP boosts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database Layer: MongoDB Atlas stores player levels, sprite health, and live leaderboard scores in real-time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Open innovation matters here because nature walks and outdoor activities are deeply personal. Running open-weight models locally or on lightweight open runtimes means users can verify their outdoor plant findings without uploading private location data or photos to closed corporate cloud servers. Plus, open-weight models mean zero API fees lol, allowing an offline-first companion that can run on trail walks with spotty internet!&lt;/p&gt;

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

&lt;p&gt;N/A&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;li&gt;Best Use of MongoDB Atlas&lt;/li&gt;
&lt;li&gt;Best Use of Render&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Klaro AI... So my family doesn't have to wait for me to translate their mail anymore</title>
      <dc:creator>GS</dc:creator>
      <pubDate>Sun, 04 Oct 2026 19:31:49 +0000</pubDate>
      <link>https://dev.to/derangedsaturnian/klaro-aiso-my-family-doesnt-have-to-wait-for-me-to-translate-their-mail-anymore-53a9</link>
      <guid>https://dev.to/derangedsaturnian/klaro-aiso-my-family-doesnt-have-to-wait-for-me-to-translate-their-mail-anymore-53a9</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;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%2Fkrxtqkn51c1ngh0by4dk.jpg" 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%2Fkrxtqkn51c1ngh0by4dk.jpg" alt=" " width="720" height="452"&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%2F27eik1lel61x0pzgk67f.jpg" 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%2F27eik1lel61x0pzgk67f.jpg" alt=" " width="720" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Okay, picture this: My family member gets a medical bill or an official government notice. It looks like ancient hieroglyphics written by lawyers who hate happiness. Then comes in the bill invoice or some medical reports. They hand it to me and ask, &lt;em&gt;"What does this even mean?"&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;And honestly? Sometimes &lt;em&gt;I&lt;/em&gt; have no clue either. 🤯&lt;/p&gt;

&lt;p&gt;So, for this challenge, I built &lt;strong&gt;Klaro AI&lt;/strong&gt;, it is a  friendly little web app designed for people who get completely overwhelmed by dense paperwork, legal jargon, or language barriers. You upload a confusing document (PDF, photo, or screenshot), and Klaro cuts through the corporate mumbo-jumbo to give you three simple answers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What the paper actually means in plain terms.&lt;/li&gt;
&lt;li&gt;Any scary risks or hidden deadlines you need to watch out for.&lt;/li&gt;
&lt;li&gt;Exactly what you need to do next.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Plus, it reads the whole breakdown back out loud in your native accent! Because nobody wants to hear a heavy English accent trying to read a Spanish medical prescription.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live app&lt;/strong&gt;: &lt;em&gt;&lt;a href="https://klaro-ai.onrender.com" rel="noopener noreferrer"&gt;Klaro AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;em&gt;&lt;a href="https://github.com/GnautSpace/klaro-ai" rel="noopener noreferrer"&gt;Klaro AI Repo&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Being a bit of a chaotic coder, my first instinct was to write a text extractor using pypdf. Guess what? It immediately crashed on a scanned PDF and broke my heart.&lt;br&gt;
​So i pivoted to the proper open-source AI approach:&lt;br&gt;
​1. The Brains (Google GenAI SDK &amp;amp; Gemma): Instead of fighting with fragile parsers, I used Google's File API (client.files.upload()) so Gemma can directly look at and "see" documents, whether they are crisp PDFs or messy WhatsApp screenshots.&lt;br&gt;
​2. The Interface (Streamlit): Built a super clean, sidebar-driven UI that lets users pick languages and upload documents seamlessly.&lt;br&gt;
​3. The Voice (gTTS): Mapped out a language code dictionary so that when someone picks Japanese, Spanish, German, or French, gTTS reads the text back in a native accent instead of a robotic English translation.&lt;/p&gt;

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

&lt;p&gt;​Honestly, if I  had to rely on a rigid, closed-source black-box API where I couldn't customize prompts, swap models, or feed raw images directly into an open-weight model like Gemma, this app would have stayed a messy idea in my head.&lt;br&gt;
​Open models made it possible to treat documents like images and text simultaneously, letting me tailor the persona to be a "patient, compassionate family assistant" rather than a cold corporate chatbot. It means you can build real tools for real people in your life without hitting locked doors.&lt;br&gt;
​When I had my sister try it with medical reports, and then tested it on a legal document with another family member, they were genuinely blown away by how simple it made everything. They even said they’d actually use it on their own, meaning they won't have to wait for someone to be around just to understand their own paperwork. I am happy, that I was able to create something useful to them 😊&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Had installed but forgot to use it 😔&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Best use of Gemma&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best use of Render&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

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