Releases: GoodComms/goodcomms
Release list
GoodComms v0.9.99 - The Video Streaming & Reliability Update
GoodComms v0.9.99 — The Video Streaming & Reliability Update
A major update focused on screen-sharing quality and reliability, real server administration controls, and connection robustness.
GoodComms is a self-hosted communication platform for chat, voice, and screen sharing, built entirely in Rust with native clients and a lightweight relay server. See the v0.9.98 release notes for the full feature overview.
What's new in 0.9.99
Screen Sharing
- Perfectly smooth motion from any monitor: The encoder samples frames on an exact fixed-rate clock instead of following your monitor's refresh timing — streaming from a 144Hz/120Hz display no longer produces periodic micro-stutter for viewers.
- 60 FPS streaming option: Settings → Video Streaming → Stream Frame Rate (30 default / 60).
- New Go Live picker: One window with live preview snapshots of every screen and window, plus the Include Audio toggle and capture device — click a preview and the stream starts instantly.
- Encoder fallback: If your GPU encoder fails — at startup or mid-stream — the stream switches to software encoding with a notification instead of dying silently. New Video Encoder setting (Automatic / Hardware Only / Force Software).
- Stream settings apply live: Frame rate, encoder mode, and audio auto-leveling changes take effect on a running stream.
- Auto-leveled stream audio: Quiet system audio is automatically brought to a consistent level for viewers (Settings → "Auto-level stream audio", default on).
- Resizing a shared window follows through to viewers, viewer mute button, dark-themed viewer toolbar, automatic self-healing after network blips, and clean guidance for uncapturable exclusive-fullscreen games.
- Stream audio works after restarting a stream: Restarting a screen share could leave viewers with video but no audio. Viewers now resync immediately.
Server Administration
- Server settings now actually work: Registration toggle enforced, upload size limit enforced live (0 = unlimited), download speed limit applies without restart, and invalid values are rejected with clear messages.
- Automatic database backups: Interval, keep-count rotation, and folder are configurable; a new Maintenance page adds manual Backup, Restart, Clear All Messages, and Emergency Stop — all behind confirmation dialogs. Backups use a crash-safe snapshot method.
- Destructive actions ask first: Deleting a user, channel, or role shows a confirmation dialog; deleting a user disconnects them immediately.
Reliability & Fixes
- Clean server switching with a proper Disconnect button — no more leftover state from the previous server.
- Fixed a crash affecting new installs: A single corrupted image on a server could crash every freshly-installed client on login. Images are now validated at upload and at display.
- Rate limiter fix for reverse-proxy deployments: Only failed logins count toward brute-force bans; proxy deployments should set
TRUST_PROXY=true(see server.env.example) so bans apply to real client addresses instead of the proxy. - Human-readable upload errors, dismissable error popups, clear permission-denied messages, drive folders open on double-click.
- Failed drive transfers clear themselves and show the reason (previously stuck as "active" forever with no feedback).
Binary Verification
Rust-compiled binaries can trigger antivirus false positives. VirusTotal scans and SHA-256 checksums are provided for all release binaries.
SHA-256 Checksums
gc-client B24E35FEC7443C9EB01431A11D74D0B0661C56E8D660C25AF8081F9B67C2B3FF
gc-client.exe 38406E066E0FC5C8C9D0F35699B6E03F7246B4EF17CE4251BAE4536FC2B26F81
gc-client_0.9.99_x64-setup.exe 6651E466A700652B287D6A29E0C58B974C95FF7D1FCAC4A7E837AC9273BBB9FF
gc-server 228682A425E1DDDA7639A3C273872625121AAF399F20B6B64C1E801DBB6AF164
gc-server.exe 3E7C6BA613284DA97519F38EBFA36D85B9CD11E83D1F7ED6E553ECB3A129DBDA
VirusTotal Scans
- Windows Client - https://www.virustotal.com/gui/file/38406e066e0fc5c8c9d0f35699b6e03f7246b4ef17ce4251bae4536fc2b26f81
- Windows Installer - https://www.virustotal.com/gui/file/6651e466a700652b287d6a29e0c58b974c95ff7d1fcac4a7e837ac9273bbb9ff
- Linux Client - https://www.virustotal.com/gui/file/b24e35fec7443c9eb01431a11d74d0b0661c56e8d660c25af8081f9b67c2b3ff
- Windows Server - https://www.virustotal.com/gui/file/3e7c6ba613284da97519f38ebfa36d85b9cd11e83d1f7ed6e553ecb3a129dbda
- Linux Server - https://www.virustotal.com/gui/file/228682a425e1ddda7639a3c273872625121aaf399f20b6b64c1e801dbb6af164
GoodComms v0.9.98a - Windows Video Streaming Update
GoodComms v0.9.98a
A small maintenance patch on top of v0.9.98, focused on screen-sharing video quality and a couple of UX fixes.
GoodComms is a self-hosted communication platform for chat, voice, and screen sharing, built entirely in Rust with native clients and a lightweight relay server. See the v0.9.98 release notes for the full feature overview.
What's new in 0.9.98a
Improvements
- Smoother screen-share video: The encoder now uses constant-bitrate rate control, so it spends its full bitrate budget steadily — fast on-screen motion stays sharp instead of getting starved and blocky.
- Display no longer sleeps while streaming or watching: Your monitor and the app stay awake during an active screen share or while watching one, preventing the freeze that happened when the display went to sleep — especially on laptops on battery.
Bug Fixes / UX
- Clean stop when a shared window closes: Closing the window or screen you're sharing now stops the share cleanly with a clear notification instead of erroring.
- Installer no longer pre-checks the desktop shortcut: "Create desktop shortcut" is now unchecked by default during installation.
- Version label placement: The client version now appears directly under its label.
Binary Verification
Rust-compiled binaries can trigger antivirus false positives. VirusTotal scans and SHA-256 checksums are provided for all release binaries.
SHA-256 Checksums
gc-client 77F01DA7AB9FDCEEFFC957C41CA17D4BC9BCEDA4527C471A3541A327EAA0FF9D
gc-client.exe 7F461E42629AE06AFD662DC0FAAE7A40642CF82541371037023FB2CF64F3C9C4
gc-client_0.9.98_x64-setup.exe 7E50B596787B15B4D2B162A154A38AB0BC67BEE0C2BCAF30153EE14F630791ED
gc-server 05D2356C811548C7EA4E163B8889EE02892BECFC900DB35DE3DB244E86A67B28
gc-server.exe 086556B39584F7D89292E6A39C581992C8D3873D2242ED438AF8015D7CADF3D4
VirusTotal Scans
- Windows Client - https://www.virustotal.com/gui/file/7f461e42629ae06afd662dc0faae7a40642cf82541371037023fb2cf64f3c9c4
- Windows Installer - https://www.virustotal.com/gui/file/7e50b596787b15b4d2b162a154a38ab0bc67bee0c2bcaf30153ee14f630791ed
- Linux Client - https://www.virustotal.com/gui/file/77f01da7ab9fdceeffc957c41ca17d4bc9bceda4527c471a3541a327eaa0ff9d
- Windows Server - https://www.virustotal.com/gui/file/086556b39584f7d89292e6a39c581992c8d3873d2242ed438af8015d7cadf3d4
- Linux Server - https://www.virustotal.com/gui/file/05d2356c811548c7ea4e163b8889ee02892becfc900db35de3db244e86a67b28
Engineered for Privacy. Built with Rust.
GoodComms v0.9.98 - First Public Release
GoodComms is a self-hosted communication platform for chat, voice, and screen sharing. Built entirely in Rust, it features native clients and a lightweight server designed to keep your data on hardware you control.
This is the first public release. It is pre-1.0 and rough around some edges, but the foundation is solid and the core experience delivers. Think of it as an early taste of where this project is headed.
Why GoodComms?
Most communication platforms, even those that offer "self-hosting," still tie you to a centralized account system, ship as Electron web apps, or collect telemetry somewhere in the pipeline. GoodComms does not.
- No cloud accounts. You register on the server you connect to. That is the only place your account exists. No global GoodComms account, no OAuth, and no third-party identity provider.
- No telemetry. No analytics, no tracking, and no external calls. The only optional network dependency is GIF search, and only if the server owner explicitly enables it.
- Pure native clients. Windows and Linux binaries compiled from Rust. No browser engine, no Electron, and no runtime. A single executable you download and run. This is the same model as the old TeamSpeak days, before everything moved to the cloud.
- No IP logging. Server logs contain no IP addresses or account identifiers. Privacy by design, not just a marketing claim.
- Lightweight. The server authenticates sessions, stores messages in SQLite, and routes media packets. It never processes or decodes them. CPU and RAM requirements are minimal; bandwidth and storage (uploads, Drive, database) are the real scaling factors.
If you have a friend or a community member running a server, all your communication stays between you and them, not a corporation you have never met.
What is in v0.9.98
GPU-Accelerated Screen Sharing (Windows)
The screen sharing pipeline on Windows is a core feature. Capture, encode, and relay happen entirely on the GPU:
- Capture: Windows Graphics Capture API to D3D11 textures, with no intermediate CPU copy.
- Encode: D3D11 Video Processor (color conversion) to MFT H.264 encoder.
- Hardware detection: Auto-selects NVIDIA NVENC, Intel QSV, or AMD based on your GPU vendor. Includes a software encoder fallback if no hardware encoder can be initialized.
- Viewer side: MFT decode to D3D11 video processing, then to DXGI swap chain. Zero CPU readback.
The client chat UI runs entirely on the CPU via tiny-skia, completely separate from the GPU pipeline. Neither system interferes with the other.
Linux screen sharing works via PipeWire and xdg-desktop-portal. It functions correctly for display capture, but encoding is software-based and system audio loopback is not supported.
Security Hardening
- Hardened media relay to prevent unauthorized stream disruptions.
- Username length validation (1-32 characters).
- File upload and avatar size limits.
- Self-service password change: requires current password and invalidates all other active sessions immediately.
- Internal security audit completed.
Channel Management
Channels can now be fully managed without recreating them:
- Edit: Change a channel's name, description, and text/voice flags from the Admin panel. Changes apply live to all connected clients.
- Reorder: Use buttons in the Admin panel to set channel order. Position is persisted server-side and reflected instantly in every client's sidebar.
Stability and Polish
- Voice audio now resumes immediately when a user leaves and rejoins a voice channel in the same session.
- 60 FPS streams from high-refresh-rate sources (144Hz+) are paced correctly for all viewers.
- Deafened state drops incoming audio packets immediately instead of processing them in the background.
- Drive folders now display their total contents size correctly.
- Drive files now display size in correct units (B, KB, MB) instead of always showing MB.
- App window no longer opens off-screen after a monitor is disconnected.
- Permission matrix now includes a legend explaining the indicator states.
- Direct messages persist correctly across sessions and appear instantly when sent.
- Reconnecting while in a DM no longer navigates away to the first channel.
- Server (direct-TLS and self-signed mode): fixed an issue where the process would exit immediately after binding to its ports.
- Voice and video now work correctly on non-default ports. The server advertises its configured ports at login rather than the client assuming fixed defaults.
Getting Started
Server owners: the fastest path is Docker Compose behind a reverse proxy (Caddy handles TLS automatically).
- Getting Started Guide
- Deployment Scenarios (reverse proxy, self-signed, manual TLS)
Known Limitations
- Single active server: The client connects to one server at a time. There is no disconnect button in this release. To connect to a different server, close the client and reopen it. Multi-server support is planned for a future release.
- Screen sharing (all platforms): Starting a second stream in the same app session may not be visible to viewers. If this happens, restart the client before streaming again. Linux does not support system audio loopback.
- Channel privacy: A channel's privacy status cannot be changed after creation. Delete and recreate if a change is needed.
Binary Verification
Rust-compiled binaries can trigger antivirus false positives. VirusTotal scans and SHA-256 checksums are provided for all release binaries.
Note: The Windows installer has been submitted to Microsoft for manual review to clear a known false positive.
SHA-256 Checksums
gc-client A2959A0448705C18346391A462047AEEF378B64598763BF4D786C1975E8C03AC
gc-client.exe 34681DEDD987117959E8630AA1E2440E7A234C04C41390472BCF56562B8BD5F4
gc-client_0.9.98_x64-setup.exe 0B91A0108EEA75F78AE5F81A3AF8FC0B12696FFDEB2255233B8210CE7024B8B8
gc-server 1BD98AB9944AE5A453527EE24F79756CF834D93F05A92CEC1C2ED406B7AB27C0
gc-server.exe 214E59C3614886171862A87167A39D35FCC9F9AE6FD60A4A8343F5A7E732BECB
VirusTotal Scans
- Windows Client - https://www.virustotal.com/gui/file/34681dedd987117959e8630aa1e2440e7a234c04c41390472bcf56562b8bd5f4
- Windows Installer - https://www.virustotal.com/gui/file/0b91a0108eea75f78ae5f81a3af8fc0b12696ffdeb2255233b8210ce7024b8b8
- Linux Client - https://www.virustotal.com/gui/file/a2959a0448705c18346391a462047aeef378b64598763bf4d786c1975e8c03ac
- Windows Server - https://www.virustotal.com/gui/file/214e59c3614886171862a87167a39d35fcc9f9ae6fd60a4a8343f5a7e732becb
- Linux Server - https://www.virustotal.com/gui/file/1bd98ab9944ae5a453527ee24f79756cf834d93f05a92cec1c2ed406b7ab27c0
Engineered for Privacy. Built with Rust.