Banter#
Banter is a small, self-hosted chat system designed for teams and side projects who just want to talk without dealing with accounts, logins, or third-party platforms.
It runs a lightweight WebSocket server, comes with a barebones web frontend, and has a CLI for creating and managing chat rooms.
Why Banter?#
Sometimes you just need a simple room to chat with collaborators without:
- Installing yet another app
- Registering for an account
- Handing over data to a big company
Banter was created to make this painless:
- Spin up a server
- Create a room
- Share a link
- Start chatting
No accounts, no tracking, no gatekeeping.
Features#
- Multi-room chat, each with its own join link
- In-memory history replay when joining a room
- WebSocket backend (Rust + Tokio)
- Minimal HTML/JS frontend (no build step needed)
- Admin CLI via Unix socket for
create,list,delete
Security Limitations#
⚠️ Important: Banter is not built for production-grade security.
- No authentication: anyone with the join link can enter and send messages.
- No encryption: WebSocket traffic is plain unless you run behind a TLS reverse proxy.
- No persistence: messages are only stored in memory while the server runs (might add file-based persistence in the future).
- No spam protection: there’s no rate-limiting or moderation controls.
- No identity guarantees: usernames are not verified, anyone can take any name and impersonate others.
- Trust model: designed for small, trusted groups, not public communities.
If you need strong security guarantees, this is not the tool you want.
Quick Start#
1. Build#
git clone https://tangled.sh/@rubberducky.guru/banter
cd banter
cargo build --release
2. Config (srv.cfg)#
bind-address = 127.0.0.1:3000
chat-address = http://localhost:8080/app/app.html
server-address = 127.0.0.1:3000
3. Run server#
./target/release/banter-server
4. Create a room#
./target/release/banter create
Outputs a join link like:
http://localhost:8080/app/app.html?serverAddress=127.0.0.1:3000&roomID=abc123
5. Share link#
- Serve
app.html(e.g.python3 -m http.server 8080in the project directory to make the example work) - Open the link, pick a username, and chat
License#
This project is licensed under the MIT License. See the LICENSE file for details.