Pulumi

Infrastructure as Code in your favorite programming language, powered by a shared multi-language deployment engine.

Framework
npm
v3.258.0
25,580stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
91/100Excellent
Development Activity100
Maintenance96
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
84/100Excellent
Architecture88
Code Quality85
Innovation85
Learning Curve78

@pulumi/pulumi is the core Node.js/TypeScript SDK for Pulumi, an infrastructure-as-code platform that lets you define, deploy, and manage cloud infrastructure using real programming languages instead of YAML or a bespoke DSL. Programs written against this SDK declare resources — VMs, storage buckets, Kubernetes clusters, serverless functions — that the Pulumi CLI and deployment engine reconcile against a live cloud account, using ordinary language constructs like loops, functions, and classes rather than templating.

Under the hood, the SDK is one language host among several (Go, Python, .NET, Java, YAML) that all talk to the same Go-based deployment engine over gRPC, so the same resource model, state format, and provider ecosystem (AWS, Azure, GCP, Kubernetes, and 300+ others) behave identically regardless of which language a program is written in.

What You Get

  • Resource and ComponentResource base classes for authoring first-class, reusable infrastructure abstractions in TypeScript/JavaScript
  • An Output<T>/Input<T> type system that handles async, not-yet-known cloud values without callback plumbing
  • Automation API for embedding Pulumi’s preview/up/destroy/refresh engine directly inside your own CLIs, services, or CI pipelines
  • Built-in stack configuration, encrypted secrets, and StackReference for sharing typed outputs across projects and teams
  • Dynamic providers for implementing a custom CRUD resource inline when no first-class provider exists yet

Common Use Cases

  • Provisioning multi-cloud infrastructure (AWS + Kubernetes + Azure) from one program and one state file
  • Building internal developer platforms with Automation API instead of shelling out to the pulumi CLI
  • Migrating existing Terraform/CloudFormation stacks into typed, testable code via pulumi convert
  • Sharing typed outputs between stacks/projects with StackReference for platform-team and app-team boundaries
  • Embedding infrastructure provisioning as a step inside an existing Node.js deployment or release pipeline

Under The Hood

Architecture Pulumi’s Node SDK (sdk/nodejs) is one of several language hosts (Go, Python, .NET, Java) that sit in front of a shared Go-based deployment engine (pkg/engine, pkg/resource/deploy, pkg/backend); the SDK’s runtime package (sdk/nodejs/runtime) serializes resource registrations over gRPC (defined under proto/) to the engine process, which resolves the desired-state resource graph against provider processes (pkg/resource/provider) and persists results to a configurable backend — local file, S3, or Pulumi Cloud, per docs/architecture/deployment-execution/state.md. On the SDK side, resource.ts and output.ts implement the Resource/ComponentResource class hierarchy and the async-aware Output<T>/Input<T> type that lets values not yet known at preview time flow through ordinary language constructs like .apply().

Tech Stack The npm package itself is pure TypeScript (compiled to sdk/nodejs/dist, targeting Current/Active/Maintenance LTS Node versions) with a lean dependency surface — @grpc/grpc-js and google-protobuf for the wire protocol to the engine, js-yaml/ini for config parsing, semver for version handling, and an OpenTelemetry stack (sdk-trace-node, exporter-otlp-grpc, exporter-zipkin) for optional tracing — while the surrounding monorepo is roughly 77% Go (pkg/, the engine and CLI), with the Python, TypeScript/JavaScript, and other-language SDKs living alongside it under sdk/. Builds use per-language Make targets plus a top-level Makefile, CI runs on GitHub Actions with golangci-lint (a custom-built linter per .custom-gcl.yml) for Go and Biome for the JS/TS code.

Code Quality Test coverage is substantial and multi-layered: 35 spec/test files directly under sdk/nodejs plus 534 *_test.go files across pkg/, and a dedicated tests/ tree at the repo root covering integration, smoke, performance, policy, and roundtrip scenarios against real cloud accounts. The Node SDK enables ESLint with typescript-eslint plus a header-check plugin that enforces the Apache license banner on every file, and the repo carries a codecov.yml for coverage tracking — though large portions of cross-language behavior (e.g. gRPC wire compatibility between language hosts and the engine) are necessarily verified via the integration suite rather than pure unit tests, given the inherently multi-process architecture.

API Design The public API favors idiomatic TypeScript over ceremony: declaring a resource is new aws.ec2.Instance(name, args, opts), config is read via new pulumi.Config().require(key), and cross-resource dependencies are expressed by simply passing one resource’s property into another’s arguments — the Output<T>/apply() model handles the async plumbing invisibly. Documentation is extensive (docs/architecture, per-language README files under sdk/*/, and the public pulumi.com/docs site) and pulumi new scaffolds a working project in a single command, though newcomers do need to learn the Output/apply mental model and the preview-then-up workflow — a real but shallow learning curve for anyone coming from Terraform or hand-written provisioning scripts.

Used by 6 apps in this directory

TypeScript
99%
Other

Activepieces

Automation · AI Assistants

23,887

Open-source AI automation platform that converts 280+ workflow integrations into MCP servers for LLMs, with no-code builders and TypeScript extensibility.

View details
92
Repo Health
85
Technical
65
Dependency
Built with
TypeScript99%
Updated today
TypeScript
55%
Other

Cap

Team Chat · Video Conferencing

20,986

Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.

View details
89
Repo Health
81
Technical
65
Dependency
Built with
TypeScript55%
Rust40%
Updated yesterday
TypeScript
98%
MIT

GraphQL Hive

Developer Tools · Devops · Monitoring

485

Open-source GraphQL schema registry and observability platform with breaking change detection, federation support, and CI/CD integration for teams of any size.

View details
90
Repo Health
81
Technical
70
Dependency
Built with
TypeScript98%
Updated today
TypeScript
79%
LGPL 3.0

Latitude

AI Agents · Monitoring

4,593

Open-source AI agent monitoring that catches what will break next before your users do.

View details
86
Repo Health
88
Technical
67
Dependency
Built with
TypeScript79%
Python11%
Updated today
TypeScript
85%
Other

Webiny JS

Ecommerce · Blogging · CMS

8,031

Open-source, self-hosted CMS on AWS serverless — a TypeScript framework you extend with code, not a product you configure through a UI.

View details
90
Repo Health
86
Technical
64
Dependency
Built with
TypeScript85%
JavaScript14%
Updated today
Rust
31%
Other

Windmill

Automation · Developer Tools

17,577

Turn scripts into webhooks, workflows, and auto-generated UIs — the fastest self-hostable workflow engine, 13x faster than Airflow.

View details
91
Repo Health
82
Technical
66
Dependency
Built with
Rust31%
Svelte22%
TypeScript22%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search