Design Goals
The constraints that shape Anybuild's CLI, SDK, providers, and plans.
One project pipeline
Detection, generation, planning, building, running, and deployment are SDK operations. The CLI translates flags into those typed options and renders events; it does not own a second orchestration implementation.
Automatic but editable
Provider detection should produce a useful default, but the generated Starlark file is a durable project artifact rather than an opaque internal plan. Users can compose or replace provider behavior.
Independent build and runtime choices
Build isolation and runtime packaging solve different problems. Anybuild models them independently as Local or Docker builds and Local or Wasmer runtimes.
Embeddable and observable
The SDK is synchronous, silent by default, returns structured outcomes, emits owned events, redacts credentials, and captures the process environment per project instance.
Compatibility without permanent duplication
Legacy Shipit files, state directories, environment variables, and the binary alias are migrated or accepted at boundaries. Internally, operations use Anybuild names and one Rust implementation.