<<<<<<< HEAD Bill is a multi-server Discord bot with durable member profiles and verified Throne send tracking.
Rob is being rebuilt as two separate services that share PostgreSQL:
parent of a3023d4 (Rebuild Bill send tracking)
apps/webhookreceives Throne webhooks and writes sends to PostgreSQL.apps/botruns the Discord bot, posts queued sends, refreshes leaderboards, and handles user commands.
<<<<<<< HEAD
- Discord bot: Python 3.12 on DigitalOcean. Members use
/profile; server administrators configure the send channel with/bill setup. - Webhook and data API: native TypeScript Cloudflare Worker at
usebill.dev. - Database: Cloudflare D1. The bot never connects to D1 directly.
billthebot.xyz is reserved for Bill's future website. There is no website in
this milestone.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'
ruff check bill tests
pytest -q
cd worker
npm ci
npm run check- Codebase guide
- Profiles
- Version control with Git and GitHub
- Collaborating with Issues, PRs, reviews, and stacks
- Releasing Bill
- Contributing
- Deployment
- Architecture
- Send tracking
- Roadmap
Included: global and per-server profiles, durable DM onboarding, safe static link-page import, optional Throne connection, alias attribution for future sends, public per-currency stats, multi-server setup, authenticated Worker APIs, signed/idempotent Throne ingestion, D1 persistence, and leased notifications.
Leaderboards, reports, moderation, manual sends, support tooling, diagnostics commands, and a website remain out of scope.
The legacy single-process bot is preserved under archive/single-process-bot for behavioural reference only. It is not part of the active runtime.
parent of a3023d4 (Rebuild Bill send tracking)