Anonymous chat is not only about removing a profile picture. The whole flow has to avoid turning a short conversation into a permanent account, contact graph, or message archive.

GhostyMsg starts with a small promise: create a room, share one link, talk in real time, and let the room end when its time is over. That promise shapes both the interface and the server behind it.

Temporary rooms, not permanent channels

Each room has an expiration time. The server keeps the active room state in memory while people are connected, then removes it when the room expires. There is no inbox to maintain and no old thread to return to later.

Invite-only access without accounts

A host creates a room link and protects it with a password. Guests choose a temporary nickname when they join. The room does not require registration, a profile, or an email address.

room_lifecycle.txt
# A deliberately small lifecycle
CREATE ROOM
SHARE LINK + PASSWORD
JOIN WITH TEMPORARY NICKNAME
EXCHANGE REAL-TIME MESSAGES
EXPIRE ROOM AND CLEAR ACTIVE STATE

Real-time communication with clear boundaries

WebSockets keep messages moving instantly between connected participants. The server validates message types, limits payload sizes, and rate-limits repeated requests so the real-time layer stays predictable under normal use.

When deployed behind HTTPS, the browser connection uses secure HTTP and WebSocket transport. The product should still be presented honestly: it is a focused communication prototype, not a substitute for a formally audited security platform.

What the design leaves out

A smaller product can be a stronger product

GhostyMsg is intentionally narrow. It solves one moment—opening a temporary private room—without trying to become a social network. The result is easier to understand, easier to test, and easier to explain to the people using it.