<?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: Krystian</title>
    <description>The latest articles on DEV Community by Krystian (@hsr88).</description>
    <link>https://dev.to/hsr88</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3646867%2F2eeda811-b844-4cce-b164-ac08903c9d05.png</url>
      <title>DEV Community: Krystian</title>
      <link>https://dev.to/hsr88</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hsr88"/>
    <language>en</language>
    <item>
      <title>I built a silent, privacy-first file organizer that lives in your system tray and sorts your Downloads folder automatically</title>
      <dc:creator>Krystian</dc:creator>
      <pubDate>Sun, 10 May 2026 12:22:49 +0000</pubDate>
      <link>https://dev.to/hsr88/i-built-a-silent-privacy-first-file-organizer-that-lives-in-your-system-tray-and-sorts-your-37ne</link>
      <guid>https://dev.to/hsr88/i-built-a-silent-privacy-first-file-organizer-that-lives-in-your-system-tray-and-sorts-your-37ne</guid>
      <description>&lt;p&gt;I don't know about you, but my Downloads folder has always been a disaster zone. PDFs next to memes, installers tangled with family photos, zip files from six months ago still sitting there unopened. Every few weeks I'd open it, sigh, and spend ten minutes manually dragging things into folders. Then two days later it'd be chaos again.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Mouzi&lt;/strong&gt; — a tiny desktop app that watches your Downloads folder and automatically sorts every file by type into the right subfolder. All while living silently in your system tray.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤔 The Problem
&lt;/h3&gt;

&lt;p&gt;Let's be honest — we all download files constantly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;That one PDF invoice you need for taxes&lt;/li&gt;
&lt;li&gt;A Zoom installer for tomorrow's meeting&lt;/li&gt;
&lt;li&gt;Screenshots from the last debugging session&lt;/li&gt;
&lt;li&gt;The .zip someone sent you on Slack three months ago&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They all land in the same flat folder. Finding a specific file becomes a hunt. The Downloads folder becomes a digital black hole.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ The Solution
&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.amazonaws.com%2Fuploads%2Farticles%2F5s2ijtk0k80l2ts0nwdk.gif" 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.amazonaws.com%2Fuploads%2Farticles%2F5s2ijtk0k80l2ts0nwdk.gif" alt="Mouzi in action" width="600" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mouzi sits in your system tray and monitors your Downloads folder for new files. When something appears, it moves it to the appropriate subfolder based on its extension:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File Type&lt;/th&gt;
&lt;th&gt;Extensions&lt;/th&gt;
&lt;th&gt;Target Folder&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;.jpg, .png, .gif, .webp&lt;/td&gt;
&lt;td&gt;Downloads/Images/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documents&lt;/td&gt;
&lt;td&gt;.pdf, .docx, .xlsx&lt;/td&gt;
&lt;td&gt;Downloads/Documents/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archives&lt;/td&gt;
&lt;td&gt;.zip, .rar, .7z&lt;/td&gt;
&lt;td&gt;Downloads/Archives/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Installers&lt;/td&gt;
&lt;td&gt;.exe, .msi, .dmg&lt;/td&gt;
&lt;td&gt;Downloads/Installers/&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No popups, no notifications, no interruptions. It just works.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Use Case: My Real-Life Workflow
&lt;/h3&gt;

