PaperPhone IM
A WeChat-style, end-to-end encrypted instant messaging application.
Security
- Stateless ECDH + XSalsa20-Poly1305 — per-message ephemeral keys, forward secrecy without session state
- Zero-knowledge server — only ciphertext is stored; private keys never leave the device
- Four-tier key persistence — memory → localStorage → sessionStorage → IndexedDB, survives WebView restarts
Features
- 📹 Video & Voice Calls — WebRTC P2P (1:1) + Mesh (group up to 6)
- 🌐 Multi-language — Chinese, English, Japanese, Korean, French
- 📱 iOS PWA — "Add to Home Screen" via Safari, no enterprise cert needed
- 💬 Rich messaging: text, images, voice, emoji, delivery receipts, typing indicators
- 🗂️ Cloudflare R2 file storage (images & voice messages)
After Deployment
- Open the domain assigned to the client service.
- Register an account — cryptographic keys are generated locally on your device.
- (Optional) Configure Cloudflare R2 for image/voice uploads — set
R2_* variables on the server service.
- (Optional) Configure Cloudflare TURN for cross-network video calls — set
CF_CALLS_APP_ID and CF_CALLS_APP_SECRET.
Docker Hub Images
facilisvelox/paperphone-client:latest
facilisvelox/paperphone-server:latest