Your infrastructure,
as a database.

Ship from the pull request.
Plans in seconds. Applies in parallel.
SQL across every state.

Same HCL, modules, and providers. Import Terraform state in one command.

Pull request

Humans and agents, together.

pull request #482
stategraphbotcommented
3 to add, 1 to change
  • ✓Policy 2/2 checks passed
  • !Cost +$147/mo, second approval required
humanapprovedapplied
agentopened itpending

In parallel. Everything recorded.

Database

Your infrastructure becomes a graph.

PostgreSQL
Every resource a row. Every dependency an edge.

Not a state file.

Platform teams shipping on Stategraph

Zip logo PrizePicks logo Haus logo Avaloq logo Xanadu logo January logo Patients Know Best logo NOV logo Mixpanel logo Notable Health logo Skool logo

130+ engineers at Zip. Read the case studies →

Workflow

Ship from the pull request.

Open a PR, get a plan. Policy, cost, and approvals in the review.

  • Plans as PR comments
  • Approvals via CODEOWNERS, OPA policy gates
  • Drift detection
Explore Orchestration →
Open Add read replica #482
app-team/read-replica into main
stategraph bot commented
Plan: 3 to add, 1 to change, 0 to destroy
  • ✓Policy 2/2 checks passed
  • !Cost +$147/mo, over threshold, second approval required

Applying alongside #479 and #481. No lock to wait for.

Some checks haven’t completed yet

stategraph apply pending Waiting for status to be reported
Merge pull request merge or comment to apply

Faster

Plans in seconds, not hours.

A plan walks the subgraph your change reaches, and stops there. Work scales with the size of your change, not the size of your state.

How plans get fast →

the resource you changed

STATEGRAPH LOADS TERRAFORM LOADS

Concurrency

Everyone ships at once.

Every change is a transaction with resource-level locks. Changes that don't overlap apply together. Changes that do are rejected at commit.

  • No global lock. No queue, no force-unlock.
  • Cross-state changes commit as one atomic transaction.
  • One graph at any size. You never split state to scale.
How transactions work →

terraform apply

state: production Queued
humanadd read replica applying
cirotate tls cert lock held
agentresize payments db lock held
humanwiden subnet cidr waiting
one at a time1 lock

stategraph apply

state: production Concurrent
humanadd read replica committed
cirotate tls cert committed
agentresize payments db committed
humanwiden subnet cidr committed
no queueone transaction each

Independent changes against one state. Every plan and apply is its own transaction. Overlapping ones are rejected at commit.

Observability

Ask your infrastructure anything.

Your infrastructure is a database. Every resource, dependency, cost, and change is a row you can query, from the console, the CLI, the API, or an agent.

See the console →
stategraph sql
$ stategraph sql query "select type, count(*) from resources group by type"
 aws_instance        20
 aws_security_group  15
 aws_subnet          6

Blast radius

Every resource a change reaches, before you merge.

Cost in the plan

Current versus planned, inline. Attribution and history.

Timeline

Every change an attributed transaction. The audit trail is the record.

Drift and gaps

What drifted, and what nothing manages. AWS and GCP.

AI agents

Built for agents. Safe by construction.

Skills teach any agent the workflows. Its access token grants plan and apply independently, down to a single resource. A model can ignore a prompt. It cannot exercise a capability it was never granted.

  • $ npx skills add stategraph/skills
  • Scoped tokens. Plan only, or plan and apply. Down to a resource pattern in one state.
  • On the record. Every agent action is a transaction on the timeline.
AI agent docs →
agent session · token: plan only
> What depends on payments db, and what would a resize cost?
stategraph-querySELECT … FROM resources JOIN edges …
  12 dependents across 3 states
stategraph-cost$412/mo → $588/mo (+$176)
 
> Plan the resize.
stategraph-changestategraph plan --out resize.plan
  ✓ plan recorded · transaction 8f2a41 · revision 1042
  ✗ apply not permitted: token has plan only
  → handing off for human review

Terraform vs. Stategraph

Terraform Stategraph
LanguageHCLHCL, same modules and providers
StateA file behind a global lockA dependency graph in PostgreSQL, with history
PlanThe whole file, every timeOnly what your change touches
Changes in flightOneAs many as don't overlap
Across statesIn sequence, by handOne atomic transaction
Questionsgrep a JSON fileSQL across everything
WorkflowBring your own CIPull-request orchestration built in
AI agentsBlanket credentialsSkills and scoped tokens

Coming from Terraform?
terraform state pull, then stategraph import tf.
Export back any time.

Deploy it on your terms

STATEGRAPH CLOUD YOUR INSTANCE

Stategraph Cloud

Managed SaaS. Free tier is shared; paid tiers are single-tenant with your own Postgres.

Start free →
YOUR NETWORK STATEGRAPH

Self-hosted

Your VPC, your PostgreSQL. State never leaves your network.

Deployment docs →
YOUR CLOUD ACCOUNT WE OPERATE IT

BYOC

We operate Stategraph inside your AWS, GCP, or Azure account.

Talk to sales →

See pricing →

Your infrastructure, as a database.
One import away.

Faster. Concurrent. Observable. Agent-ready.

Start for free Book a demo