back to work
2026mobile · web · backendSolo·Q1 2026 — ~140 commits·live · in iteration

Pocketbridge.

Cross-device file sync. End-to-end encrypted.

pocketbridge · device sync · mtproto 2.0
mobiledrop · paste · syncbrowser▣ mtproto 2.0
redis · 12mse2e encrypted

problem

Sending a file from your phone to your laptop still routes through email, cloud drives, or trust-me-bro chat apps. The fast options are insecure, the secure options are slow, and none of them are device-to-device.

approach

Two clients pair through a Node + Redis broker. Once paired, payloads are encrypted with an MTProto-2.0-style scheme (built on NaCl/tweetnacl) so the server never sees plaintext. Web client is a Next.js PWA; the mobile client is a full Expo / React Native app. Redis pub/sub keeps handshake latency under 20ms even across continents.

outcome

Live on Vercel. Phone-to-laptop transfers in under a second on the same network. End-to-end encrypted in transit and at rest, with no plaintext touching the server.

handshake p95
< 20 ms
commits
~140 in Q1
plaintext on server
0 bytes

stack rationale

  • Redis pub/subPairing is a transient signal, not durable data. Redis lets two clients find each other in single-digit milliseconds without writing to disk.
  • MTProto 2.0 (built on NaCl/tweetnacl)Implemented the MTProto 2.0 scheme — Ed25519 signatures, ECDH key agreement, HKDF derivation — over NaCl/tweetnacl primitives. Authenticated encryption with forward secrecy; the server never sees plaintext.
  • Next.js PWABrowser is the universal client. Install-to-home-screen means the web app behaves like a native app on mobile too.

full stack

  • TypeScript
  • Next.js
  • Node.js
  • Redis
  • MTProto 2.0 (NaCl)
  • Docker