<?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: Vibhanshu Singh</title>
    <description>The latest articles on DEV Community by Vibhanshu Singh (@vibhanshu-s).</description>
    <link>https://dev.to/vibhanshu-s</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%2F4175632%2F1d024809-0775-4a87-bc22-cbc2894804fb.png</url>
      <title>DEV Community: Vibhanshu Singh</title>
      <link>https://dev.to/vibhanshu-s</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vibhanshu-s"/>
    <language>en</language>
    <item>
      <title>SlothSort: Let Your Downloads Folder Tidy Itself</title>
      <dc:creator>Vibhanshu Singh</dc:creator>
      <pubDate>Tue, 20 Oct 2026 19:06:27 +0000</pubDate>
      <link>https://dev.to/vibhanshu-s/slothsort-let-your-downloads-folder-tidy-itself-321o</link>
      <guid>https://dev.to/vibhanshu-s/slothsort-let-your-downloads-folder-tidy-itself-321o</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;Downloads folders collect tiny decisions: keep the duplicate? Which file is latest? Is it safe to rename?&lt;/p&gt;

&lt;p&gt;SlothSort takes one folder at a time. It asks a model running on the same machine for cleaner filenames, sorts top-level files into familiar type folders, then pauses for a person to review. You can untick any row. Nothing moves until you press &lt;strong&gt;Tidy selected&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://vibhanshu-s.github.io/slothsort/" rel="noopener noreferrer"&gt;Try the sample demo&lt;/a&gt;. The hosted page uses a fixed example pile; it cannot access a visitor's folders or run AI. To use local scanning and Gemma, follow the &lt;a href="https://github.com/vibhanshu-s/slothsort#run-it-locally" rel="noopener noreferrer"&gt;local setup steps&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/vibhanshu-s/slothsort" rel="noopener noreferrer"&gt;View SlothSort on GitHub&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;SlothSort is a small Python server with a plain HTML, CSS, and JavaScript interface. The server binds to 127.0.0.1; Gemma 3 1B runs through Ollama on that same machine.&lt;/p&gt;

&lt;p&gt;The app scans only the selected folder's top level. It sends filenames and extensions to Gemma, never file contents. File size and modified time stay local, where the server uses them for the list and to catch files that changed after a plan was made. Gemma suggests simpler names; a small extension map chooses predictable destination folders. I kept those two jobs separate so a model can't accidentally sort a JPEG into Documents.&lt;/p&gt;

&lt;p&gt;Every move requires review. The server checks for existing destination names before starting, rejects stale plans, and offers an undo for the latest pass while the app remains open. It won't recurse into folders or make guesses about what's inside a file.&lt;/p&gt;

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

&lt;p&gt;A downloads folder can reveal a lot about someone. This task doesn't need document contents, and it doesn't need a hosted inference service. With open-weight Gemma running locally, even filenames stay on the machine; after the model is downloaded, the tidy-up flow can run without an API key or per-request cloud bill.&lt;/p&gt;

&lt;p&gt;The model is also replaceable: SlothSort can use another model already installed in Ollama. The file-moving rules remain visible in the code, and the person with the folder still gets the final say.&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>opensource</category>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemmachallenge</category>
    </item>
    <item>
      <title>BriefMint: A Local AI Scope Assistant for Freelancers</title>
      <dc:creator>Vibhanshu Singh</dc:creator>
      <pubDate>Sat, 17 Oct 2026 16:47:19 +0000</pubDate>
      <link>https://dev.to/vibhanshu-s/briefmint-a-local-ai-scope-assistant-for-freelancers-5ap7</link>
      <guid>https://dev.to/vibhanshu-s/briefmint-a-local-ai-scope-assistant-for-freelancers-5ap7</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;BriefMint turns a freelancer’s client message into a first-pass scope sheet: likely deliverables, questions to ask before quoting, and a reply the freelancer can edit.&lt;/p&gt;

&lt;p&gt;It’s for the moment when a client says “just a few pages” and the request quietly includes online ordering, loyalty, SEO, and a two-week launch. BriefMint helps surface those unknowns before they become free work. The person who might pay is the freelancer: the value is time saved in discovery and fewer assumptions in an estimate. That’s my product hypothesis; I haven’t validated willingness to pay with a customer yet.&lt;/p&gt;

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

&lt;p&gt;Try the &lt;a href="https://vibhanshu-s.github.io/briefmint/" rel="noopener noreferrer"&gt;BriefMint sample-mode demo&lt;/a&gt;. The hosted page uses a fixed, clearly labeled example, so you can explore the flow without sending client data anywhere. To generate a fresh scope with Gemma, run the app locally using the steps in the README.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/vibhanshu-s/briefmint" rel="noopener noreferrer"&gt;Source repository&lt;/a&gt;. The README has setup instructions.&lt;/p&gt;

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

&lt;p&gt;BriefMint uses Gemma 3 4B through Ollama. A small Python server bound to loopback sends the brief to Ollama’s local chat endpoint and returns structured JSON for a plain HTML, CSS, and JavaScript interface. There’s no hosted model dependency.&lt;/p&gt;

&lt;p&gt;The scope is a draft, not a quote. BriefMint doesn’t know a freelancer’s rates or contract terms, so it leaves the estimate to the freelancer and asks for discovery. The prompt tells the model to point out missing information rather than invent facts.&lt;/p&gt;

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

&lt;p&gt;Freelancers may paste private client correspondence into a scoping tool. With local inference, BriefMint sends that text to a model running on the freelancer’s computer instead of a hosted AI API. After the model is downloaded, a session can run offline. The freelancer can inspect the prompt, change the model in the local server configuration, and avoid a per-brief inference meter.&lt;/p&gt;

&lt;p&gt;That changes the economics and trust story for a small paid tool: a one-time purchase or modest desktop license could work without adding an inference charge to every client brief. I haven’t tested that pricing model yet.&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>
      <category>gemma</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
