<?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: HeroOfMyLife</title>
    <description>The latest articles on DEV Community by HeroOfMyLife (@heroofmylife).</description>
    <link>https://dev.to/heroofmylife</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%2F767027%2Fe8f151bf-381d-4a89-8dee-c8343abf8aeb.jpg</url>
      <title>DEV Community: HeroOfMyLife</title>
      <link>https://dev.to/heroofmylife</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/heroofmylife"/>
    <language>en</language>
    <item>
      <title>FILE BUTLER: An easy way to organize files after downloading.</title>
      <dc:creator>HeroOfMyLife</dc:creator>
      <pubDate>Sun, 25 Oct 2026 16:06:55 +0000</pubDate>
      <link>https://dev.to/heroofmylife/file-butler-an-easy-way-to-organize-files-after-downloading-25p2</link>
      <guid>https://dev.to/heroofmylife/file-butler-an-easy-way-to-organize-files-after-downloading-25p2</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;p&gt;I built File Butler — a background AI agent that watches your Downloads folder and automatically sorts, renames, and organizes every file that lands there. No more img_9923.jpg, no more document(1).pdf, no more scrolling through 400 unnamed files trying to find that one invoice from last month.&lt;/p&gt;

&lt;p&gt;File organization is one of those tasks everyone puts off. It's boring, repetitive, and feels like a waste of time. File Butler does it for you in the background. You download something, you forget about it, and the Butler handles the rest.&lt;/p&gt;

&lt;p&gt;Who gets to be a little lazier because of it? Anyone who has ever thought "I'll organize my files later" and never did. Students drowning in lecture slides. Freelancers juggling client files. Anyone who just wants a clean computer without the effort.&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%2Fhz1jgscb5tpqgiuifdcb.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%2Fhz1jgscb5tpqgiuifdcb.png" alt=" " width="800" height="284"&gt;&lt;/a&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/HeroOfMyLife" rel="noopener noreferrer"&gt;
        HeroOfMyLife
      &lt;/a&gt; / &lt;a href="https://github.com/HeroOfMyLife/File-Butler" rel="noopener noreferrer"&gt;
        File-Butler
      &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;🦥 File Butler&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Theme:&lt;/strong&gt; Slow and Steady (International Sloth Day)&lt;/p&gt;
&lt;p&gt;File Butler is a background AI agent that rewards laziness. It watches your messy "Downloads" folder and automatically sorts, renames, and organizes your files into neat categories.&lt;/p&gt;
&lt;p&gt;It does the work so you don't have to. Drop 50 files, close your laptop, and go to sleep. When you wake up, your computer is clean.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛠️ How it Works&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Watcher:&lt;/strong&gt; Uses the Python &lt;code&gt;watchdog&lt;/code&gt; library to monitor the file system for new files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brain:&lt;/strong&gt; Sends the filename and extension to a local LLM (Qwen2 via Ollama).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action:&lt;/strong&gt; The AI returns a JSON response with a clean filename and a category (Images, Documents, Code, etc.). Python then moves and renames the file instantly.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why Open Innovation Matters&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This project relies entirely on &lt;strong&gt;open-source, local AI&lt;/strong&gt; (Ollama + Qwen2). Here is why that approach is better than a closed cloud API:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;True Privacy:&lt;/strong&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/HeroOfMyLife/File-Butler" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;How I Built It&lt;br&gt;
File Butler is built around open-weight models running locally via Ollama. Here's the architecture:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;File System Watcher: I used Python's watchdog library to monitor the Downloads folder in real-time. The moment a file is created (downloaded), the agent wakes up.
Local AI Brain: The filename and extension are sent to Qwen2 0.5B running through Ollama on my machine. I chose Qwen2 because it's a tiny model (~500MB RAM) that punches way above its weight in structured JSON output — perfect for a low-resource local setup.
Prompt Engineering: I used few-shot prompting (giving the model examples) to guide the tiny model toward consistent JSON responses. This was critical — small models need patterns to follow.
Robust Parsing: Since small models can be chatty or make typos (it once returned "categoory" instead of "category"), I built a resilient parser that hunts for the JSON block within any response and falls back gracefully if parsing fails.
File Action: Python's shutil handles the actual moving and renaming, with duplicate-name protection built in.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The entire stack is Python + Ollama + Qwen2 + Watchdog. No cloud APIs, no external services, no internet required.&lt;/p&gt;

&lt;p&gt;Running my own model locally is what makes File Butler actually viable as a personal tool. Here's why the open-based approach worked better than a closed one:&lt;br&gt;
Privacy is non-negotiable. File names reveal a lot about you — tax documents, medical records, personal photos, work projects. Sending that metadata to a cloud API means a corporation is processing information about your life. With Ollama and Qwen2, nothing leaves my machine. My Downloads folder stays my business.&lt;/p&gt;

