Skip to content

Workflow

Conventions on running checks, committing, and opening pull requests.

Day-to-day work follows fixed rules — from how branches are cut to how dependencies are pinned.

Stable code lives on main, the only persistent branch. Every other branch is scoped to a single change and named freely.

Each commit on a short-lived branch captures one atomic change. Every commit is signed. Commit messages follow Conventional Commits.

What stays out of version control is listed in .gitignore — filtered from every commit automatically.

Every change reaches main through a pull request. Force pushes are forbidden; merges into main use squash only.

Dependencies are installed using bun install. With the linker set to isolated, each workspace’s node_modules exposes only its declared dependencies — preventing phantom imports, whether from sibling workspaces or anywhere else.

New dependencies are added using bun add <dependency-name>. With the exact option enabled, each addition is pinned to a specific version instead of a version range — preventing unwanted updates on later installs.

Dependencies are updated using bun update --interactive --recursive. With minimumReleaseAge set to three days, packages younger than that are skipped — a safeguard against installing compromised releases before they’re flagged.

Configuration lives in bunfig.toml and applies to every install — no per-command flags required.

Local development is started with bun dev. Resources are provisioned on the cloud while requests are proxied to a Worker running locally in workerd — wired together by Alchemy’s Local Development.