Skip to content
infra-ts is early and moving fast.npm
infra-ts
Esc
navigateopen⌘Jpreview
On this page

Providers

Provider packages are thin REST wrappers that implement the infra-ts entity contract.

The umbrella infra-ts package includes the first provider set as subpath imports. Each provider is a thin wrapper over the provider’s REST API, not a separate engine.

Neon

Projects, branches, compute, Postgres, auth, and replicas.

Vercel

Projects and environment variables wired from other entities.

Upstash

Redis, Vector, and QStash-style infrastructure.

SaaS providers

Resend, Mux, Sentry, WorkOS, Sanity, Statsig, Dub, Stripe, PostHog, ElevenLabs, and OpenAI.

Imports

import { NeonProject } from "infra-ts/neon";
import { VercelProject } from "infra-ts/vercel";
import { StripeProduct } from "infra-ts/stripe";
import { OpenAIProject } from "infra-ts/openai";

Provider contract

Provider authors implement entities with a small lifecycle:

  • read fetches live remote state
  • diff compares desired config with live remote state
  • provision creates or updates the resource
  • pullEnv exposes typed environment outputs
  • deprovision tears down the resource

The engine handles graph ordering, refs, state-file I/O, env output, hooks, and CLI rendering.

Design rule

Providers should stay thin. Shelling out to vendor CLIs, storing hidden snapshots, or bundling unrelated provider logic into a single resource makes the graph harder to reason about.

The happy path is boring:

typed options -> REST API read -> pure diff -> REST API mutation

Was this page helpful?