Serverpod vs AWS Amplify

Serverpod is a full-stack Dart alternative to AWS Amplify. It replaces a TypeScript-defined stack of AWS services with a single self-hosted backend using PostgreSQL.

Get Started

Serverpod vs AWS Amplify at a glance

Serverpod and Amplify Gen 2, the current TypeScript-first generation, both give your Flutter app a backend. The difference is in shape. Amplify assembles managed AWS services, and Serverpod is one deployable server you own.

Capability Serverpod AWS Amplify (Gen 2)
Language ✓ Dart on the server and the client ✗ Backend defined in TypeScript
Type safety ✓ End-to-end, checked at compile time ✓ Generated Dart models from the schema
Database ✓ PostgreSQL with a type-safe ORM ✓ DynamoDB, or Postgres via AppSync
GraphQL ✗ Not supported, RPC and REST ✓ AppSync GraphQL
Authentication ✓ Email, social sign-in, and passkeys ✓ Amazon Cognito user pools
Real-time ✓ Typed WebSocket streams ✓ AppSync GraphQL subscriptions
Background work ✓ Future calls and cron tasks ✓ Lambda functions on schedules
Self-hosting ✓ Docker anywhere, including AWS ✗ Not supported, AWS services only
Open source ✓ BSD-3 packages, SSPL server ✗ Apache-2.0 libraries, closed services
Pricing model Free to self-host, flat Cloud tiers Sum of per-service AWS meters

What is AWS Amplify?

AWS Amplify is Amazon’s app platform. It wires managed services behind client libraries and hosting: Cognito for auth, AppSync for GraphQL APIs, DynamoDB for data, and Lambda for functions. Gen 2 defines the backend in TypeScript. It suits teams that are already invested in AWS and want its service catalog to be behind a single workflow.

What is Serverpod?

Serverpod is an open-source, full-stack Dart backend framework and an AWS Amplify alternative for Flutter teams. You write endpoint methods in Dart, store data in PostgreSQL, and ship one server that runs on any cloud, including AWS.

How they compare

The real decision is whether to use one server or a service catalog. A Serverpod backend is a single Dart application that you run and debug as a single process. An Amplify backend spans several AWS services, each with its own console, limits, and meter.

A backend framework, not a service catalog

When something breaks in Serverpod, you read one log from one server. In Amplify, a request can cross Cognito, AppSync, a Lambda resolver, and DynamoDB before it returns, and tracing it means tracing the seams between services. Fewer moving parts is the core of what Serverpod offers here.

Full-stack Dart or a TypeScript-defined backend

With Serverpod, your entire application is Dart, from the server logic to the Flutter app itself. AWS Amplify requires TypeScript for the backend, even when the app is Flutter. Your team sticks to the language it already knows for the whole stack.

A custom query in Amplify has three pieces: the schema entry, a function handler for the logic, and a hand-built GraphQL request in the app.

// amplify/data/resource.ts
recentOrders: a
  .query()
  .returns(a.ref('Order').array())
  .handler(a.handler.function(recentOrders)),
final request = GraphQLRequest<String>(
  document: 'query { recentOrders { id total createdAt } }',
);

final response = await Amplify.API.query(request: request).response;

The same feature in Serverpod is one endpoint method, and the route, serialization, and typed client are generated.

class OrderEndpoint extends Endpoint {
  Future<List<Order>> recentOrders(Session session) async {
    return Order.db.find(
      session,
      orderBy: (t) => t.created,
      orderDescending: true,
      limit: 20,
    );
  }
}

Your Flutter app calls it as a method: final orders = await client.order.recentOrders();

SQL database or DynamoDB

Amplify Data is backed by DynamoDB by default, a key-value store that scales well and models relations through GraphQL. Gen 2 can also connect to an existing PostgreSQL or MySQL database, exposed through AppSync and configured in TypeScript. Serverpod is PostgreSQL-first: typed relational queries, joins through include, and migrations owned by your models.

Portability and self-hosting

Serverpod deploys as a Docker container on any cloud, including AWS itself, and your data is plain PostgreSQL. Cognito, AppSync, and DynamoDB are managed AWS services with no self-hosted form, so an Amplify backend lives on AWS. Moving off later means replacing services, not just moving a container.

Pricing across services

An Amplify backend bills service by service: Cognito per monthly active user, AppSync per million operations, DynamoDB per read and write unit, and Lambda per invocation. Each meter is small, and together they are hard to predict. Serverpod is a single server you can self-host. Serverpod Cloud, starting at $19 per month, gives you a fully managed service. Current AWS rates are on the Amplify pricing page and its per-service pages.

Migrating from AWS Amplify

Serverpod can run on AWS alongside your Amplify stack, so the migration is incremental. Move data models into PostgreSQL and endpoints, and swap generated GraphQL calls for the generated Dart client. The hard part is authentication, since moving users off Cognito is a real project. Plan that step last, and keep both running until it is done.

Stay on AWS if you want

Running Serverpod on ECS or EC2 keeps your infrastructure, IAM, and billing inside AWS while the backend itself becomes portable Dart.

Everything you get with Serverpod

Type-safe APIs with a generated client
PostgreSQL ORM with migrations
Authentication with email, social sign-in, and passkeys
Typed streams over WebSockets
Future calls and recurring cron tasks
File uploads to S3, GCP, and R2
Redis and in-memory caching
Testing framework with a real server

Why teams choose Serverpod

Full-stack type safety. Your API is Dart on the server and the client, and every call is checked at compile time.
Own your data. Everything lives in plain PostgreSQL in your own infrastructure, with no vendor lock-in.
Zero-configuration deployments. Ship to Serverpod Cloud without touching a config file, or self-host anywhere.

Frequently asked questions

Is Serverpod an AWS Amplify alternative?

Yes. Serverpod is a full-stack Dart alternative: a single open-source server with PostgreSQL and a generated client, rather than a stack of managed AWS services defined in TypeScript.

Can I migrate from Amplify to Serverpod?

Yes, incrementally. Run Serverpod on AWS beside your Amplify stack and move features over. Plan the move off Cognito as its own step, since authentication is the hardest part.

Can Serverpod run on AWS?

Yes. Serverpod deploys as a Docker container, so ECS, EC2, or any container service works, with your PostgreSQL on RDS if you like.

Does this comparison cover Amplify Gen 1 or Gen 2?

Gen 2, the current TypeScript-first generation. AWS has placed Gen 1 in maintenance mode, with an announced end of life in 2027, and recommends Gen 2 for new apps. The Amplify Flutter library’s v1 reached its end of support in April 2025.

Stay up-to-date

Our mailing list keeps you up-to-date with new Serverpod releases and features. You will get an email about once a month or when something big is happening. We promise to keep it relevant and we have a strict no-spam policy.

© 2026 Serverpod AB
Built with Serverpod - Hosted on Serverpod Cloud