Thanks for your interest in contributing to rfd! This guide covers local setup and how the project is organized.
Clone the repo and install dependencies from the root:
git clone https://github.com/bombshell-dev/rfd.git
cd rfd
pnpm installThis is a monorepo with three packages under packages/:
AT Protocol lexicon definitions and generated TypeScript types. Lexicons describe the data schemas used across the platform (repos, pulls, issues, discussions).
Key commands:
pnpm --filter lexicon build # generate types from lexicon definitions
pnpm --filter lexicon dev # regenerate types on changeThe web application. Built with Astro and deployed to Cloudflare Workers via the @astrojs/cloudflare adapter. Uses Cloudflare D1 for storage and an auxiliary Spacedust worker for background processing.
Key commands:
pnpm --filter www dev # start the dev server at 127.0.0.1:4321
pnpm --filter www build # production build
pnpm --filter www preview # preview with wrangler
pnpm --filter www test # run tests
pnpm --filter www generate-types # generate Cloudflare worker typesPlaceholder for a future CLI package. Currently empty.
- Install dependencies from the root (
pnpm install). - Generate lexicon types if you're working on schemas:
pnpm --filter lexicon build. - Start the dev server for the web app:
pnpm --filter www dev. - Run tests before submitting changes:
pnpm --filter www test.
rfd is an experimental, AT Protocol-powered platform for Requests for Discussion. It indexes data from atproto repositories and provides a web interface for browsing and interacting with proposals, pull requests, issues, and discussions.
- Open a pull request against
main. - Keep changes focused. Smaller PRs are easier to review.
- If you're proposing a significant change, consider opening an issue first to discuss the approach.