kind
kind is not discord
A native Discord client built from scratch in C++ and Qt. No Electron. No compromise.
Why kind Exists
The official Discord client is Electron. It wraps a browser around a website and calls it an app. It uses hundreds of megabytes of memory to do what a native application could do with a fraction of that.
kind is built from scratch as a native application in C++ and Qt 6. The difference is tangible. The UI loads instantly. On first launch, things appear as fast as Discord's servers respond. On every launch after that, everything comes from cache and is validated against the network in the background. It feels as fast as opening a plaintext file.
kind targets Windows, macOS, and Linux.
What's Built
-
Authentication
Email and password login with TOTP two-factor support. Bot token login. Tokens stored in your system keychain with automatic login on subsequent launches.
-
Guilds and Channels
Full guild list with three display modes. Channels organized by category with collapse and expand. Locked channels hidden or indicated based on your permissions. Guild ordering pulled from your Discord settings.
-
Direct Messages
1-on-1 DM conversations with a dedicated view sorted by recency. Start new conversations with user search. Avatars throughout.
-
Message Display
Every Discord message type rendered correctly: user messages, replies, system messages, and bot interactions. Full markdown with bold, italic, code blocks, spoilers, strikethrough, and links. @mentions resolved with theme-aware colours. Rich embeds, file attachments, reactions with custom emoji, stickers, and interactive component buttons.
-
Message Sending
Send text messages in any channel or DM. Toggle reactions on and off. Emoji shortcode resolution across all 5932 Discord shortcodes.
-
Unread Tracking
Per-channel unread counts and mention badges that persist across restarts. Reconciles with Discord's server state on connect, with qualifiers for exact, at-least, and unknown counts. Mute tracking at both guild and channel level. Configurable accent bars and badges. Read state marked based on scroll visibility with debounced acknowledgement.
-
Image Pipeline
Async image loading with memory LRU and disk persistence. Up to 6 concurrent downloads with CDN size optimization. Circular guild icons with initials fallback. User avatars in messages and the DM list.
-
Performance
READY payload parsed on a worker thread. Async database cache with bulk queries loads in around 110ms. Non-blocking auto-login with an instant window. Scroll wheel speed locking and position compensation for smooth rendering. Store observer batching to minimize UI updates.
-
Infrastructure
442 tests across three tiers. SQLite per-account caching. Full Discord permission algorithm. Rate limiting with per-route buckets. Gateway reconnection with session resume and exponential backoff. 8 filterable loggers at debug and trace levels.
-
Preferences
Configurable edited indicator style, guild display mode, locked channel visibility, unread bar and badge toggles per channel, guild, and DM. Mention badge toggles with a choice of theme accent or Discord blue. DM list display mode.
Not Yet
Intentionally deferred, not forgotten.
- Voice and video
- Screenshare
- Message editing and deletion
- File uploads
- Slash commands
- Emoji picker
- Context menus
- Message search
- Member list
- Typing indicators
- User presence
- Threads
- Group DMs
- Guild management
- System notifications
- System tray