Nitric
A multi-language framework in which code asks for APIs, buckets, queues, topics and databases through an SDK; at deploy time Nitric collects those requests and a provider plugin turns them into AWS, Google Cloud or Azure resources, through Pulumi or generated Terraform.
- What it is
- Infrastructure as code
- Used for
- Serverless functions (FaaS)
- Type
- Open source
- Made by
- Nitric Inc.
- License
- Apache 2.0
- Facts checked
- 24 October 2026
What it is
A Nitric service declares what it needs with SDK calls: api('main'), bucket('profiles').allow('read', 'write'), topic('signups'), kv('carts'), schedule('cleanup').every('5 minutes', …). The allow() call states which operations the code performs, and Nitric turns that into IAM policies. SDKs exist for JavaScript and TypeScript, Python, Go and Dart. nitric start runs the services locally with emulated resources and a dashboard for calling APIs, publishing to topics and uploading to buckets.
nitric up builds each service into a container image, then runs the app in a collection mode that records every resource and permission it asks for. That graph, plus a stack file naming a provider such as nitric/aws, goes to a provider plugin. On AWS the standard provider uses Pulumi to create API Gateway HTTP APIs in front of Lambda functions running the images, S3 buckets, SNS topics, SQS queues, DynamoDB tables and Aurora PostgreSQL; on Google Cloud it uses API Gateway, Cloud Run, Pub/Sub and Firestore, and on Azure API Management, Container Apps, Event Grid and Table storage. Terraform providers instead generate a Terraform stack for you to review and apply, and teams can write their own providers for other platforms.
Nitric is open source under Apache 2.0, made by Nitric Inc. The company’s focus has since moved to Suga, a hosting platform, and after a quiet first half of 2026 the framework received a burst of fixes and v1.28.4 in October 2026.
Why teams pick it
- Application code isn’t tied to one cloud: the same
bucket()call becomes S3, Cloud Storage or Azure Blob depending on the provider in the stack file - Least-privilege permissions come from
allow()declarations next to the code that uses them - Platform teams can keep control of the actual resources by writing or extending providers, or by reviewing the Terraform that Terraform providers generate
- SDKs for JavaScript and TypeScript, Python, Go and Dart share the same resources and providers, so one deployment model covers several languages
Watch out for
- Only the resources the SDK models (APIs, buckets, queues, topics, key-value stores, schedules, websockets, SQL, secrets) are covered; anything else needs a custom provider or separate IaC
- The Terraform providers are built on CDKTF, which HashiCorp archived in December 2025
- The company’s main product is now Suga, and framework development has slowed to occasional bursts of fixes
- Because one
bucket()ortopic()has to mean the same thing on every cloud, cloud-specific settings are reached by customising the provider, not from application code
Alternatives
What all infrastructure as code have in common →Compare side by side →How it fits with other technologies
What Nitric uses
- Nitricdeploys through its standard providers withPulumi
- Nitriccan generate stacks forTerraform
- Nitricruns services on AWS inAWS Lambda
- Nitricserves APIs on AWS throughAmazon API Gateway
- Nitricimplements queues on AWS withAmazon SQS
- Nitricimplements topics on AWS withAmazon SNS
- Nitricimplements key-value stores on AWS withAmazon DynamoDB
- Nitricstores buckets on AWS inAmazon S3
- Nitricruns services on Google Cloud inGoogle Cloud Run
services/profiles.ts and the stack file that picks the cloud · ts
import { api, bucket } from '@nitric/sdk'
const profiles = bucket('profiles').allow('read') // becomes an S3 read policy on AWS
const main = api('main')
main.get('/profiles/:name', async (ctx) => {
const { name } = ctx.req.params
const image = await profiles.file(`users/${name}/profile.png`).read()
ctx.res.body = image
})
// nitric.aws.yaml
// provider: nitric/aws@1.1.0
// region: us-east-1
// $ nitric start local emulation and dashboard
// $ nitric up --stack aws deploy through the AWS providerSee it in a real stack
No architecture uses Nitric yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2020–2026
Nitric’s repository was created at the end of 2020, and by October 2021 the framework was in developer preview with Azure added as a deployment target next to AWS and Google Cloud. The idea, which its makers later called infrastructure from code, was to let application code state what it needs and generate the infrastructure from that, rather than keeping a separate infrastructure codebase in step with the application.
The team chose Pulumi for its first providers, using the Pulumi Automation API from providers written in Go. In an October 2023 post they explained why: real programming languages, composable components, encrypted secrets in state and an Apache 2.0 licence, which fit better than Terraform’s new Business Source License. Version 1.0 followed in February 2024, adding live architecture diagrams, customisable providers and an experimental Dart SDK.
In July 2024 Nitric added Terraform providers for teams already invested in Terraform, mapping the app’s requirements onto reusable modules. The company, led by co-founder and CEO Jye Cusch, then built Suga, a deployment platform, and the nitric.io home page now leads with Suga while the framework is maintained in occasional bursts.
Why it’s built this way
- Resources requested through SDK calls in application code
- The code that reads a bucket is the best record of which bucket it needs and what it does with it, so permissions and resources can be derived instead of written twice.
- Pluggable providers that receive a resource graph
- Separating what the app needs from how it is built lets the same code target AWS, Google Cloud, Azure or a company’s own Terraform modules.
Timeline
- 2020
Nitric repository created in December
- 2021
Developer preview adds Azure support
- 2023
Team explains building its standard providers on Pulumi
- 2024
Nitric 1.0 in February; Terraform providers in July
- 2026
v1.28.4 in October, after months without changes
- GitHub API: nitrictech/nitric repository (created December 2020, Apache 2.0)
- Nitric blog: Nitric update, October 2021 (preview with Azure support)
- Nitric blog: Why we started with Pulumi (Oct 2023)
- Nitric blog: Announcing Nitric version 1.0.0 (Feb 2024)
- Nitric blog: Nitric’s Terraform providers (Jul 2024)
- Nitric blog: What is Infrastructure from Code? (Aug 2024)
- Suga: a cloud deployment platform built by Nitric
Sources12 · facts checked 24 October 2026
- Nitric docs: overview (resources, allow(), providers, nitric start and up)
- Nitric docs: Deployment (stack files, resource collection, IaC providers)
- Nitric docs: Storage (bucket, allow, file read)
- Nitric docs: APIs (route parameters)
- Nitric docs source: AWS mappings (API Gateway, Lambda, S3, SNS, SQS, DynamoDB, Aurora)
- Nitric docs source: Google Cloud mappings
- Nitric docs source: Azure mappings
- Nitric docs source: AWS Terraform provider (built with CDKTF)
- GitHub: hashicorp/terraform-cdk (sunset and archived December 2025)
- Nitric on GitHub: README (languages, clouds, custom providers)
- GitHub: Nitric v1.28.4 release (Oct 2026)
- Nitric: home page (Suga and Sugabots, © Nitric Inc.)