The BX Team web platform in one repository — the site and documentation at bxteam.org, the downloads API behind every build we publish, and the Discord bot that announces them. TypeScript end to end, running entirely on Cloudflare Workers.
BX Team is an open source community building tools for Minecraft server owners, developers and players. The plugins and server software live in their own repositories across the organization; this one holds the web platform that ties them together. If you only want to use our projects, start at bxteam.org.
A bun workspaces monorepo. Each app is a Cloudflare Worker deployed on its own domain; the packages are consumed from source, never published.
| App | Domain | What it is |
|---|---|---|
apps/meridian |
bxteam.org |
The website and documentation — Nuxt 4, statically generated and served as Workers Static Assets |
apps/azimuth |
api.bxteam.org |
The public API — Hono, the /atlas downloads group over D1 and R2 |
apps/beacon |
beacon.bxteam.org |
The Discord bot — Hono, GitHub webhooks and Atlas announcements |
| Package | What it is |
|---|---|
packages/stratus |
D1 schemas and migrations (Drizzle ORM) |
packages/types |
Shared Zod schemas for the Atlas wire format and the atlas-events queue |
packages/ui |
Shared Vue 3 components and design tokens |
All persistent state belongs to azimuth: the atlas-db
D1 database for project, version and build
metadata, and the builds R2 bucket for the
artifacts. beacon stores nothing — it learns about a release from the atlas-events
queue.
You need Bun; the version is pinned in package.json. Install once from
the repository root:
bun installThen run whichever app you are working on:
bun dev # everything in parallel
bun dev:meridian # the site, on nuxt dev
bun dev:azimuth # the API, on wrangler dev
bun dev:beacon # the bot, on wrangler devThe two Workers read local secrets from a .dev.vars — copy the .dev.vars.example next
to each of them as a starting point. Per-app notes live in each project's CLAUDE.md.
azimuth serves https://api.bxteam.org. Reads are public and need no credentials; the
OpenAPI document is at /openapi.json and the
rendered reference at /reference.
bun run build # every app
bun build:meridian # nuxt generate
bun build:azimuth # wrangler deploy --dry-run
bun build:beacon # wrangler deploy --dry-run
bunx biome check . # formatting and lint, the source of truthCloudflare builds and deploys the Workers straight from this repository — every pull
request gets a preview deployment, and a merge to master ships. There are no CI
workflows here and no manual deploy step.
Contributions are welcome — open an issue to discuss anything larger before you write it, and keep a pull request to one subject. The organization-wide guidelines are in CONTRIBUTING.md.
The documentation for every BX Team project lives here too, under
apps/meridian/content/docs. Read
apps/meridian/content/README.md first — it documents
the frontmatter, the MDC components and the icon set the pages are written against, and
review the result on the pull request's preview deployment rather than in the Markdown
source.
This project is licensed under the GNU Affero General Public License v3.0 — see the LICENSE file for details. In short: use it, modify it and self-host it freely, but a modified version run as a network service has to offer its source to the people using it.