&lt;p&gt;Zero cost, zero limits. A cloud API charges per token. If I download 100 files a day, that adds up fast. File Butler costs $0.00 to run, 24/7, forever. No rate limits, no credit card, no surprise bills.&lt;/p&gt;

&lt;p&gt;True ownership and flexibility. If a better open-weights model drops tomorrow, I change one line of code (MODEL_NAME = "new_model") and my butler gets smarter. I'm not locked into a vendor's ecosystem, pricing changes, or API deprecations.&lt;br&gt;
It works offline. I can run this on a laptop with no internet connection — on a plane, in a cabin, anywhere. A cloud API would be useless there.&lt;/p&gt;

&lt;p&gt;The open-source agent harness philosophy. By building on Ollama (open-source) and Qwen2 (open-weights), every piece of this project is transparent, auditable, and modifiable. I know exactly what's happening with my data because I can read the code.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>khissBkr Helping you sort your books locally.</title>
      <dc:creator>HeroOfMyLife</dc:creator>
      <pubDate>Sun, 18 Oct 2026 19:37:09 +0000</pubDate>
      <link>https://dev.to/heroofmylife/khissbkr-helping-you-sort-your-books-locally-5gl</link>
      <guid>https://dev.to/heroofmylife/khissbkr-helping-you-sort-your-books-locally-5gl</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;&lt;strong&gt;Khissbooker&lt;/strong&gt; is an AI-powered desktop application that automatically organizes personal media libraries of Anime, Donghua, Manhua, Manhwa, Manfra, Light Novels, and Web Novels. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Fans in regions without official licensing, or those preserving media when fan sites get taken down, often end up with thousands of disorganized files. Manually tagging and sorting them is impossible. Cloud-based solutions are expensive, invade privacy, and often refuse to process content due to corp…Translation Groups** who need to organize massive archives&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Collectors&lt;/strong&gt; with libraries of 1,000+ downloaded files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Book Clubs &amp;amp; Communities&lt;/strong&gt; who want to share organized catalogs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fans in restricted regions&lt;/strong&gt; who rely on personal archives when official sites are geo-blocked&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Side Hustle Business Model:&lt;/strong&gt; Freemium. Free tier = unlimited local processing with Llama 3.2. Pro tier ($5 one-time) = Cloud processing with Gemma for low-end laptops, plus MongoDB cloud sync across devices.&lt;/p&gt;

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

&lt;p&gt;khissbooker.tech&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/HeroOfMyLife" rel="noopener noreferrer"&gt;
        HeroOfMyLife
      &lt;/a&gt; / &lt;a href="https://github.com/HeroOfMyLife/khissbooker" rel="noopener noreferrer"&gt;
        khissbooker
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Khissbooker is built around &lt;strong&gt;open-weight AI models&lt;/strong&gt; at its core:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference (Free Tier):&lt;/strong&gt; Uses &lt;strong&gt;Llama 3.2 1B&lt;/strong&gt; via &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; for completely offline, private tagging. The model runs directly on the user's laptop — no internet required, no API costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Inference (Pro Tier):&lt;/strong&gt; Uses &lt;strong&gt;Google's Gemma 2 2B&lt;/strong&gt; via Google AI Studio for higher accuracy when users opt into the paid tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text Extraction Engine:&lt;/strong&gt; Custom Python module using &lt;code&gt;pypdf&lt;/code&gt; and &lt;code&gt;ebooklib&lt;/code&gt; to read &lt;code&gt;.pdf&lt;/code&gt; and &lt;code&gt;.epub&lt;/code&gt; files, extracting the first few pages for AI analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; &lt;a href="https://www.mongodb.com/atlas" rel="noopener noreferrer"&gt;MongoDB Atlas&lt;/a&gt; (Free M0 Tier) stores metadata for optional cross-device library syncing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI:&lt;/strong&gt; Built with &lt;a href="https://customtkinter.tomschimansky.com/" rel="noopener noreferrer"&gt;CustomTkinter&lt;/a&gt; for a modern, dark-mode desktop experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Development:&lt;/strong&gt; Accelerated with &lt;strong&gt;GitHub Copilot&lt;/strong&gt; for rapid UI prototyping and database schema generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app follows a hybrid architecture: it always tries the local model first (preserving privacy and keeping costs at $0), and only falls back to the cloud API if the local model struggles or the user explicitly chooses "Pro Mode."&lt;/p&gt;

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

&lt;p&gt;Open innovation is the &lt;strong&gt;entire reason Khissbooker can exist as a viable side hustle&lt;/strong&gt;. Here's why a closed API approach would fail:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy &amp;amp; Legal Safety:&lt;/strong&gt; Personal media archives are sensitive. Users will not upload thousands of downloaded novels to a corporate cloud API. Open-weight models run locally, so raw text and images never leave the user's machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Prohibitive at Scale:&lt;/strong&gt; Scanning a library of 5,000 files via OpenAI's API would cost $50–$150+ in API fees. That destr…odel, serving users who are otherwise locked out of organized library tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No Vendor Lock-in:&lt;/strong&gt; If Google or OpenAI changes their pricing tomorrow, a closed-API business dies. With open-weight models, Khissbooker can swap models freely — today it's Llama 3.2, tomorrow it could be any new open model that's better.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;In short:&lt;/strong&gt; A closed API would make Khissbooker too expensive, too invasive, and too restricted to serve its target audience. Open innovation made this side hustle possible.&lt;/p&gt;

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

