An open-source, self-hostable universal chat client: all your messaging networks in one native inbox, with instant sync and nothing locked behind a paywall. Built on Matrix and Tauri, so the whole stack stays fast, native, and yours to run.
Somewhere along the way, chat apps started charging you for your own messages: unified-inbox products gate how fast your chats sync behind a subscription tier. beep-beep-oss is the opposite stance. Self-host it, and the throttle simply doesn't exist. Every messaging feature in the open client is free, permanently.
It's Beeper's core architecture, rebuilt in the open: a Synapse homeserver, Postgres underneath, the mautrix bridges (literally the same bridge software Beeper runs) translating WhatsApp into Matrix, and a custom client on top. Matrix is the trick. It's an open protocol, basically email for chat: once a network is translated into it, any Matrix client can read it. That's the entire unified-inbox dream in one sentence. Your phone just sees another linked device, exactly like WhatsApp Web.
A native Tauri 2 app: React in the OS webview over a Rust core on matrix-rust-sdk, desktop and mobile from one core, not another Electron shell hauling a whole browser around. The two halves talk across a typed IPC boundary where the Rust command list is the security boundary, and the TypeScript types are generated from the Rust structs, so the two languages cannot drift apart. One source of truth, two languages.
Speed is the thesis, so the sync path got the real engineering. Simplified Sliding Sync as the engine. A reactive room-update stream pushed to the UI as debounced events, so the inbox and the open conversation fill themselves, no refresh button anywhere. Optimistic send that paints your message instantly and quietly reconciles in the background, with rollback if the network fails you. Lazily fetched real WhatsApp avatars, cached per room. All of it verified against real bridged WhatsApp chats, not a demo server.
Running your own stack teaches you fast that the sharp edges are operational, not architectural. Windows line endings broke the database init script with a single invisible carriage return in a shebang. A Docker bind-mount quirk corrupted the bridge's trust tokens. localhost resolved to IPv6 while the server bound IPv4. Every one of them is documented in the repo, so the next self-hoster doesn't pay the same toll.
Alpha, Phase 1 complete as a working two-way messenger with live sync. Multi-account is designed in from the start (two WhatsApp accounts side by side, bridged as a companion device so ban risk stays low), and the infra ships with a setup guide including a fully-free self-host path on Oracle Cloud's Always Free tier. Instagram lands next via mautrix-meta; Signal and Telegram after. AGPL-3.0, so nobody can quietly absorb it into a closed product.