Encore
Docs
Pricing
★12K+Sign inGet started
★12k+
Encore

Stay in touch

Product updates and engineering deep-dives.

DiscordGitHubYouTube

© 2026 Encore

Product
Encore PlatformEncore Platform
Encore.tsEncore.ts
Encore.goEncore.go
InstallInstall
PricingPricing
Systems Operational
Customers
Case StudiesCase Studies
ShowcaseShowcase
Book a DemoBook a Demo
Resources
DocsDocs
BlogBlog
Example AppsExample Apps
GuidesGuides
ComparisonsComparisons
ArticlesArticles
GitHub ReleasesGitHub Releases
Company
AboutAbout
Swag ShopSwag Shop
ContactContact
JobsJobs
PressPress
SecuritySecurity
Legal
TermsTerms
Privacy PolicyPrivacy Policy
Data Processing AgreementData Processing Agreement
Enterprise SLAEnterprise SLA

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 buildingTalk to an engineer→
Deploys/production/1v5dr0cb0mgc3je1e9k0
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.

Infrastructure primitives→
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.

Infrastructure documentation→
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
Preview environments→
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

Install the Encore CLI with `brew install encoredev/tap/encore`, then run `encore app create my-app` and follow the prompts to scaffold a new backend and help me explore how to build with encore.

Copy

Paste into your coding agent to install Encore and scaffold an app.