&lt;p&gt;Here's how Mouzi actually fits into my day:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client sends a contract as PDF → lands in Downloads&lt;/li&gt;
&lt;li&gt;Mouzi moves it to &lt;code&gt;Downloads/Documents/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;I download a logo asset as PNG → lands in &lt;code&gt;Downloads/Images/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;I grab a new tool as .exe → lands in &lt;code&gt;Downloads/Installers/&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I don't think about it. I just know where my files are. When I need that contract, I know it's in Documents. When I need that logo, it's in Images. No manual sorting, no mental overhead.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;100% Local &amp;amp; Private&lt;/strong&gt; — Your file names and contents never leave your machine. No cloud, no telemetry, no tracking. Period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source (MIT)&lt;/strong&gt; — The full code is on GitHub. You can audit every line, fork it, modify it, build it yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silent System Tray Operation&lt;/strong&gt; — Runs in the background, completely invisible until you need it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Undo Any Action&lt;/strong&gt; — Every file move is logged in the History tab. Undo with one click if something goes wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Rules Engine&lt;/strong&gt; — Coming soon: define your own sorting rules by extension, name pattern, size, or date. Dynamic placeholders like &lt;code&gt;{year}&lt;/code&gt; or &lt;code&gt;{month}&lt;/code&gt; will let you build powerful, automated folder structures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Folder Support&lt;/strong&gt; — Watch more than just Downloads. Point Mouzi at any folder and it'll apply your rules there too.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚙️ Tech Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Desktop Framework&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tauri.app" rel="noopener noreferrer"&gt;Tauri v2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React 19 + TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build Tool&lt;/td&gt;
&lt;td&gt;Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Tray&lt;/td&gt;
&lt;td&gt;tauri-plugin-tray&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why Tauri instead of Electron?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bundle size: ~5 MB vs 100+ MB&lt;/li&gt;
&lt;li&gt;Memory: Uses the system WebView, not a bundled Chromium&lt;/li&gt;
&lt;li&gt;Rust backend: Native performance for file system operations&lt;/li&gt;
&lt;li&gt;Security: Minimal attack surface, explicit permissions model&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔒 Privacy Philosophy
&lt;/h3&gt;

&lt;p&gt;I built Mouzi because I couldn't find a file organizer that didn't want to upload my file names to some cloud or charge a subscription. Mouzi is built on three principles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local-first&lt;/strong&gt; — everything runs on your machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open source&lt;/strong&gt; — transparent and auditable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero friction&lt;/strong&gt; — no accounts, no paywalls, no features locked behind payments&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  📥 Try It
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🌐 Website: &lt;a href="https://mouzi.cc" rel="noopener noreferrer"&gt;https://mouzi.cc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐙 GitHub: &lt;a href="https://github.com/hsr88/mouzi" rel="noopener noreferrer"&gt;https://github.com/hsr88/mouzi&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mouzi is free forever. If it saves you time and you want to support ongoing development, you can buy me a coffee on Ko-fi.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚧 What's Next
&lt;/h3&gt;

&lt;p&gt;This is an early beta. I'm actively working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custom rules engine with pattern matching&lt;/li&gt;
&lt;li&gt;Scheduled folder cleanup for Downloads older than N days&lt;/li&gt;
&lt;li&gt;Dark mode&lt;/li&gt;
&lt;li&gt;Native Acrylic/Mica effects on Windows&lt;/li&gt;
&lt;li&gt;macOS and Linux builds&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🙏 Feedback Welcome
&lt;/h3&gt;

&lt;p&gt;I'd love honest feedback — bugs, feature ideas, code reviews, everything. I'm a self-taught dev and this is a project I genuinely use daily. If Mouzi could help you too, I'd be thrilled.&lt;/p&gt;

&lt;p&gt;Drop a comment below, star or open an issue on GitHub, or reach out directly. Thanks for reading!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>react</category>
      <category>productivity</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I tested 20 websites for consent timing — 14 loaded analytics before user approval</title>
      <dc:creator>Krystian</dc:creator>
      <pubDate>Thu, 12 Feb 2026 17:56:00 +0000</pubDate>
      <link>https://dev.to/hsr88/i-tested-20-websites-for-consent-timing-14-loaded-analytics-before-user-approval-3e25</link>
      <guid>https://dev.to/hsr88/i-tested-20-websites-for-consent-timing-14-loaded-analytics-before-user-approval-3e25</guid>
      <description>&lt;p&gt;We see cookie banners everywhere.&lt;/p&gt;

&lt;p&gt;But I wanted to check something simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do websites actually wait for user consent before loading analytics?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I tested 20 sites (SaaS, e-commerce, agencies, blogs).&lt;/p&gt;

&lt;h3&gt;
  
  
  The result?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;14 out of 20 loaded analytics before the user clicked “Accept”.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In most cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The banner was visible&lt;/li&gt;
&lt;li&gt;No interaction had happened&lt;/li&gt;
&lt;li&gt;But GA/GTM requests were already firing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visually compliant.&lt;br&gt;
Technically… not really.&lt;/p&gt;


&lt;h2&gt;
  
  
  How I measured it
&lt;/h2&gt;

&lt;p&gt;Instead of manually watching DevTools every time, I built a small tool to monitor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cookies being set&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;localStorage&lt;/code&gt; / &lt;code&gt;sessionStorage&lt;/code&gt; usage&lt;/li&gt;
&lt;li&gt;Network requests to common tracking domains&lt;/li&gt;
&lt;li&gt;The exact timestamp of the consent click&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Core logic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;If tracking_timestamp &amp;lt; consent_click_timestamp
→ tracking happened before consent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Simple in theory. Messy in real-world implementations.&lt;/p&gt;




&lt;h2&gt;
  
  
  The tricky parts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SPAs injecting CMP late&lt;/li&gt;
&lt;li&gt;GTM containers firing too early&lt;/li&gt;
&lt;li&gt;Server-side tagging hiding third-party domains&lt;/li&gt;
&lt;li&gt;Heuristic detection vs explicit CMP integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most issues looked like misconfiguration — not intent.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;As developers, we often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;install GTM&lt;/li&gt;
&lt;li&gt;plug in analytics&lt;/li&gt;
&lt;li&gt;add a CMP&lt;/li&gt;
&lt;li&gt;assume everything is fine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But unless you verify timing, tracking may fire earlier than expected.&lt;/p&gt;

&lt;p&gt;The browser doesn’t lie.&lt;br&gt;
Network requests don’t lie.&lt;br&gt;
Timestamps don’t lie.&lt;/p&gt;




&lt;h2&gt;
  
  
  If you want to test this yourself
&lt;/h2&gt;

&lt;p&gt;I packaged the tool into a Chrome extension called &lt;strong&gt;ConsentScope&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can check it here:&lt;br&gt;
👉 &lt;a href="https://www.consentscope.pro/" rel="noopener noreferrer"&gt;https://www.consentscope.pro/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s not a legal tool — just a technical way to inspect what fires before and after consent.&lt;/p&gt;

&lt;p&gt;Curious how others are validating consent timing in their projects.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>privacy</category>
      <category>extensions</category>
      <category>chrome</category>
    </item>
    <item>
      <title>No Kotlin? No Problem. How I shipped Android Apps using React &amp; Capacitor</title>
      <dc:creator>Krystian</dc:creator>
      <pubDate>Mon, 12 Jan 2026 17:50:29 +0000</pubDate>
      <link>https://dev.to/hsr88/no-kotlin-no-problem-how-i-shipped-android-apps-using-react-capacitor-9ja</link>
      <guid>https://dev.to/hsr88/no-kotlin-no-problem-how-i-shipped-android-apps-using-react-capacitor-9ja</guid>
      <description>&lt;p&gt;For years, I thought mobile development was reserved for "native" developers. I looked at Java and Kotlin code, and frankly, I wanted to run away. I am a web developer. I think in terms of React components, hooks, and CSS.&lt;/p&gt;

&lt;p&gt;But this week, I achieved something I didn't think was possible for me: I published my first two applications on the Google Play Store. And the best part? I didn't write a single line of native code.&lt;/p&gt;

&lt;p&gt;Here is how I did it, and one mistake you should avoid.&lt;/p&gt;

