AWS Amplify Gen 2 deploys a GraphQL and DynamoDB backend to your AWS account from TypeScript resource files. Encore lets you build your own backend, with services, Postgres, and Pub/Sub provisioned automatically in your AWS or GCP account. Keep the cloud ownership, with a backend shaped by your application code.
“What used to take days or weeks of back-and-forth between developers and infra teams is now automated and completed in minutes.”
See how Encore and AWS Amplify differ across key capabilities.
| Infrastructure | Your AWS or GCP account | Your AWS account |
| Cloud Providers | AWS and GCP | AWS only |
| Backend Definition | Services and APIs in application code | TypeScript resource files |
| API Style | Type-safe APIs | AppSync GraphQL plus Lambda functions |
| Databases | RDS / Cloud SQL (Postgres) | DynamoDB via AppSync |
| Pub/Sub & Queues | SNS/SQS or GCP Pub/Sub | Add with AWS CDK |
| Local Development | Automatic (DBs, queues included) | Per-developer cloud sandbox |
| Observability | Built-in tracing & metrics | Per underlying AWS service |
| Preview Environments | Automatic per PR | Branch environments and PR previews |
Encore sets all of this up from your application code. It's real infrastructure in your own cloud account, so you can always open the console and look. You just never have to build it by hand.
Amplify Gen 2 defines backend resources in TypeScript files such as amplify/data/resource.ts and amplify/auth/resource.ts. Data is served through AWS AppSync and DynamoDB, auth through Amazon Cognito, and functions through AWS Lambda, all layered on AWS CDK.
This is useful for frontend and mobile apps that want auth and data quickly. Resources run in your AWS account, shaped around the Amplify data model.
Encore provisions infrastructure in your cloud account based on your application code. You define databases, Pub/Sub, and other resources in your application code. When you deploy, Encore creates the corresponding AWS or GCP resources using sensible defaults for each provider, which you can configure when you need more control.
This is useful when you want infrastructure ownership, need native cloud services (RDS, SQS, S3), or want built-in observability. Resources run in your own AWS or GCP account.
Both tools deploy into a cloud account you own, but Amplify centers on GraphQL over DynamoDB, while Encore provisions services, Postgres databases, Pub/Sub, cron jobs, and object storage from your application code.
With Encore, you can see your databases in the AWS Console, set up VPC peering, configure IAM policies, and use any AWS/GCP service alongside your Encore resources. Your data stays in accounts you own.
With Amplify, anything outside the built-in categories, such as queues, means writing AWS CDK code yourself. Encore also supports GCP from the same application code.
Learn more about infrastructure ownership →Amplify Gen 2 gives each developer a cloud sandbox, so the local loop runs against real AWS resources that deploy on every change. That needs AWS credentials and network access during development.
Encore runs encore run and automatically provisions local PostgreSQL, Pub/Sub emulation, and cron scheduling. A local dashboard shows distributed tracing and architecture diagrams.
Integrated local development means faster iteration cycles and the same environment locally as in production.
Learn more about local development →Amplify covers data, auth, storage, and functions. For queues, topics, or a relational database model, you extend the backend with AWS CDK and wire up permissions and connection configuration yourself.
Encore provisions infrastructure from your code. Declare a database in your application code, and Encore creates RDS or Cloud SQL when you deploy. Same for Pub/Sub, cron jobs, and object storage.
import { SQLDatabase } from "encore.dev/storage/sqldb";
const db = new SQLDatabase("users", {
migrations: "./migrations",
});
// Encore provisions RDS/Cloud SQL automaticallyDatabases, Pub/Sub, Cron Jobs, Object Storage, and more. See all primitives →
Amplify relies on the logging and metrics of the underlying AWS services. Following one request across AppSync, Lambda, and DynamoDB means setting up tracing yourself.
Encore includes distributed tracing, metrics, and structured logging out of the box. Every request is traced across services automatically. No instrumentation code needed.
This works locally too. Run your app and get full tracing in the local development dashboard.
See observability docs →With Amplify, much of the backend lives in resource files and CDK code, separate from your business logic. AI agents like Cursor and Claude Code lack context about how these relate to your application code, leading to drift, hallucinations, and configs that are hard to review.
Encore defines infrastructure in your application code. AI agents see everything in one context: your APIs, databases, queues, and how they connect. This makes AI-generated code accurate and easy to review before you deploy it.
Because the infrastructure comes from the Encore defaults rather than hand-written config, you can let an AI agent build features and trust the result is provisioned correctly. Built-in guardrails, auto-generated docs, and observability keep what it produces maintainable as your system grows.
Learn about AI-assisted development →You can keep Amplify Hosting for your frontend and move backend logic to Encore services one piece at a time, in the same AWS account.
The PaaS migration guide covers how hosting and managed services map to Encore, moving data and platform services, and planning the migration. For a wider look at your options, read AWS Amplify alternatives.
Read the PaaS migration guide"Encore is our foundation for all new development. Since adopting it, we've seen a 3x increase in development speed and 90% shorter project lead times."
"Encore lets us go from idea to shipped product at least 3x faster and saves us hours of devops work every week."
"We've reduced time spent on DevOps by 95%, and we're now on track to save $60K annually in cloud costs."
"Encore is an unfair advantage. At Pave we've moved 2x faster than we did at Monzo."
"We're saving $200k+ annually compared to additional hiring. The ROI is outstanding, easily 10x."
"You define infrastructure in your code and it's automatically spun up for you. You can go from zero to a deployed service on GCP in an hour. I don't know how else to do it."
"Encore's inferred infrastructure has allowed us to move at unprecedented speed. Combined with database branching in Neon, we're able to spin ephemeral environments up and down with incredible ease. Stakeholders love preview app URLs."
Common questions about Encore vs AWS Amplify.
Both deploy to your own AWS account. Amplify Gen 2 is built around AppSync GraphQL, DynamoDB, Cognito, and Lambda functions defined in TypeScript resource files. Encore is an open source infrastructure SDK where you define services, APIs, Postgres databases, Pub/Sub, and cron jobs in your application code, and it provisions them in AWS or GCP.
Yes. Encore provisions infrastructure in your AWS or GCP account from the same application code. AWS Amplify deploys to AWS.
Amplify Gen 2 gives each developer a cloud sandbox, so local development talks to real AWS resources. Encore runs your whole backend locally with a single command, including local Postgres databases, Pub/Sub emulation, cron jobs, and tracing, without needing cloud resources.
Amplify Data is powered by AWS AppSync and Amazon DynamoDB. Encore SQL databases are PostgreSQL, provisioned as RDS on AWS or Cloud SQL on GCP, and run in Docker locally.
You can keep Amplify Hosting for your frontend and move backend logic to Encore services over time. Lambda functions become API endpoints, and Amplify Data models become SQL tables behind type-safe APIs.
Deploy to your own AWS or GCP account, with infrastructure provisioned automatically.