Messages on qxbao.dev is private 1:1, end-to-end encrypted text messaging by exact username — there is no directory or user search, so you need to already know the username of the person you want to message.
How the encryption works
Messages are encrypted right on your device, and only the people in the conversation can read the content. qxbao.dev's servers only relay the encrypted copy, which they cannot read, and delete it as soon as the receiving device has it. Every conversation is also set up with ML-KEM-768 together with X25519, so it stays safe even against future quantum computers.
Our servers need to know who a message is addressed to in order to deliver it, but who talked to whom and when is treated as sensitive information and is never logged.
Devices
Each account can have chat turned on in up to 5 devices (browsers). Adding a new device needs a recent sign-in or confirming your password again (a "sudo" step) — see Account security. Whenever a device is added, you always get an in-app notification and your other open sessions are asked to refresh their device list — this cannot be turned off, since it's the only way you'd know if someone else added a device. Removing a device stops it from receiving new messages and its keys stop working; removing the browser you're currently using also deletes the keys and chat history stored there.
Security code
Every conversation has a security code — a string of digits you can compare with the other person in person or on a call you trust. If both of you see the same code, no one can be listening in on your conversation. The code changes whenever either of you adds or removes a device, and you'll see a warning that the security code changed so you can check it again if you want to.
Blocking someone
Blocking is silent: the blocked person is not told, and their messages — including any that were already waiting — will never reach you. You can unblock them at any time.
Moving your history to a new device
Chat history does not sync to a new device automatically. See Syncing message history for how to move it over with a confirmation code.