Note
Learn about the developer behind Fluxer, the goals of the project, the tech stack, and what's coming next.
Fluxer is a free and open source instant messaging and VoIP platform for friends, groups, and communities. Self-host it and every feature is unlocked.
Real-time messaging – typing indicators, reactions, and threaded replies.
Voice & video – calls in communities and DMs with screen sharing, powered by LiveKit.
Rich media – link previews, image and video attachments, and GIF search via KLIPY.
Communities and channels – text and voice channels organised into categories with granular permissions.
Custom expressions – upload custom emojis and stickers for your community.
Self-hostable – run your own instance with full control of your data and no vendor lock-in.
Note
Native mobile apps and federation are top priorities. If you'd like to support this work, donations are greatly appreciated. You can also share feedback by emailing developers@fluxer.app.
Note
New to Fluxer? Follow the self-hosting guide for step-by-step setup instructions.
TBD
livekitctl– bootstrap a LiveKit SFU for voice and video
- TypeScript and Node.js for backend services
- Hono as the web framework for all HTTP services
- Erlang/OTP for the real-time WebSocket gateway (message routing and presence)
- React and Electron for the desktop and web client
- Rust compiled to WebAssembly for performance-critical client code
- SQLite for storage by default, with optional Cassandra for distributed deployments
- Meilisearch for full-text search and indexing
- Valkey (Redis-compatible) for caching, rate limiting, and ephemeral coordination
- LiveKit for voice and video infrastructure
Fluxer supports development through devenv only. It provides a reproducible Nix environment and a single, declarative process manager for the dev stack. If you need a different setup, it is currently unsupported.
- Install Nix and devenv using the devenv getting started guide.
- Enter the environment:
devenv shellIf you use direnv, the repo includes a .envrc that loads devenv automatically – run direnv allow once.
Start all services and the development server with:
devenv upOpen the instance in a browser at your dev server URL (e.g. http://localhost:48763/).
Emails sent during development (verification codes, notifications, etc.) are captured by a local Mailpit instance. Access the inbox at your dev server URL + /mailpit/ (e.g. http://localhost:48763/mailpit/).
If you develop on a remote VM behind Cloudflare Tunnels (or a similar HTTP-only tunnel), voice and video won't work out of the box. Cloudflare Tunnels only proxy HTTP/WebSocket traffic, so WebRTC media transport needs a direct path to the server. Open these ports on the VM's firewall:
| Port | Protocol | Purpose |
|---|---|---|
| 3478 | UDP | TURN/STUN |
| 7881 | TCP | ICE-TCP fallback |
| 50000-50100 | UDP | RTP/RTCP media |
The bootstrap script configures LiveKit automatically based on domain.base_domain in your config.json. When set to a non-localhost domain, it enables external IP discovery so clients can connect directly for media while signaling continues through the tunnel.
To develop the documentation site with live preview:
pnpm dev:docsFluxer is free and open source software licensed under AGPLv3. Contributions are welcome.
See CONTRIBUTING.md for development processes and how to propose changes, and CODE_OF_CONDUCT.md for community guidelines.
Report vulnerabilities at fluxer.app/security. Do not use public issues for security reports.
License
Copyright (c) 2026 Fluxer Contributors
Licensed under the GNU Affero General Public License v3:
Copyright (c) 2026 Fluxer Contributors
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
You should have received a copy of the GNU Affero General Public License along
with this program. If not, see https://www.gnu.org/licenses/
See LICENSING.md for details on commercial licensing and the CLA.

