Introduction
chant is a TypeScript-first infrastructure tool. You define cloud resources as plain TypeScript objects, chant type-checks them against a provider lexicon, and emits deployment-ready output. No YAML, no string templating, no deploy step, no state to manage.
TypeScript source → chant build → provider-specific outputThe product is that synthesis core. Everything past it — state, apply, drift, reconcile — is an opt-in bolt-on: pluggable lexicons in, pluggable lifecycles out, pure synthesis in the middle. Bring your own lifecycle, and chant makes it durable. The two axes aren’t symmetric: lexicons are a shipped plugin contract, while a lifecycle today is durable rails you compose from Ops (a foreign-backend plug-in is direction, not yet shipped). See Lifecycle Models for the full picture.
“No state to manage” means no authoritative state file to host, lock, or trust — not the absence of a change set. chant computes a precise create/update/delete plan against the live system using ownership markers that live on the cloud resource, so you get the plan without the file (State and Governance). And when an apply needs to be durable — approval gates, rollback, crash-resume — chant compiles your orchestration to durable workflows: Temporal-native when you want durability, zero-dependency when you don’t.
You get real import/export, editor autocompletion, and semantic lint rules that catch misconfigurations before deployment — all in a single local pass.
Choose Your Path
Section titled “Choose Your Path”- New to chant? Start hands-on — the getting-started example teaches chant in levels, beginning with pure synthesis (typed resources →
chant build→ spec-native YAML) and building up to deployment. Run it alongside Quick Start. - Synthesis only — You have CI, ArgoCD, Terraform, or another deployment tool. chant produces typed, linted artifacts and hands off. Quick Start covers everything. Lexicons are available for AWS, Azure, GCP, Kubernetes, Helm, Docker, GitHub Actions, GitLab CI, and Temporal.
- Synthesis + deployment — You want durable deployments with phase visibility, gate steps, and rollback. Declare phases in
*.op.ts,chant buildgenerates Temporal worker code,chant runstarts the workflow. Start with Quick Start, then the Ops guide. Not sure if Ops fits? See Choosing Your Deployment Model. - Synthesis + a lifecycle — You want chant to track drift and reconcile it. Pick a position per environment on the
observe → reconcile → authoritativedial: report drift, opencloud → codePRs, or applycode → cloudbehind a gate — no authoritative state file. See Lifecycle Models and the Reconciling Lifecycle guide. - Create a lexicon — Philosophy for the design rationale, then Lexicon Authoring to build a plugin.
- Contribute to chant — Development Setup, then the Architecture Overview.