&lt;p&gt;The False Start: &lt;em&gt;PWABuilder&lt;/em&gt; At first, I tried to take the shortest shortcut possible. I used PWABuilder to simply package my existing Progressive Web App into an APK.&lt;/p&gt;

&lt;p&gt;It sounded perfect on paper, but in reality, it felt... pointless. While it technically worked, I felt like I had zero control over the native experience. It was just a website pretending to be an app, with limited access to device features and a shaky user experience. I realized that if I wanted to be on the Store, I needed something more robust.&lt;/p&gt;

&lt;p&gt;The Solution: &lt;strong&gt;React + Capacitor&lt;/strong&gt;. That’s when I found Capacitor. If you are a React developer, this tool is a superpower. Unlike PWABuilder, Capacitor allows you to keep your standard web development workflow but gives you a runtime that bridges the web world with the native world.&lt;/p&gt;

&lt;p&gt;My workflow looked like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I built my UI in React (just like I do for the web).&lt;/li&gt;
&lt;li&gt;I used Capacitor to wrap the build output.&lt;/li&gt;
&lt;li&gt;I generated the Android project folder and opened it in Android Studio only to hit the "Build" button.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Suddenly, I had access to native plugins, a real file structure, and a performant app that didn't feel like a cheap wrapper.&lt;/p&gt;

&lt;p&gt;The Boss Battle: Google Play Console Coding the app was actually the easy part. The real challenge was the Google Play Console. If you are an indie developer, be prepared for a bureaucratic nightmare:&lt;/p&gt;

&lt;p&gt;The Verification Process: It’s getting stricter every year.&lt;/p&gt;

&lt;p&gt;Privacy Policies: You can't just ignore them anymore.&lt;/p&gt;

&lt;p&gt;Testing Tracks: You need 12 testers for 14 days before you can even think about production (if you have a personal account created after Nov 2023) - annoying AF...&lt;/p&gt;

&lt;p&gt;It took me some time, but finally seeing that green "Approved" status is one of my biggest wins this year.&lt;/p&gt;

&lt;p&gt;The Result Both apps are now live. They aren't perfect, but they are shipped.&lt;/p&gt;

&lt;p&gt;So If you are a web developer afraid of mobile stores: Just do it. Don't waste time on shortcuts like basic PWA wrappers if you want a real store presence. Go with Capacitor (or React Native), leverage your JS skills, and push through the Google Play verification. It's worth it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>android</category>
      <category>mobile</category>
      <category>react</category>
    </item>
    <item>
      <title>Stop Crashing VS Code: How to View 10GB Log Files in Your Browser</title>
      <dc:creator>Krystian</dc:creator>
      <pubDate>Sat, 06 Dec 2025 00:13:59 +0000</pubDate>
      <link>https://dev.to/hsr88/stop-crashing-vs-code-how-to-view-10gb-log-files-in-your-browser-17i6</link>
      <guid>https://dev.to/hsr88/stop-crashing-vs-code-how-to-view-10gb-log-files-in-your-browser-17i6</guid>
      <description>&lt;p&gt;The "Friday Deploy" Nightmare 😱&lt;/p&gt;

&lt;p&gt;We've all been there. It’s Friday afternoon, production acts up, and you need to investigate. You SSH into the server, find the error.log, and... it’s 8.5 GB.&lt;/p&gt;

&lt;p&gt;You download it. You try to open it with VS Code.&lt;br&gt;
Result: The window freezes. Your fans spin up like a jet engine. The OS asks if you want to kill the process.&lt;/p&gt;

&lt;p&gt;You try Notepad++. It complains the file is too big.&lt;br&gt;
You try less or grep in the terminal, but reading JSON logs in a console is a pain.&lt;/p&gt;

&lt;p&gt;This specific frustration led me to build a tool that solves this problem once and for all.&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.amazonaws.com%2Fuploads%2Farticles%2Fc6s47xlknayfxv2gkmq2.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.amazonaws.com%2Fuploads%2Farticles%2Fc6s47xlknayfxv2gkmq2.png" alt=" " width="425" height="439"&gt;&lt;/a&gt;&lt;br&gt;
Meet Log Voyager 🛸&lt;/p&gt;

