sling.chat logo

About sling.chat & Core Engineering Architecture

sling.chat was engineered around a simple, uncompromising premise: modern real-time communication should not require surrendering your identity, phone number, or permanent message history to a cloud database. Whether you are coordinating a live software deployment, sharing temporary snippets across devices, or hosting a quick community Q&A, your conversation does not need to live on a corporate hard drive forever.

Unlike conventional messaging platforms that archive every keystroke in distributed SQL or NoSQL clusters, sling.chat operates with zero database and zero disk persistence. Every channel exists strictly in volatile Random Access Memory (RAM) inside a compiled C++20 server process.

The Three Pillars of sling.chat

1. Native C++20 WebSocket Server (RFC 6455)

To achieve sub-millisecond message dispatch and minimal memory overhead, the backend of sling.chat is written from scratch in modern C++20. It implements the WebSocket protocol (RFC 6455) directly over POSIX TCP sockets without heavy third-party framework bloat. Incoming frames are unmasked, validated, and broadcast to subscribed channel sockets in real time with fine-grained thread synchronization.

2. Volatile RAM Ring Buffer Storage

Each chat channel is backed by a thread-safe, fixed-capacity circular buffer (RingBuffer<Message>) allocated in RAM. By default, a channel holds at most 100 messages:

3. Cryptographic Anti-Spam via SHA-256 Proof of Work

Running an open, registration-free chat platform invites automated spam bots. Traditional platforms solve this by forcing users to create accounts, verify phone numbers, or solve intrusive visual CAPTCHAs that track browser fingerprints.

sling.chat replaces CAPTCHAs with cryptographic Proof of Work (PoW) inspired by Hashcash:

Technical Guides & Deep Dives

Frequently Asked Questions (FAQ)

Are messages really never saved to a hard drive?

Yes. The C++20 backend binary does not link against any database driver (no SQLite, MySQL, PostgreSQL, or Redis) and never opens a file stream to write chat messages. Messages exist solely as sling::Message structs inside a std::vector in volatile system RAM.

How do I create a private or custom channel?

Type any channel name in the sidebar input box (or use the /join #your-channel-name command) and press Enter. You can also click the Share button in the header to copy a direct URL (e.g., https://sling.chat/#project-alpha) and send it to your teammates.

What built-in slash commands are supported?