Documentation
TerraDart lets you write your infrastructure and your app in one typed Dart codebase. A Stack synthesizes standard Terraform JSON for Google Cloud, AWS, Cloudflare and Appwrite, and the values your app needs reach it as a generated Dart file instead of copied strings.
Guides track the 0.35.x line on pub.dev. Every Dart snippet on this site compiles against it in CI.
Pick the guide for where you start. Each is one path you can paste, from dart pub global activate terradart_cli to an apply, and none asks you to install Terraform.
- Start from an existing Flutter app — add
infra/beside the app, apply it, and build the app with the outputs, typed, through--dart-define-from-file - Start from an empty directory —
terradart init, thenvalidate,planandapply, with a default environment and the state moved to a bucket - Migrate an existing Terraform project —
terradart migrate, a plan that reports No changes, then Dart one resource at a time - Let an AI agent do it — the TerraDart Agent Skill, and the plan you approve
- Getting started — the pieces built by hand: a Stack for your provider, synth, apply, and the values your app reads
- Why TerraDart — the problem, the design, and how it compares with HCL, CDKTF and Pulumi
Guides
Section titled “Guides”- Writing arguments — which form an argument takes: a literal, a
ref, an enum member, a variant, a variable, a secret - Environments — dev, staging and prod as a Dart enum: each with its own project and state, and its own define file for the client
- Outputs in client apps — build a Flutter, web or CLI client with apply-time values, typed, from the define file
terradart applywrites - Migrating from HCL —
terradart migratebrings an existing Terraform tree over with a plan that reports No changes
Providers
Section titled “Providers”- Google Cloud —
terradart_googleandterradart_google_beta - AWS —
terradart_aws: Lambda, ECS Express Mode, Flutter Web on S3 + CloudFront - Cloudflare —
terradart_cloudflare: the DNS and edge in front of your app - Appwrite —
terradart_appwrite: the backend of a Flutter app
terradart_time adds TimeSleep, the propagation wait any Stack can use, and everything builds on terradart_core.
Reference
Section titled “Reference”- The terradart command —
terradart synth,validate,plan,apply,destroy,outputsandmigrate, environments declared in Dart, and managed OpenTofu - Coverage — every factory of every provider package, its barrel, and the examples that use it
- API reference — the dartdoc of every package on pub.dev
- llms.txt — these docs, condensed for LLMs
Under the hood
Section titled “Under the hood”- How TerraDart works — the loop from Stack to
*.tf.jsonto OpenTofu or Terraform, synth issues, and the constants and outputs that cross into your app - How TerraDart is built — the generation pipeline and verification harness behind the factories; the maintainer CLI is
terradart_codegen(terradart-codegen wrap)
Project
Section titled “Project”- Upgrading — breaking changes in the current minor; read before every minor bump
- Status & versioning — alpha, path to beta, 1.0
- README, examples and cookbook on GitHub