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:
@@ -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)
|
[](LICENSE)
|
||||||
[](https://www.typescriptlang.org/)
|
[](https://www.typescriptlang.org/)
|
||||||
[](https://nodejs.org/)
|
[](https://nodejs.org/)
|
||||||
[](#project-status)
|
[](#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 0–200% 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 0–200% 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
|
||||||
|
|||||||
Reference in New Issue
Block a user