Product case
StarShare
Product Design & Development

Open one address and the people on your network appear. Tap one to send a file. The bytes travel browser to browser; the server never handles them.
01
The Challenge
AirDrop only lives inside Apple, and Quick Share only inside certain Android and Windows pairings. Sending one deck across systems means uploading to a cloud and then fighting permissions and expiring links. The hard part is not moving the bytes — it is still being able to tell someone why they did not arrive.
02
My Contribution
- Product design and full-stack development across the client, the signalling service and the self-hosted deployment.
- WebRTC DataChannel transfer, chunked streaming and resume after a dropped connection.
- The room model, where a shared network lists people automatically and a four-character code or QR is the discovery fallback.
- Docker Compose, Caddy and coturn, so the public demo and a self-hosted install run the same code.
03
System & Decisions
BrowserSignalling serviceWebRTC DataChannelcoturn relayTheir browser
- Not seeing someone and seeing them but failing to reach them are two different failures, handled by the code and QR fallback and by TURN, never blurred into one message.
- Integrity is verified against a root of chunk digests rather than a whole-file SHA-256, because hashing the whole file means reading it into memory, which is exactly what makes a large file kill the tab.
- The receiver writes completed chunks into an OPFS scratch file whose length is always a multiple of the chunk size, so a resume can pick up on a clean boundary.
- The signalling service never touches file bytes, and the group cloud records only a name, a size and an expiry while the file stays in the uploader's browser.
- After a protocol change, older clients are refused as unsupported rather than allowed to report a transfer that silently did not verify.
04
Result
- Delivery
- The sender only shows a file as delivered once the receiver's root of chunk digests matches.
- Resume
- The receiver reports the bytes already on disk and the sender continues from that chunk boundary instead of restarting.
- Group cloud
- Drop a file on the cloud for 30 minutes and anyone in the same circle downloads it themselves, up to four at a time. Close the tab and the cloud is gone.
- Native app
- In development. The shipped surface today is the web app, reached by opening the same address.
05
Credits
A personal open-source project, MIT licensed.
- Product design and development
- Jacki Chen