&lt;p&gt;I'm entering the following categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🏆 &lt;strong&gt;Main Prize ($250)&lt;/strong&gt; — Side Hustle: Best open-source AI side hustle project&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Best Use of Gemma ($200)&lt;/strong&gt; — Gemma 2 2B via Google AI Studio for cloud-based tagging (Pro Tier)&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Best Use of MongoDB Atlas ($100)&lt;/strong&gt; — MongoDB Atlas Free M0 Tier for cross-device library metadata sync&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Best Use of a .tech Domain ($100)&lt;/strong&gt; — Registered &lt;a href="https://khissbooker.tech" rel="noopener noreferrer"&gt;khissbooker.tech&lt;/a&gt; via Hacktoberfest promo&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>My First Post: PAge- GrIndr, my AI-assistant for LNS/WNs.🗃️</title>
      <dc:creator>HeroOfMyLife</dc:creator>
      <pubDate>Sun, 04 Oct 2026 20:23:37 +0000</pubDate>
      <link>https://dev.to/heroofmylife/my-first-post-page-grindr-my-ai-assistant-for-lnswns-119f</link>
      <guid>https://dev.to/heroofmylife/my-first-post-page-grindr-my-ai-assistant-for-lnswns-119f</guid>
      <description>&lt;p&gt;My boy reads dozens of light novels and manga every month. He let one of his Novels to marinate too long and came back completely lost—he'd forgotten who the main villain was and why the protagonist was even fighting them!😂&lt;/p&gt;

&lt;p&gt;I built Page-Grindr to help him, since stuff like this is quite common. It's a Local AI helper that helps you backtrack so you can remember where you're at, you just have to upload your epub or pdf file. &lt;/p&gt;

&lt;p&gt;It's like having a personal fandom wiki for every book you read, powered by tinyllama that runs 100% locally on your laptop.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://runway-fled-hypnosis.ngrok-free.dev" rel="noopener noreferrer"&gt;https://runway-fled-hypnosis.ngrok-free.dev&lt;/a&gt;&lt;br&gt;
The app runs locally, but I used Ngrok to create a secure tunnel so my friend could test it remotely while keeping all data on my machine.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/HeroOfMyLife/Page-Grindr" rel="noopener noreferrer"&gt;https://github.com/HeroOfMyLife/Page-Grindr&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Honestly, this was a 2-day rush and I hit a few walls. Like I kept forgetting to add my Mongodb password to app.py. &lt;br&gt;
I started out wanting to use Google's Gemma model, but my laptop's RAM completely choked on it. I had to pivot to TinyLlama running locally through Ollama. It’s much smaller, but for searching through text chunks, it works perfectly with some small hiccups here and there.&lt;br&gt;
For the "memory," I used MongoDB Atlas. I wrote a JSON script that takes the uploaded book, chops it into 1000-character chunks, turns those chunks into numbers (embeddings) using an open-source model called nomic-embed-text, and saves them to the database. &lt;br&gt;
When my friend asks a question, I turn his question into numbers too, ask MongoDB to find the 3 most similar chunks of text, and feed those to TinyLlama to generate the answer. &lt;br&gt;
I also added a sidebar where she can upload the books herself, and a button that uses ElevenLabs to read the AI's answer out loud like an audiobook, although I doubt he'll use it since he's not really an audiobook guy.&lt;/p&gt;

&lt;p&gt;There are two big reasons I did this with open-source tools instead of just hooking it up to ChatGPT:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Privacy: Light novel readers can be weirdly protective of their reading lists. By running the AI locally with Ollama, his books never get uploaded to a third-party server. Plus I'm an up and coming privacy nut, can't trust big tech too much these days. 

Cost: If I used a paid API, processing a 25MB light novel would cost actual money every time my dude uploaded a new book. With open-source models, it costs $0 to run. And honestly I don't have the cash for that currently, I normally just support them when I get pocket money.😅
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;It also meant I could swap models on the fly when my computer ran out of memory. If I was locked into a closed API, the project would have just died when Gemma crashed my RAM.&lt;/p&gt;

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

&lt;p&gt;I'm going for &lt;br&gt;
Best Use of MongoDB Atlas: Used Vector Search to handle the massive amount of text from the books.&lt;/p&gt;

&lt;p&gt;Best Use of ElevenLabs: Used it to generate audio recaps of the lore.&lt;/p&gt;

&lt;p&gt;This is my First Post So I hope I can get some good feed back. And thank you to Dev community and MLH I hope this Octoberfest goes really well.&lt;/p&gt;

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