@bbs
Build a community from your existing account.
Tightly curated, fully portable, open by design.
Built on atproto.
Features#
- Web and terminal: Use it in your browser, dial in from a TUI, or connect via telnet.
- Serverless: Run a BBS straight from your atproto account. No hosting required.
- Replies and quotes: Flat threads with inline quoting.
- Attachments: Upload files to threads and replies.
- Messages: Know when someone replies to your thread or quotes you.
- Moderation: Ban users, hide posts, manage your boards.
- Discovery: Browse BBSes from across the network.
Install#
Requires Python 3.14+.
uv#
uv tool install atbbs
Homebrew#
brew install alyraffauf/tap/atbbs
Usage#
atbbs # launch TUI
atbbs dial aly.codes # dial a BBS directly
atbbs --help # see all options
Web app#
Docker#
docker run -d -p 8080:80 -e PUBLIC_URL=https://your-domain.com ghcr.io/alyraffauf/atbbs:latest
Or with Docker Compose:
git clone https://github.com/alyraffauf/atbbs.git
cd atbbs
PUBLIC_URL=https://your-domain.com docker compose up -d
From source#
git clone https://github.com/alyraffauf/atbbs.git
cd atbbs
cd web && npm install && cd ..
uv sync
just dev # run dev server with hot reload
just fmt # format code
just build # build for static deploy (set PUBLIC_URL)
just docker # build docker image
Architecture#
atbbs has no backend database for content. All BBS data lives in atproto repos:
- Sysop records:
xyz.atbbs.site,xyz.atbbs.board - Moderation records:
xyz.atbbs.ban,xyz.atbbs.hide - User records:
xyz.atbbs.post,xyz.atbbs.pin,xyz.atbbs.profile
The web app and TUI query existing network infrastructure:
- Slingshot — cached record and identity fetching
- Constellation — backlink index for discovering threads and replies
- Lightrail — BBS discovery via collection listing
Configuration#
On first run, atbbs generates:
secrets.json— app secret key and OAuth client signing keyatbbs.db— SQLite database for OAuth sessions
Web app (Docker): Set PUBLIC_URL to your domain for OAuth callbacks (required).
TUI: Data is stored in ~/.local/share/atbbs/ (Linux), ~/Library/Application Support/atbbs/ (macOS), or %APPDATA%/atbbs/ (Windows).