Development and releases
Build, test, release, and deploy the OpenCode plugins and their documentation.
The repository is a Bun workspace. Plugin source lives under packages/; this site lives under apps/web/.
Local site development
From the app directory:
bun install --frozen-lockfile
bun run dev
Build and preview the exact static output:
bun run build
bun run preview
Blume also emits llms.txt, llms-full.txt, raw Markdown mirrors, sitemap, robots, and structured data for the configured production domain.
Repository checks
From the repository root:
bun run typecheck
bun run check
bun run test
bun run build
Package releases use Changesets. Do not manually edit package versions.
Cloudflare deployment
alchemy.run.ts declares the site as Cloudflare.Website.StaticSite. Alchemy runs bun run build, uploads dist/ as Worker static assets, manages the custom domain, and keeps state per stage.
Run the deployment command from apps/web/:
bun run deploy -- --stage prod --yes
Cloudflare authentication is supplied through Alchemy’s profile locally or the deployment workflow’s CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN secrets in CI. No credentials belong in this repository.
GitHub Actions
The release workflow deploys the prod stage with bunx --no-install alchemy deploy --stage prod --yes on pushes to main. The CI workflow runs checks for pull requests but does not create or destroy pr-<number> stages.
Required repository secrets:
CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKEN
The Cloudflare token should be narrowly scoped to the account and deployment operations this site needs.