What Encore actually is
Encore is two things bundled together:
- Open-source framework
- Encore.ts and Encore.go — libraries you import to declare services, APIs, databases, Pub/Sub topics, cron jobs, caches, and object storage as type-safe code (e.g.
new SQLDatabase("orders")). Everything needed to run and build the app is MPL-2.0 licensed and free. - Encore Cloud (optional, paid at scale)
- A managed platform that parses your app's code, generates an infrastructure graph, and automatically provisions matching cloud resources (RDS/Cloud SQL, SQS/SNS or GCP Pub/Sub, S3/GCS, ElastiCache/Memorystore, ECS Fargate/Cloud Run, IAM, VPCs) inside your own AWS or GCP account. It also adds tracing, a service catalog, architecture diagrams, and per-PR preview environments.
Founded by ex-Spotify/Google engineers; ~12k GitHub stars, 200+ teams in production (Groupon, Bookshop.org, Pave Bank, Carla, and others).
Using Encore without an AWS account
| Tier | Needs AWS/GCP? | Notes |
|---|---|---|
| Local development | No | encore run spins up your whole backend locally — Postgres via Docker, Pub/Sub and cache in-memory, object storage on local disk. No Docker Compose files, no cloud account at all. |
| Encore Cloud Hosting (free dev/preview) | No | Free hosting for development and per-PR preview environments, run entirely on Encore's own infrastructure. Good for demos, staging, and evaluating the platform — not intended for business-critical workloads (no SLA on persistent storage). |
| Self-hosted production | No | encore build docker exports a standard Docker image with no Encore runtime lock-in. Deploy it anywhere you like — your own server, Kubernetes, Railway, Fly.io, etc. — and supply your own Postgres/queue/storage config. |
| Encore Cloud automated production on your cloud | Yes | The "push to git, Encore provisions RDS/ECS/S3/etc. in your account" workflow is what actually requires connecting an AWS or GCP account. This is Encore Cloud's core value proposition for teams that don't want to hand-roll Terraform. |
So: no AWS account is a hard requirement only for the "fully automated production infra in your own cloud" feature. Everything else — building, running, testing, and even shipping a small production app via Docker self-hosting — works without one.
How it works
- You declare infrastructure as logical, cloud-agnostic objects in code: a database, a Pub/Sub topic, a bucket, a cron job.
- Encore's compiler parses the app into an "Application Model" — a graph of services, APIs, and infra dependencies.
- Locally, the Encore CLI satisfies that graph with Docker/in-memory equivalents. In the cloud, Encore Cloud satisfies it with real AWS/GCP services, or you satisfy it yourself via config when self-hosting.
- Because application code never references cloud-specific APIs, the same code can run colocated (monolith) or split into microservices, and can move between AWS, GCP, or self-hosted without changes.
Where it's best used
| Good fit | Weaker fit |
|---|---|
| Startups/small teams wanting a production-ready AWS/GCP backend without a dedicated DevOps hire | Teams already deeply invested in existing Terraform/Pulumi stacks they don't want to replace |
| Distributed systems / microservices with Pub/Sub, cron, caching, multiple databases — Encore's primitives map directly to these | Pure frontend or static-site projects (Encore is backend-only) |
| Teams that want built-in tracing, service catalogs, and architecture diagrams without bolting on separate observability tools | Projects needing infrastructure Encore doesn't model (you can still drop to raw AWS/GCP SDKs, but you lose some automation) |
| AI-assisted development — Encore ships an MCP server and LLM instructions so agents get full schema/API context and generated code type-checks before shipping | Teams wanting Python (not yet supported; Go and TypeScript only, Python is roadmapped) |
| Incremental migration of an existing app, service-by-service | Multi-cloud-simultaneously deployments beyond AWS/GCP (Azure is roadmapped, not available) |
How it compares
| Tool | What it does | How Encore differs |
|---|---|---|
| Terraform / Pulumi / CDK | IaC for provisioning cloud resources from config files | Encore infers infrastructure from application code itself — no separate config to keep in sync |
| Serverless Framework | Deploys serverless functions to AWS | Encore supports monolith, microservices, or serverless, on AWS, GCP, or self-hosted |
| NestJS / Express / Fiber | Web frameworks for APIs | Adds infra primitives, local dev tooling, observability, and optional cloud automation on top |
| Supabase / Firebase / Convex | Managed backend-as-a-service | Similar productivity, but supports real microservices/event-driven systems and deploys into your own cloud account instead of a vendor's |
| Vercel / Railway / Netlify | General deployment platforms | Encore is backend-specialized with deeper primitives (Pub/Sub, cron, caching) and multi-cloud automation |
Trade-offs to know
- Languages: only Go and TypeScript today; Python is on the roadmap.
- Clouds: only AWS and GCP for automated production provisioning; Azure is roadmapped.
- Lock-in: low — code is 99% ordinary Go/TypeScript, and self-hosting via Docker is a documented, supported exit path.
- Free tier limits: Encore Cloud Hosting is fine for dev/preview but explicitly not meant for business-critical persistent storage — treat it as a sandbox, not production.