ProtonChat.com

protonchat.com — a real-time chat room where the conversation is always happening now, because everything older than a day is gone.


What it is

A single shared space in the spirit of Slack, with one deliberate twist: conversations disappear. Every message vanishes 24 hours after it is sent, for everyone, automatically, and the room keeps at most the 100 newest messages.

That is the whole point. A chat room that accumulates history becomes an archive, and an archive changes how people talk in it. Deletion here is real — expired messages are removed from the database, not hidden behind a flag — so the room stays a conversation.

Everything else is the familiar shape: a members sidebar with presence dots, typing indicators, day dividers and grouped consecutive messages, markdown-ish formatting, emoji shortcodes and reactions, slash commands, image paste-to-upload, and keyboard shortcuts. Sign-in is Google, so there is no new password to invent.


How it is built

The chat server is Go, listening on loopback and reached through an Apache reverse proxy on the public vhost. Authentication is shared, not duplicated: members sign in through the existing Google OAuth flow, and the Go server only validates the same session cookie against the same tables, connecting as a low-privilege database user with a deliberately narrow grant set.

The disappearing-message guarantee is enforced three independent ways, because one mechanism is a bug away from a broken promise: the history query filters by age, a janitor goroutine physically deletes expired rows every five minutes, and each connected client prunes its own view live so messages visibly vanish while you are looking at them.


History

The domain has carried a 2004 copyright since long before this build — ProtonChat is an old idea of mine that finally got the implementation it wanted once Go made the real-time part cheap enough to run on a shared box.


‹ All projects