home

Logs

Tagged software · show all

Exploring a peer-to-peer messenger

I’ve started exploring an idea, a private messaging app for mobile that is fully peer-to-peer. There’s no central server in the middle, and it should keep working offline.

Why

Partly I want the app itself. Mostly, though, I want to learn. I’ve never built anything in P2P networking, and I want to see how it all works under the hood. I’m also using this project to learn Rust, and building something real seems like the best way to do that.

The idea

Everyone builds their own network of peers. The network is invite-only and made up of your own circle of people, and anyone in it can invite others. I don’t want every user of the app to end up carrying everyone else’s messages. A small, trusted network fits the goal of a private messenger better.

The stack

  • Rust for the core: networking, storage and the logic that has to be solid.
  • React Native for the UI, so the same app runs on iOS and Android.

Scope for v1

I’m keeping the first version small. It will be 1:1 conversations only, with no central server and offline support. Group chats are something I want eventually, but not before the basics work.

What’s next

I’m still early, so the next steps are working out how peers find and connect to each other, how messages get delivered when someone is offline, and how to keep the whole thing private. I’ll write up what I learn as I go.