Developer self-service,
without losing control

On most teams, adding a database or a queue means filing a ticket and waiting on the platform team. With Encore, developers declare what a feature needs in application code and get it provisioned automatically, while platform teams keep the cloud accounts, environments, and production approvals under their control.

Start building

See how it could work for your team.

Deploysproduction1v5dr0cb0mgc3je1e9k0
Retrigger
STATUSRunning
ENVIRONMENTproduction
STARTEDMay 25 at 16:06
DURATION1s
Build & testQueued
Provision infrastructure (1 change)Queued
AWS
Bucket ("receipts")Amazon S3 · versioning enabled
Pending
AWS
SQLDatabase ("orders")Amazon RDS · db.t4g.medium
Pending
AWS
Topic ("orders")SNS topic + SQS subscription
Pending
Provision logs6s
+2siam: created policy receipts-writer · least privilege
+4siam: granted s3:PutObject on receipts to orders
+6siam: no other service granted access
Deploy releaseQueued

Developers declare what their features need

Infrastructure is defined alongside the code that uses it. When a feature needs a queue, database, or bucket, the developer adds a declaration and keeps building, without updating Terraform, opening a provisioning ticket, or handing work off to the platform team.

todo/db.ts
import { SQLDatabase } from "encore.dev/storage/sqldb";

const db = new SQLDatabase("todo", {
  migrations: "./migrations",
});
AWSAmazon RDS
GCPCloud SQL

Managed PostgreSQL with migrations, pooling and IAM auth

Platform teams control how infrastructure runs

Platform teams configure cloud accounts, regions, networking, scaling, resource sizes, and approval requirements for each environment. Developers can then provision what their features need within those controls, while security and production oversight remain centralized.

  • Configure scaling and resource sizes per environment
  • Control cloud accounts, regions, networking, and domains
  • Require approval for production infrastructure changes
  • Apply least-privilege IAM automatically
  • Trace every change back to its commit
prod-us-east-1Prod environment
Settings
1AWS RDS Instance(1 database)
orders-prod-aws-rds-4f80bff
us-east-1
CONFIGURATIONEDIT
Instance classdb.t3.medium
Max connections500
Allocated storage20 GiB
Postgres version17.6
DATABASES(1)
orders
No pending changes
Audit trail

Code declares it, the platform configures it

Your code says which resources exist and how services use them. Everything environment-specific — instance sizing, connection limits, secret values, which cloud and region — is set in the platform, so the same code runs everywhere without a rebuild.

In your code
Committed, reviewed, same everywhere
Which resources existnew SQLDatabase("orders")
How services use themqueries, publishes, reads
Migrations./migrations
In the platform
Set per environment, no redeploy
Instance sizingdb.t3.medium → db.m5.large
Connection limits500 → 1000
Secret valuesper environment type
Cloud + regionAWS us-east-1 / GCP eu-west1

Encore reads the first and applies the second — so nothing environment-specific ends up hardcoded.

Every PR gets its own preview environment

Every pull request gets its own environment with its own databases and queues, provisioned on merge-request and torn down when it closes. Developers stop sharing one contested staging environment.Nobody schedules time on staging, and nobody asks the platform team to reset it.

  • An isolated environment per pull request
  • Its own databases, queues, and secrets
  • Cleaned up automatically on merge
  • The same infrastructure as production
Add receipt storage to orders#482
Openwants to merge 3 commits into main from feat/receipts
Building appRunning
Running testsRunning
Starting preview environmentRunning
encore-botcommented just nowBOT
Preview environment for this pull request
waiting for checksOpen
Waiting for checks to pass
“What used to take days or weeks of back-and-forth between developers and infra teams is now automated and completed in minutes.”
Josef Sima, Engineering Director at Groupon
2–3xfaster development speed
90%shorter time to market
// POWERING DEVELOPMENT AT
GrouponPave BankBookshop.orgCoinbasePalletGradient Labs

Give your team self-service

Install Encore, then use your AI agent to build, run, and deploy an app with real infrastructure in minutes.

Get started
brew install encoredev/tap/encore &&
encore app create
Copy

Run in your terminal to get started locally.