I built a tool for sharing things instantly across devices — it's now something my dev team uses daily
It started small. I was running something on localhost and wanted to quickly check it on my phone. Typed the IP, added the port, hoped for the best. Did that enough times that I thought — why not just build a proper UI for this?
So I did. And then I kept adding things.
What started as a personal convenience tool has quietly become something my team reaches for during almost every sprint. This post is about how that happened, what it actually looks like in practice, and where I want to take it — because honestly I want feedback from other devs on what's missing or what could be better.
What it is
Instbyte is a self-hosted local network sharing tool. One command on any machine:
npx instbyte
A URL appears. Anyone on the same network opens it in their browser. That's it — no install on their end, no account, no cloud. Everything syncs in real time.
You can share files, text snippets, links, API payloads, logs, build artifacts — anything. It all lives in channels, auto-deletes after a configurable retention window, and never leaves your network.
How it actually gets used in a team
This is the part I want to talk about more than the technical stuff, because the use cases kind of surprised me as they emerged.
Sharing payloads and logs mid-sprint
Someone hits an unexpected API response. Instead of copy-pasting it into Slack, screenshotting it, or trying to describe it — they drop it into Instbyte. Everyone on the sprint who has the URL open sees it instantly. We can all look at the same JSON at the same time without anyone forwarding anything.
Same with logs. A long error trace is awkward in a chat message. Drop it in, it renders with syntax highlighting, everyone can read it properly.
Build files between machines
I have situations where something is built on one machine and needs to get to another quickly. Drag it onto the page, it's there. The person on the other machine clicks it, it downloads. No USB, no cloud upload, no "I'll send it to you on WhatsApp."
For larger files — the default cap is 2GB — it shows a progress bar during upload so you know it's moving.
During standups and pair sessions
This one snuck up on me. When you're pairing or in a standup and someone says "here's the endpoint" or "use this token for testing" — instead of DMing it or putting it in a shared doc that you have to find later — it just goes into the general channel. It's there, everyone on the call can copy it, it disappears after 24 hours anyway so it doesn't clutter anything.
The paste-anywhere behaviour helps here too. You don't have to click into an input — paste anywhere on the page and it sends. When you're mid-conversation that small thing actually matters.
Moving assets between designers and devs
Drop an image, a mockup, an icon export — it previews inline. No "did you get the file I sent" back and forth. It's there, you see it, you download it if you need it.
The features that make it feel like a team tool rather than a file drop
A few things I've added that changed how it feels to use:
Channels — keeps things from becoming a single noisy feed. We have general, builds, assets, and a temp channel for things that definitely don't need to survive the day.
Read receipts — shows how many devices have actually viewed each item. Small thing but genuinely useful when you've dropped something and want to know if your teammate saw it before the standup.
Expiry badges — items show a countdown to when they'll auto-delete. Keeps the mental model clean. Nothing lingers. If something needs to stay, you pin it.
Inline editing — update a snippet in place without deleting and re-pasting. Useful when an endpoint changes mid-sprint and you want to correct what's already there.
Passphrase auth — if you want to lock it down so only your team gets in, one line in the config file.
White-label — set a custom name, colour, logo. We run it as "Team Hub" internally. Sounds small but it makes it feel like yours rather than a random tool you're running.
Running it
**npx instbyte
**```
{% endraw %}
Or globally:
{% raw %}
```bash
npm install -g instbyte
For persistent team use, throw it behind pm2:
pm2 start "npx instbyte" --name instbyte
Config is optional — everything has sensible defaults. If you want to customise:
{
"auth": { "passphrase": "yourteampassword" },
"storage": { "maxFileSize": "2GB", "retention": "24h" },
"branding": { "appName": "Team Hub", "primaryColor": "#7c3aed" }
}
Drop that as instbyte.config.json in the directory you run from. That's it.
Where it's at and where it's going
Currently at v1.9. It's MIT licensed, open source, built on Node.js, Express, Socket.IO, and SQLite.
v2.0 is where I want to make it easier to run without Node at all — Docker image, standalone binaries for macOS, Windows, and Linux. The goal is that anyone on a team can run it with one download regardless of their setup.
But before I get there I genuinely want to hear from other developers using it or considering it. What's missing for your workflow? What would make it something you'd actually keep running on your machine? What's confusing, what's unnecessary, what's the one thing that's not there?
GitHub: https://github.com/mohitgauniyal/instbyte
npm: https://www.npmjs.com/package/instbyte
npx instbyte

Top comments (0)