<?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: Yusuf Praditya Rahman</title>
    <description>The latest articles on DEV Community by Yusuf Praditya Rahman (@yusuf_pradityarahman_407).</description>
    <link>https://dev.to/yusuf_pradityarahman_407</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%2F4192085%2F5f16f421-dff4-4c61-a984-be6f8dc34d10.jpg</url>
      <title>DEV Community: Yusuf Praditya Rahman</title>
      <link>https://dev.to/yusuf_pradityarahman_407</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yusuf_pradityarahman_407"/>
    <language>en</language>
    <item>
      <title>My Screenshots folder was a graveyard of timestamps — local Gemma names them while I keep snipping</title>
      <dc:creator>Yusuf Praditya Rahman</dc:creator>
      <pubDate>Sun, 25 Oct 2026 17:56:02 +0000</pubDate>
      <link>https://dev.to/yusuf_pradityarahman_407/my-screenshots-folder-was-a-graveyard-of-timestamps-local-gemma-names-them-while-i-keep-snipping-443d</link>
      <guid>https://dev.to/yusuf_pradityarahman_407/my-screenshots-folder-was-a-graveyard-of-timestamps-local-gemma-names-them-while-i-keep-snipping-443d</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;br&gt;
International Sloth Day asked for tools that reward laziness. Mine is for the laziest chore in a developer week: renaming screenshots.&lt;br&gt;
On Indonesian Windows, Snipping Tool saves files like &lt;code&gt;Cuplikan layar 2026-10-09 153059.png&lt;/code&gt;. After a sprint of bugs, Auth0 banners, and Figma panels, that folder is a clock graveyard. Finding “the red login error from Thursday” means opening twenty files.&lt;br&gt;
I used to rename them by hand. Then I stopped.&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Snipname&lt;/strong&gt; is a Windows app that snips like Snipping Tool, then lets a &lt;strong&gt;local Gemma&lt;/strong&gt; vision model rename the file in the background.&lt;br&gt;
Press &lt;strong&gt;New&lt;/strong&gt; or &lt;strong&gt;Print Screen&lt;/strong&gt;, drag a rectangle, release. The image is on the clipboard and in &lt;code&gt;Pictures\Screenshots&lt;/code&gt; immediately. While you take the next snip, Gemma looks at the previous one and turns the timestamp into something searchable — &lt;code&gt;auth0-login-error.png&lt;/code&gt;, &lt;code&gt;figma-export-dialog.png&lt;/code&gt;, &lt;code&gt;ollama-model-list.png&lt;/code&gt;.&lt;br&gt;
You stay lazy on purpose: the save never waits for the model. The next Print Screen is free.&lt;br&gt;
Who gets lazier? Anyone who snips a lot and searches by what’s on the screen, not by the clock.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/-J37wCOvnUY" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product site on a &lt;code&gt;.tech&lt;/code&gt; domain: &lt;a href="https://snipname.tech" rel="noopener noreferrer"&gt;https://snipname.tech&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Windows NSIS / MSI / zip: &lt;a href="https://github.com/cvpfus/snipname/releases/tag/v0.1.0" rel="noopener noreferrer"&gt;v0.1.0&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&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/cvpfus" rel="noopener noreferrer"&gt;
        cvpfus
      &lt;/a&gt; / &lt;a href="https://github.com/cvpfus/snipname" rel="noopener noreferrer"&gt;
        snipname
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Rename Windows screenshots from visual context with local Gemma (Ollama) — Tauri + React
    &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;Snipname&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Windows Snipping Tool saves files like &lt;code&gt;Cuplikan layar 2026-10-09 153059.png&lt;/code&gt;. After a few dozen, finding one screenshot is painful.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Snipname&lt;/strong&gt; watches your Screenshots folder, asks a &lt;strong&gt;local Gemma&lt;/strong&gt; model (via Ollama) what is on the image, and renames the file to a short searchable slug — e.g. &lt;code&gt;auth0-login-error.png&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Built for &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19" rel="nofollow"&gt;DEV Hacktoberfest Week 3 — Slow and Steady&lt;/a&gt;: open-weight AI that does the boring work so you don’t.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Stack&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tauri 2 + React + TypeScript&lt;/strong&gt; — small native Windows desktop app&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama + Gemma 3 (vision)&lt;/strong&gt; — names screenshots on your machine; nothing leaves the laptop&lt;/li&gt;
&lt;li&gt;No Temporal (on purpose): a simple scan → dry-run → rename loop is enough&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Prerequisites&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://rustup.rs/" rel="nofollow noopener noreferrer"&gt;Rust&lt;/a&gt; + Tauri &lt;a href="https://tauri.app/start/prerequisites/" rel="nofollow noopener noreferrer"&gt;Linux/Windows prerequisites&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Node 20+ and &lt;a href="https://pnpm.io/" rel="nofollow noopener noreferrer"&gt;pnpm&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ollama.com/" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt; with a vision-capable Gemma, e.g. &lt;code&gt;ollama pull gemma3:4b&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Develop&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pnpm install
pnpm tauri dev&lt;/pre&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Point the folder at &lt;code&gt;%USERPROFILE%\Pictures\Screenshots&lt;/code&gt; (default on Windows).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New&lt;/strong&gt; opens the…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cvpfus/snipname" 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;p&gt;The design rule was one sentence: &lt;strong&gt;snip first, name later&lt;/strong&gt;.&lt;br&gt;
Capture matches Windows muscle memory — rectangle, window, full screen, freeform, optional delay, Escape to cancel. On release, Rust copies and writes the file. A background queue then calls &lt;strong&gt;Ollama&lt;/strong&gt; on &lt;code&gt;127.0.0.1:11434&lt;/code&gt; with a vision Gemma (&lt;code&gt;gemma3:4b&lt;/code&gt; by default). The model returns kebab-case English plus a one-line reason you can reject. Name collisions become &lt;code&gt;name-2.png&lt;/code&gt;, never overwrites.&lt;br&gt;
Older unnamed dumps still work: &lt;strong&gt;Scan → select → Dry run → Rename&lt;/strong&gt;. Dry run and Rename only touch what you checked.&lt;br&gt;
Stack: Tauri 2 + React + TypeScript for the UI, Rust for capture and rename, Ollama for local inference. No Temporal, no cloud vision, no account. If Ollama is asleep, you still have a normal snip — the rename just waits.&lt;/p&gt;

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

&lt;p&gt;A cloud “screenshot → name” API would upload every Auth0 error, every half-finished dashboard, every personal chat. That is the opposite of a tool I would trust on a work laptop.&lt;br&gt;
Open-weight Gemma on Ollama means the pixels never leave the machine, naming still works offline after &lt;code&gt;ollama pull&lt;/code&gt;, and I can swap models in a dropdown without rewriting the app. Open innovation is what made the lazy path safe enough to use.&lt;/p&gt;

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

&lt;p&gt;Before: snip → paste somewhere → later open Screenshots → play timestamp roulette.&lt;br&gt;
After: snip → keep working → search &lt;code&gt;auth0&lt;/code&gt; in Explorer.&lt;br&gt;
That is the Slow and Steady bet. Gemma does the boring rename after the useful action. I stay in flow; the file becomes findable without me.&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; — local vision Gemma via Ollama names files from the image itself&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of a .tech Domain&lt;/strong&gt; — &lt;a href="https://snipname.tech" rel="noopener noreferrer"&gt;snipname.tech&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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