How I built a WiFi file transfer tool with pure Node.js
How a small frustration turned into an open source tool — and what it says about building with AI.
It started with the most boring problem imaginable.
I had a file on my laptop. I needed it on my phone. Both were sitting on the same desk, connected to the same WiFi. And yet — the usual options were all mildly annoying. Cable, Bluetooth, emailing it to myself, some sharing app that wanted an account and probably my location.
I didn't want any of that. I wanted to drag a file into a browser and open a URL on my phone. Done.
So I just asked
I described exactly what I wanted to Claude — a local network file sharer, pure Node.js, no dependencies, drag and drop upload, downloadable from any device on the same WiFi. Something I could run with node index.js and forget about.
It came back with a working implementation on the first try. Not a scaffold, not a skeleton — a fully functional server with a UI, upload progress, live file list updates via SSE, download and delete. The kind of thing that would have taken me an afternoon to assemble properly.
I read through it carefully. The logic was sound. The structure was flat — everything in one file, the way quick scripts usually are — but the fundamentals were right.
What I actually did
Rather than just use it as-is, I spent some time making it something I'd be comfortable putting my name on.
I split the single file into a proper structure: config, server, routes, file store, event bus, utilities, and the UI as its own module. Each file has one job. If you want to change how files are stored, you touch store.js. If you want to change the UI, you touch ui.js. Nothing bleeds into anything else.
I rewrote the frontend with a cleaner design — soft light theme, readable typography, sensible hierarchy. The original worked, but it was visually loud for what is essentially a utility.
I added a README, a .gitignore that excludes the uploads folder, a package.json with a dev script using Node's built-in --watch flag.
Then I open sourced it.
FileBeam
The project is called FileBeam. It does one thing: lets you share files across your local network through a browser. No accounts, no cloud, no dependencies beyond Node 18.
git clone https://github.com/IshitRaj/FileBeam.git
cd filebeam
node index.js
Open the network URL on any device on your WiFi and you're sharing files.
The transfer speed is essentially raw HTTP over LAN — on a decent 5 GHz WiFi setup you're looking at 30–80 MB/s in practice, which is faster than most dedicated sharing apps because there's no encryption overhead or relay routing involved.
The part worth noting
I've been thinking about what actually happened here. I didn't design a system architecture, I didn't plan a module structure, I didn't write a single line from scratch. I described a problem clearly and got something that worked.
That's not a new observation at this point — everyone has a version of this story. But what felt different to me was how much the subsequent work mattered. Reading the output critically, knowing what good structure looks like, deciding what to keep and what to change, writing the documentation — none of that was automated. The AI compressed the starting point from zero to something functional. What I brought was the judgment to turn that into something worth sharing.
That distinction feels important to hold onto. The tool does the generating. You still do the thinking.
If you ever find yourself needing to move files around a local network without fuss, FileBeam is there: github.com/IshitRaj/filebeam
Issues and PRs are open.