12,686
stars
+0+5+244
654
forks
65
watchers
–
prs
–
issues
172
releases
–
discussions
README
Encore: Infrastructure orchestration from local to your cloud
What is Encore?
Encore helps developers and AI coding agents build and deploy backend applications without having to manually set up and manage infrastructure.
Encore combines an open source SDK, CLI, and cloud platform into one workflow for building and deploying apps.
Import what you need from the SDK directly into your application to define services and infrastructure. Run your app and infrastructure locally with the CLI to test changes end to end. Then push to your repo, and the platform sets up the matching resources in your cloud (AWS or Google Cloud) and deploys your app.
You can also use the SDK on its own for local development, and manage production infrastructure yourself using Terraform or other tools.
Example: Declaring resources using the SDK
typescript
import { SQLDatabase } from "encore.dev/storage/sqldb";
import { Topic } from "encore.dev/pubsub";
import { Bucket } from "encore.dev/storage/objects";
// Define a Postgres database
const db = new SQLDatabase("users", { migrations: "./migrations" });
// Define a Pub/Sub topic
const signups = new Topic("signups", {
deliveryGuarantee: "at-least-once"
});
// Define an object storage bucket
const avatars = new Bucket("avatars", { versioned: true });
Each declaration becomes a node in Encore's application graph. Encore runs the migrations and stands up local equivalents on encore run, and provisions the cloud equivalents on deploy:
| Resource | Local | AWS | Google Cloud |
| -------------- | ------------------ | --------------- | --------------- |
| SQL Database | Postgres | RDS | Cloud SQL |
| Pub/Sub | NSQ | SNS + SQS | Cloud Pub/Sub |
| Object Storage | Local FS | S3 | GCS |
| Cache | Redis | ElastiCache | Memorystore |
| Cron | Manually triggered | Encore Cloud | Encore Cloud |
| Secrets | Encore vault | Secrets Manager | Secret Manager |
| Compute | Local | Fargate / EKS | Cloud Run / GKE |
When you push a change that adds or modifies a resource, Encore diffs the application graph against the environment, provisions whatever is missing in your AWS or Google Cloud account, and rolls out the new code against it.
Configuration
Encore separates application semantics from environment-specific configuration. In code, you define what resources your app needs, not how each environment should configure them.
That keeps services portable across clouds, regions, accounts, scale profiles, and local development.
Encore provisions every resource with sane production defaults, then helps you manage configuration separately from your application code:
- Encore platform dashboard: easy to use knobs for all common settings like process allocation, instance sizes, replicas, etc. See more in docs.
-