Skip to main content

Decentralized bulletin boards on atproto.

Project description

Build License: AGPL v3 Ko-fi

@boards

Bulletin boards on the atmosphere.

Run a BBS from your own account. No server required. Users own their posts, communities migrate freely. Built on atproto.

Features

  • Web app and TUI: Browse, post, and manage BBSes from your browser or terminal.
  • Built on atproto: All data lives in user repos as xyz.atboards records. No central database.
  • No server needed to run a BBS: A sysop just publishes records to their own PDS.
  • OAuth login: Sign in with your Bluesky handle or any atproto account.
  • Discover BBSes: The home screen shows BBSes from across the network.
  • Flat replies: Threads with chronological replies, plain text.
  • Sysop tools: Create and edit your BBS, manage boards, post news.
  • Self-hostable: One Docker command to run the web app.

Quick start

TUI (recommended)

Requires Python 3.14+ and uv.

uv tool install atboards
atb

Or from source:

git clone https://github.com/alyraffauf/atboards.git
cd atboards
uv sync
uv run atb

Web app (Docker)

docker run -d -p 8000:8000 -v atboards-data:/data -e PUBLIC_URL=https://your-domain.com ghcr.io/alyraffauf/atboards:latest

Or with Docker Compose:

git clone https://github.com/alyraffauf/atboards.git
cd atboards
docker compose up -d

Visit http://localhost:8000.

Web app (from source)

git clone https://github.com/alyraffauf/atboards.git
cd atboards
uv sync
just dev

Architecture

atboards has no backend database for content. All BBS data lives in atproto repos:

  • Sysop records: xyz.atboards.site, xyz.atboards.board, xyz.atboards.news
  • User records: xyz.atboards.thread, xyz.atboards.reply

The web app and TUI query existing network infrastructure:

  • Slingshot — cached record and identity fetching
  • Constellation — backlink index for discovering threads and replies
  • UFOs — BBS discovery feed

Configuration

On first run, atboards generates:

  • secrets.json — app secret key and OAuth client signing key
  • atboards.db — SQLite database for OAuth sessions

Web app: Set ATBOARDS_DATA_DIR to control where these are stored (default: current directory, /data in Docker). Set PUBLIC_URL to your domain for OAuth callbacks.

TUI: Data is stored in ~/.local/share/atboards/ (Linux), ~/Library/Application Support/atboards/ (macOS), or %APPDATA%/atboards/ (Windows).

License

AGPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atboards-0.3.0.tar.gz (90.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atboards-0.3.0-py3-none-any.whl (73.5 kB view details)

Uploaded Python 3

File details

Details for the file atboards-0.3.0.tar.gz.

File metadata

  • Download URL: atboards-0.3.0.tar.gz
  • Upload date:
  • Size: 90.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for atboards-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f76c01971a3acef57d533fe2dc7e1fa369f0e53f24c18265f8335e83cee657da
MD5 e3b5b368289c024479d75d639126f7f5
BLAKE2b-256 072b31f4a55717403adbfaa11d2994e0f385d8de9538dc0d1427cd317987855e

See more details on using hashes here.

File details

Details for the file atboards-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: atboards-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 73.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for atboards-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b7efa9e687e4374e8c1680540a0b85a23ca5d8381ef2e2b41cabde66b7d76ee
MD5 eefb0d8bdf007a4bc2039c43ef7c9f82
BLAKE2b-256 c386335a1ba63d24a64b5a7e7996ea37e7acca6c8ae154be1c4f32f3b184bb51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page