Inspiration
-It started with a simple question: If the internet stopped working tomorrow, how would we tell our neighbors we're safe? -We realized smartphones are powerful but depend on fragile, centralized networks. We wanted to build a system where every device becomes part of a resilient, people-powered network.
What it does
MeshRelay is an offline-first, peer-to-peer communication terminal that allows users to: -Create communal data drops using animated QR codes -Relay messages across multiple devices without any central network -Establish real-time connections using an optical WebRTC handshake -Verify messages using ECDSA P-256 signatures
How we built it
-Built with React 19 and Vite as a PWA for offline reliability -Used Dexie.js with IndexedDB for local-first storage -Used LZ-String for compression and WebRTC for data transfer -Implemented security using the Web Crypto API for device identity and signing
Challenges we ran into
-The biggest challenge was WebRTC signaling without a server. We solved it using an optical handshake with QR codes. -Another issue was QR density. Large data made QR codes unreadable, so we split it into smaller chunks and used a frame-based system for reliable scanning.
Accomplishments that we're proud of
-We achieved background WebRTC persistence, allowing connections to stay active even when users switch tasks. -We also reached a high success rate in scanning multi-frame QR-based data drops, even on older devices.
What we learned
-We learned how distributed systems work without a central server, including handling data flow, avoiding overload, and ensuring trust using cryptography. -We also discovered the potential of using the browser camera as a data transmission tool.
What's next for Saket-meshrelay
-Add offline maps with GPS-based data drops -Explore Web Bluetooth for background discovery -Build a LoRa bridge for long-distance communication
Built With
- cloudflare
- indexeddb
- nextjs
- react
- typescript
- webrtc
Log in or sign up for Devpost to join the conversation.