&lt;p&gt;I built Log Voyager – a specialized, web-based tool designed specifically to handle massive log files without eating your RAM.&lt;/p&gt;

&lt;p&gt;It runs entirely in your browser, works offline, and—most importantly—it opens 10GB+ files instantly.&lt;/p&gt;

&lt;p&gt;🛠️ How It Works (The Technical Part)&lt;/p&gt;

&lt;p&gt;Why does VS Code crash? Because it tries to load the entire file string into memory (RAM) to tokenize and render it.&lt;/p&gt;

&lt;p&gt;Log Voyager uses a different approach: File Slicing.&lt;/p&gt;

&lt;p&gt;Instead of reading the whole file, it uses the native HTML5 File API, specifically the .slice() method.&lt;/p&gt;

&lt;p&gt;It reads the file metadata (size).&lt;/p&gt;

&lt;p&gt;It calculates which "chunk" (e.g., 50KB) corresponds to your current scroll position.&lt;/p&gt;

&lt;p&gt;It reads only those bytes from the disk into memory.&lt;/p&gt;

&lt;p&gt;This means the memory footprint is constant (~20MB), whether your log file is 5MB or 500GB. It acts like a "window" sliding over the data on your hard drive.&lt;/p&gt;

&lt;p&gt;✨ Key Features for Backend Devs&lt;/p&gt;

&lt;p&gt;Besides not crashing your computer, I added features that I personally missed in other tools:&lt;/p&gt;

&lt;p&gt;🔒 Privacy First (Local Execution): This was critical. Even though it's a website, your files are never uploaded anywhere. The processing happens 100% locally in your browser's sandbox. Safe for sensitive production logs.&lt;/p&gt;

&lt;p&gt;JSON Prettifier: If your logs are messy JSON blobs, Log Voyager detects them. One click formats them into a readable tree structure.&lt;/p&gt;

&lt;p&gt;Warp Jump Bookmarks: Navigating a 10GB file is hard. You can "bookmark" a line, scroll 5GB down, and then "warp" back to the exact byte offset instantly.&lt;/p&gt;

&lt;p&gt;Mobile Friendly: Since it's efficient, it works perfectly on mobile. You can analyze logs on your phone while away from your desk.&lt;/p&gt;

&lt;p&gt;🚀 Try It Out&lt;/p&gt;

&lt;p&gt;It is a free, open-source project. If you are looking for a reliable huge log file viewer, give it a spin next time you face a giant log file.&lt;/p&gt;

&lt;p&gt;👉 Live App: logvoyager.cc&lt;br&gt;
💻 GitHub: hsr88/log-voyager&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you have any feature requests! I'm actively working on adding regex filtering next.&lt;/p&gt;

&lt;p&gt;Happy debugging! 🐛&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>A Cyberpunk notification library with glitch animations and typewriter effects.</title>
      <dc:creator>Krystian</dc:creator>
      <pubDate>Thu, 04 Dec 2025 17:48:58 +0000</pubDate>
      <link>https://dev.to/hsr88/a-cyberpunk-notification-library-with-glitch-animations-and-typewriter-effects-3mo7</link>
      <guid>https://dev.to/hsr88/a-cyberpunk-notification-library-with-glitch-animations-and-typewriter-effects-3mo7</guid>
      <description>&lt;p&gt;Just finished my latest open-source project: CyberToast.js. A zero-dependency notification system focused on Sci-Fi aesthetics. It taught me a lot about DOM manipulation and CSS animations. Check it out on GitHub!&lt;br&gt;
&lt;a href="https://github.com/hsr88/cyber-toast-js" rel="noopener noreferrer"&gt;https://github.com/hsr88/cyber-toast-js&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
