Configuration
A project is driven by a single dbx.config.ts:
ts
import { defineConfig } from '@deltabox/toolchain';
export default defineConfig({
toolchain: {
project: {
type: 'monorepo-root',
name: 'acme',
scope: '@acme',
},
ci: {
ci: true,
changelog: {
branches: { main: 'main', dev: 'dev' },
commitlint: { scopes: ['api', 'web', 'deps'] },
},
},
tsconfig: { refs: true },
fmt: { vscode: true, oxc: { semi: true, singleQuote: true } },
lint: { oxc: { ignorePatterns: ['dist/**'] } },
vite: {
test: { include: ['src/**/*.test.ts'] },
},
watch: { debounce: 150 },
},
});The @deltabox/toolchain settings live under the toolchain key, so a dbx.config.ts can host other dbx concerns alongside it.
Each section has its own guide: Project, CI + Changelog, tsconfig, Formatting & linting, Vite+, Watch, Logger and Providers.
Where to start
- Opt-in by presence — which sections run, and how nested sections like
ci.changelogand the individual workflows opt in. - Nested configs — how a workspace config merges over its root.
defineConfig— object, promise or callback.- Config file names — the file names the loader probes.
- Hooks — lifecycle hooks in a
.ts/.jsconfig. - Logging — the logger section and CLI overrides.
- Providers — provider passthrough colour settings.
- Vite+ — the full Vite+ config and the generated shim.
- Programmatic API — load + sync from code.
The generated, exhaustive section reference is dbx.config.