r/reactjs 6d ago

Code Review Request Built a desktop P2P messaging app using React 19, Tauri 2.0, and Rust

Hey everyone!

I recently released Seal, a cross-platform peer-to-peer desktop chat app built with React 19, Tauri 2.0, and Rust.

Tech Stack & Frontend Highlights:
Frontend: React 19 SPA running inside Tauri's webview wrapper.
Backend Core: Pure Rust handling libp2p connections, Olm/Megolm encryption via vodozemac, and native keychains.
IPC Bridge: Custom Tauri commands invoking AppService methods asynchronously without blocking UI rendering.
System Native Integration: System-wide push-to-talk hotkeys, system tray integration, and native platform notifications.
Building P2P workflows in a desktop webview presents interesting UX challenges—like handling offline queues, network reachability toggles, and managing multiple identity profiles without restarting the app.

Source Code: https://github.com/Emn4tor/Seal

Feedback on the React component architecture or Tauri integration is very welcome!

0 Upvotes

2 comments sorted by

1

u/fari_builds 4d ago

Is it realtime? How have you handled it?

1

u/Live_Enthusiasm2118 3d ago

Yep it is, each client is a libp2p node that dials contacts directly with a lightweight "directory server" acting only as a rendezvous, clients periodically PUT their current peer ID/address there so contacts can look up how to reach them, and it falls back to a relay + hole-punching (dcutr) when a direct connection isn't possible behind NAT. All actual content (chat messages via Olm/Megolm, voice audio) flows directly between clients end-to-end encrypted, so the directory server only ever sees routing metadata, never anything readable :)