Features

Everything Terraform state can't do.

Terraform stores your state as a JSON file behind a global lock. Stategraph stores it as a normalized graph in Postgres — and that one change unlocks a decade of features Terraform was never shaped to have.

Drop-in for Terraform & OpenTofu Same HCL Postgres-backed
Get Started See the features

It's the storage layer, not the syntax

Every Terraform scaling problem — slow plans, lock contention, fragile cross-state wiring, no queryability — traces back to one decision: state is a file. Put it in a database and the problems dissolve.

Terraform & OpenTofu
×State is one big JSON file in a bucket
×A global lock on the whole file
×Every plan walks the entire state
×Cross-state reads only the last apply
×No query, no history, no graph
Stategraph
State is a normalized graph in Postgres
Locks only the resources you touch
Plans size to the slice your change touches
Cross-state sees pending changes
SQL, audit log, and dependency graph built in

One plan, every state it touches

Change a producer module and watch the change ripple into its consumer — in the same plan. This is the demo Terraform can't reproduce.

stategraph — cross-state plan
# change the producer (rm1) only; one plan spans both states
 stategraph plan

State 0 · rm1  (producer)
  ~ output.http_proxy_port:  8080  9090
State 1 · rm2  (consumer: reads the pending output)
  ~ terraform_data.firewall_rule_port_min:  8070  9080

Plan: 0 to add, 2 to change, 0 to destroy   # across 2 states

One plan updates rm1 and rm2 together · see how cross-state plans work →

The game-changers

Nine capabilities Terraform's file-and-lock model can't offer. Each one has its own page with a worked example.

Same HCL. Same workflow. Stategraph is a drop-in backend for Terraform and OpenTofu — point your terraform_remote_state and provider config at it and keep writing the HCL you already write. Terraform compatibility →

See it on your own state

Import an existing Terraform state and watch plans get faster, locks get smaller, and your infrastructure become queryable.

Get Started Read the Docs