Inspiration

We wanted to solve a simple but frustrating problem — sharing files and watching content together in real time usually requires multiple tools, uploads, or delays. We wanted something instant, peer-to-peer, and simple, where people can just connect and start sharing or streaming without friction.

What it does

Vault is a real-time platform where users can: Send files instantly using a simple code or link Host watch parties and stream content live Chat and stay connected during sessions Everything works peer-to-peer, so there’s no waiting for uploads — it’s fast, direct, and secure.

How we built it

Frontend: React + Tailwind Real-time communication: WebSockets (signaling) Streaming & file transfer: WebRTC (P2P) Infrastructure: Deployed with a custom backend + TURN servers for reliability We implemented: ICE candidate buffering to handle race conditions TURN fallback for real-world network compatibility Clean connection lifecycle handling to avoid leaks

Challenges we ran into

WebRTC connection failures across different networks (NAT issues) Handling ICE candidates timing (before remote description) Ensuring stable connections using TURN servers Managing multiple peer connections (host → multiple viewers) Debugging real-time systems (harder than normal APIs)

Accomplishments that we're proud of

Built a fully working P2P file + streaming system Achieved real-time communication with low latency Designed a system that works across different network conditions Clean and scalable WebRTC architecture (not just a demo)

What we learned

WebRTC is powerful but tricky — especially ICE + NAT traversal TURN servers are essential for real-world usage Real-time systems require careful handling of state and timing Debugging distributed systems is a different skill altogether

What's next for Vault

Add multi-user rooms with better synchronization Improve UI/UX for smoother onboarding Add recording & playback features Optimize bandwidth and performance Turn Vault into a production-ready collaboration tool

Built With

Share this project:

Updates