The N=1 Principle: One Message.
The Problem With Message History
Every message you've ever sent on most platforms is stored somewhere. WhatsApp keeps messages on your device until you manually delete them. Telegram stores cloud chats indefinitely on their servers. Even "disappearing messages" in Signal leave metadata traces and can be captured by screenshots or device forensics before they vanish.
Message history is an attack surface. The more messages that exist, the more there is to find. A partner who picks up your phone doesn't need to crack encryption—they just need to scroll up.
N=1: One Message Per Room
The Core Invariant
At most one message exists per room at any time.
In sTELgano, when you reply to a message, the previous message is atomically deleted in a single database transaction. The reply and the delete are the same operation. There is no window where two messages coexist.
This isn't a UI choice that hides messages while keeping them on disk. The data is actually removed. The database transaction guarantees that the old ciphertext is gone before the new one is committed.
Why Not Zero?
Zero messages means no communication. If both parties must be online simultaneously to exchange messages, you've built a voice call, not a messaging system.
One message is the minimum unit needed for asynchronous communication. Person A sends a message. Person B can read it later. When Person B replies, Person A's original message is destroyed. The channel always holds at most one message—the most recent, unread reply.
No messages
No async communication possible
One message
Minimum viable async + minimum attack surface
Full history
Maximum convenience + maximum attack surface
The Atomic Delete
This isn't a "mark as deleted" with the data still sitting on disk. There is no soft-delete, no deferred purge, no 24-hour window. The old message is gone the instant the new one arrives.
When a reply is sent, the previous message row is permanently deleted from PostgreSQL in the same database transaction that inserts the new message. One atomic operation: the old row is removed and the new row is written. No ghost data, no lingering ciphertext, no background cleanup required.
What This Means for Users
You can't scroll back. There's no "last Tuesday's conversation" to find. There's no search function to dig through old messages. The channel is always fresh—either empty or holding a single, most-recent message.
- Open the channel: you see one message or nothing.
- Reply: the previous message is destroyed. Your reply takes its place.
- Close the tab: the session is gone. The channel holds your reply until the other person reads it.
- Come back later: same state. One message or nothing.
A Feature, Not a Limitation
The entire attack surface is one message.
This is deliberate. If someone gains access to the room—through a compromised PIN, a stolen device, or any other means—they see at most one message. One piece of encrypted ciphertext. That's it. There is no history to mine, no archive to exfiltrate, no conversation to reconstruct. The maximum damage is bounded by design.