Skip to content

Repository files navigation

code

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.

Chat on Discord documentation github

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.

📂 What is in here

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.

🚀 Getting started

You need Bun; the version is pinned in package.json. Install once from the repository root:

bun install

Then 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 dev

The 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.

🧪 API

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.

🔨 Build from source

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 truth

Cloudflare 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.

🤝 Contributing

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.

⚖️ License

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.

About

This repository contains all BX Team projects, both frontend and backend

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages