<?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>Forem: lagging</title>
    <description>The latest articles on Forem by lagging (@lagging).</description>
    <link>https://forem.com/lagging</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%2F3664195%2F25c602ad-2bc8-4dfc-a338-128f5d2863ba.png</url>
      <title>Forem: lagging</title>
      <link>https://forem.com/lagging</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lagging"/>
    <language>en</language>
    <item>
      <title>OmNi: The Self-Hosted File Sharer for Simplicity and Privacy</title>
      <dc:creator>lagging</dc:creator>
      <pubDate>Sat, 27 Dec 2025 16:03:40 +0000</pubDate>
      <link>https://forem.com/lagging/omni-the-self-hosted-file-sharer-for-simplicity-and-privacy-3lda</link>
      <guid>https://forem.com/lagging/omni-the-self-hosted-file-sharer-for-simplicity-and-privacy-3lda</guid>
      <description>&lt;p&gt;What I Built&lt;br&gt;
OmNi is a self-hosted, local network file-sharing app. No cloud, no internet, no subscriptions. Just fast, private sharing across your home Wi-Fi with a UI that actually looks premium.&lt;/p&gt;

&lt;p&gt;

&lt;iframe src="https://player.mux.com/uiznU9Ih99NwBYaf2WugChMDPn00lms02USxr7R0202UZkE" width="710" height="399"&gt;
&lt;/iframe&gt;



&lt;br&gt;
I built OmNi because I was tired of fighting my own devices. For a long time, I used an iPhone 6, and trying to get a simple file from that phone to my Windows PC was absolute hell. iTunes is clunky, and every "file sender" app I tried was either filled with ads, didn't work, or wanted me to upload my private stuff to their cloud just to move it two feet away to my computer.&lt;/p&gt;

&lt;p&gt;I just wanted a single-file solution that ran locally on my router. I went on YouTube, searched for how to build my own, and decided to just make exactly what I needed.&lt;/p&gt;

&lt;p&gt;Two Weeks of "Going Overboard"&lt;br&gt;
I started with a simple idea: a basic script with a config file for passwords. But once I got into it, I couldn't stop. I spent two weeks straight learning and testing.&lt;/p&gt;

&lt;p&gt;I had never used SQLAlchemy or Bcrypt before, but I wanted this to feel like a real product—something secure enough to actually sell. I taught myself how to hash passwords and manage a database from scratch. I ended up building a way more professional backend than I ever planned, just because I wanted it to be "right."&lt;/p&gt;

&lt;p&gt;Technical Highlights&lt;br&gt;
The Liquid Glass Challenge&lt;br&gt;
I’ve always loved Apple’s design language. I wanted to replicate that "Liquid Glass" look using only Vanilla CSS. I pushed CSS to its absolute limit—learning how to layer backdrop-filter, transparency, and shadows to get that frosted, high-end feel without using any heavy frameworks.&lt;/p&gt;

&lt;p&gt;Zero Setup: Because I hate 20-step installation guides&lt;br&gt;
I honestly hate it when a "simple" tool requires a massive manual just to get started. If you have to mess with environment variables and terminal commands just to send a photo to your PC, I’ve basically just built another version of the iTunes nightmare I was trying to escape.&lt;/p&gt;

&lt;p&gt;So, during my "overboard" phase, I made sure OmNi could be redistributed as a standalone Windows .exe.&lt;/p&gt;

&lt;p&gt;No Python, No Terminal: You don't need to install anything. I wanted this to be a "just run it" experience. Double-click the .exe, and you’re sharing files.&lt;/p&gt;

&lt;p&gt;The App handles the heavy lifting: On the first run, OmNi automatically sets up its own home in %APPDATA%\OmNi. It creates your config and database folders for you, so you never have to go digging through code just to change a setting.&lt;/p&gt;

&lt;p&gt;Make it yours: I’ve included the full build guide in the repo. If you want to swap in a different icon or rename the app, you can rebuild it as your own custom binary in seconds.&lt;/p&gt;

&lt;p&gt;Under the Hood&lt;br&gt;
Backend: Flask and SQLAlchemy. I learned how to structure a real database while building this.&lt;/p&gt;

&lt;p&gt;Security: Production-grade Bcrypt hashing. Even though it's local, your data is locked down.&lt;/p&gt;

&lt;p&gt;Snappy Performance: 100% Vanilla JS/CSS. No bloat, just direct LAN speeds limited only by your router.&lt;/p&gt;

&lt;p&gt;Demo &amp;amp; Source&lt;br&gt;
Source Code: &lt;a href="https://codeberg.org/lagging/omni" rel="noopener noreferrer"&gt;Codeberg Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>muxchallenge</category>
      <category>showandtell</category>
      <category>video</category>
    </item>
  </channel>
</rss>
