Under the hood
How Connectfy is built.
Encryption happens in your browser. Everything behind it is built to carry sealed messages quickly, reliably and without ever needing to read them.
Your browser
Edge
Microservices
Data
Engineering choices
Why it's built this way.
Encryption in the client
libsodium runs in your browser: a content key per message, sealed to each recipient device, with keys backed up in the passphrase-locked vault.
One public door
The browser talks only to the API gateway. Every service behind it is private and reached over internal TCP.
Services that scale independently
Identity, profiles, relationships and messaging are separate NestJS services, so a rush on one doesn't slow the others.
Events that don't get lost
Side effects travel over Kafka. A transactional outbox means a change and its event are saved together, and a dead-letter queue keeps any failure for a retry.
A real social graph
Friendships and blocks live in Neo4j, which also powers people search — built for questions like “who can reach whom”.
Calls that scale
One-on-one calls go peer to peer, with a TURN relay when networks get in the way. Group calls run through a LiveKit SFU that forwards frames it can't decrypt.
Direct-to-storage files
Encrypted files go straight from your browser to private object storage through short-lived signed links — no app server in between.
Scheduled cleanup
Expired pins and mutes, ended sessions and deleted content are cleaned up by a dedicated job service, away from the request path.
Privacy on the server
Profile fields are filtered by each person's privacy settings before a response leaves the server, not hidden by the app afterwards.
Built for the next million conversations.
Free, in your browser, in a minute. No phone number needed.