docs(readme): finalize for 1.0.0 public launch

- Confident 1.0.0 framing: version badge + stable status callout; drop
  "early-stage / active development" and inaccurate "full-text" wording
- Add "What makes Backspace different" section leading with the verified
  wedge (per-stream media controls + federation + complete/polished)
- Fix two overclaims to match source: no unread divider (-> mark-as-unread),
  search is LIKE-based not full-text (-> "message search")
- Surface previously-omitted, source-verified voice/media features:
  per-user & per-stream volume, connection inspector, viewer detection,
  auto-ducking, measured tile badge, device/EC/AGC controls, selective
  subscription, browser push-to-talk
- Add Idle/DND + custom status, drag-drop/paste upload, avatar/banner crop
This commit is contained in:
Jannis Braun
2026-07-01 13:22:37 +02:00
parent ac20f22c72
commit 3be8b36064
+49 -17
View File
@@ -4,12 +4,12 @@
# Backspace # Backspace
**An open, self-hosted communication platform — text, voice, video, and federation — that you own.** **A self-hosted communication platform — text, voice, video, and federation — that you own.**
[![License: Elastic License 2.0](https://img.shields.io/badge/license-Elastic%20License%202.0-2563eb.svg)](LICENSE) [![License: Elastic License 2.0](https://img.shields.io/badge/license-Elastic%20License%202.0-2563eb.svg)](LICENSE)
[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6.svg)](https://www.typescriptlang.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6.svg)](https://www.typescriptlang.org/)
[![Node.js](https://img.shields.io/badge/node-%E2%89%A520-339933.svg)](https://nodejs.org/) [![Node.js](https://img.shields.io/badge/node-%E2%89%A520-339933.svg)](https://nodejs.org/)
[![Status](https://img.shields.io/badge/status-active%20development-f59e0b.svg)](#project-status) [![Version](https://img.shields.io/badge/version-1.0.0-16a34a.svg)](#project-status)
</div> </div>
@@ -17,7 +17,7 @@
Backspace is a Discord-style chat platform you run on your own hardware. Spaces, Backspace is a Discord-style chat platform you run on your own hardware. Spaces,
channels, roles, voice and video, screen sharing, direct messages, friends, file channels, roles, voice and video, screen sharing, direct messages, friends, file
sharing, and full-text search — plus **server-to-server federation**, so sharing, and message search — plus **server-to-server federation**, so
independent Backspace instances can talk to each other while each stays under independent Backspace instances can talk to each other while each stays under
its own control. its own control.
@@ -26,7 +26,33 @@ inside a business — but not to resell as a hosted service. See
[License](#license) for the exact terms. [License](#license) for the exact terms.
> **Project status** <a name="project-status"></a> > **Project status** <a name="project-status"></a>
> Backspace is early-stage and under active development. > Backspace 1.0 — stable, self-hostable, and actively developed. Running on two
> live instances. A young project; issues and feedback welcome.
## What makes Backspace different
Self-hosted chat usually forces a trade-off: gaming-grade voice and video, *or* a
polished Discord-style experience, *or* federation between independent servers —
rarely all three, and rarely with the fine-grained media controls people expect.
Backspace does all three at once:
- **Voice & video with a real control surface.** Not just "it has screen share":
choose resolution, frame rate, codec (VP9 or hardware H.264), and bitrate; set
independent 0200% volume for every person *and* every screen-share; RNNoise
noise suppression; a live connection inspector (bitrate, codec, ping, packet
loss, jitter); and a per-tile badge showing each stream's measured
resolution/frame-rate. Screen sharing goes up to 4K/120fps within admin-set
bounds.
- **Federation, not a walled garden.** Run your own instance and peer it with
others: cross-instance friends, DMs, calls, and presence — each server
independently owned, requests HMAC-authenticated.
- **A complete, polished platform — not a demo.** Role-based permissions with
per-category and per-channel overrides, friends and group DMs, inline playable
media, moderation with audit trails, search, a desktop app, and an installable
mobile PWA — all in the warm, calm "Aether Drift" interface.
You own the server, the data, and the network it federates into.
## Screenshots ## Screenshots
@@ -76,18 +102,23 @@ inside a business — but not to resell as a hosted service. See
## Features ## Features
### Communication ### Communication
- Real-time text channels over WebSocket - Real-time text channels over WebSocket, with `@mention` autocomplete and mention highlighting
- `@mention` autocomplete with mention highlighting
- Voice and video channels via [LiveKit](https://livekit.io/), with RNNoise noise suppression (on by default)
- Screen sharing up to 4K / 120fps — VP9 by default, with an optional hardware-accelerated H.264 mode and a VP8 simulcast fallback; quality bounds are admin-configurable
- Picture-in-Picture for voice and video
- Direct messages — 1-on-1 and group DMs (up to 10 people)
- DM voice/video calls with ring / accept / reject
- Message reactions, replies, editing, and deletion
- Markdown formatting with syntax highlighting - Markdown formatting with syntax highlighting
- Typing indicators, unread tracking (badges and an unread divider), and presence - Message reactions, replies, editing, deletion, and per-message mark-as-unread
- Rich link embeds (YouTube, Vimeo, Spotify, and generic OpenGraph) with SSRF-protected scraping - Rich link embeds (YouTube, Vimeo, Spotify, and generic OpenGraph) with SSRF-protected scraping, plus GIF search (Klipy)
- GIF search (Klipy) - Typing indicators, unread badges, and presence
- Direct messages — 1-on-1 and group DMs (up to 10 people), with voice/video calls (ring / accept / reject)
**Voice, video & screen sharing** (via [LiveKit](https://livekit.io/)):
- Screen sharing up to 4K / 120fps — VP9 by default, an optional hardware-accelerated H.264 mode, and a VP8 simulcast fallback
- Per-stream quality controls — resolution, frame rate, codec, and bitrate, within admin-set bounds
- Independent 0200% volume for every participant *and* every screen-share
- RNNoise noise suppression (on by default), plus echo-cancellation and auto-gain toggles and mic/speaker device selection
- Live connection inspector — per-participant bitrate, codec, ping, packet loss, and jitter — plus a per-tile badge showing each stream's measured resolution/frame-rate
- Screen-share viewer detection ("who's watching") and auto-ducking that lowers stream audio when someone speaks
- Selective subscription — mute or stop watching any camera/stream to save bandwidth
- Push-to-talk and fully customizable keybinds (including mouse buttons), in the browser and the desktop app
- Picture-in-Picture for voice and video
### Organization ### Organization
- Spaces with channel categories - Spaces with channel categories
@@ -102,6 +133,7 @@ inside a business — but not to resell as a hosted service. See
- Mutual friends and mutual spaces - Mutual friends and mutual spaces
- User profiles with banner, bio, and accent color - User profiles with banner, bio, and accent color
- Presence and rich activities (playing, listening, watching, streaming, custom) - Presence and rich activities (playing, listening, watching, streaming, custom)
- Manual status — Online, Idle, or Do Not Disturb — with a custom status message
- Privacy controls — toggle discoverability and activity-status sharing - Privacy controls — toggle discoverability and activity-status sharing
### Moderation ### Moderation
@@ -119,8 +151,8 @@ inside a business — but not to resell as a hosted service. See
- Background workers for outbox delivery, file download, peer health, and cleanup - Background workers for outbox delivery, file download, peer health, and cleanup
### Platform ### Platform
- File uploads with image thumbnails (via `sharp`) - File uploads with image thumbnails (via `sharp`), drag-and-drop and paste-to-upload, and in-app avatar/banner cropping
- Full-text search with `from:`, `has:`, `before:`, and `after:` filters, plus jump-to-message - Message search with `from:`, `has:`, `before:`, and `after:` filters, plus jump-to-message
- Admin panel — instance settings, user management, registration controls, storage management, and federation/peering, plus granular streaming controls (a per-resolution × per-frame-rate bitrate matrix, min/max caps, quality-slider step, and an optional user-set-bitrate mode) - Admin panel — instance settings, user management, registration controls, storage management, and federation/peering, plus granular streaming controls (a per-resolution × per-frame-rate bitrate matrix, min/max caps, quality-slider step, and an optional user-set-bitrate mode)
- Automatic SQLite backups (pre-migration, scheduled, and manual) with restore tooling - Automatic SQLite backups (pre-migration, scheduled, and manual) with restore tooling
- Electron desktop app (Windows, macOS, Linux) with global keybinds (push-to-talk, mute, deafen) and activity detection - Electron desktop app (Windows, macOS, Linux) with global keybinds (push-to-talk, mute, deafen) and activity detection