Serverpod for Agencies

Agencies build for clients and then hand the work over. Serverpod puts every project on one stack that the client’s own team runs after you leave.

Get Started

You pick the stack, the client lives with it

The stack you pick stays with the client for years after you leave. If its vendor raises prices or shuts down, the client remembers who chose it.

Serverpod is open source, and the client keeps the code and the Postgres database. No vendor can charge them for it or take it away.

The same layout on every client project

Your developers move between clients. A custom backend costs them days of reading before they can ship.

Every Serverpod project has the same three packages, the same ORM, and the same commands. serverpod start runs the server, the database, and the app.

New developers learn the product, not the layout. That time stops coming out of your quote.

The client’s team can run it without you

The client’s developers did not write any of it. They open the project for the first time after you leave.

Say the project is a venue guide. serverpod create venue_guide produces this.

venue_guide/
  venue_guide_server/     endpoints, models, and migrations
  venue_guide_client/     generated from the endpoints, never edited by hand
  venue_guide_flutter/    the app

Every project you create has this layout. Serverpod also writes GitHub Actions workflows for analysis, formatting, and tests.

You define data models in .spy.yaml files in the server package. Here is the one for a venue.

class: Venue
table: venue
fields:
  name: String
  openedAt: DateTime
  acceptsWalkIns: bool

Serverpod turns that model into a venue table and a Venue class. Press M in the serverpod start terminal to create the migration, and Serverpod applies it.

// on the server
class VenueEndpoint extends Endpoint {
  Future<List<Venue>> list(Session session) =>
      Venue.db.find(session);
}
// in the Flutter app
var venues = await client.venue.list();

Serverpod generates that call from the endpoint, so the contract lives in one place. The client’s team keeps one line in the app, and no API document to keep current.

Where it runs, and what it costs

Serverpod Cloud is the maintenance-free path. There is no deployment configuration to write, no server to patch, and no database to tend.

That keeps upkeep small for whoever holds the project next, your team on a retainer or the client’s own developers.

Some clients rule that out. They require their data in one country, or they have a cloud account their security team already approves. Those projects can be self-hosted instead. Serverpod ships as a container, so it runs on the client’s own server and Postgres instance.

Everything included

Authentication with providers such as Google, Apple, Microsoft, GitHub, email, and passkeys
File uploads to the client’s own S3, Google Cloud Storage, R2, or any S3-compatible bucket
Recurring jobs that run inside the server you already deploy
Caching with Redis when the client’s traffic needs it
Real-time streams over the same type-safe API as the rest of the app
A log viewer for whoever operates the server after handover
Endpoint tests that ship with the repository

Why Serverpod

A developer is useful on day one. Every client project has the same packages, the same ORM, and the same commands.
Open source. The client owns the code and the database, so nobody can withdraw the stack you recommended or charge them for it.
Nothing to keep with you. After handover the client’s team deploys and extends the project without an account or a retainer.

Frequently asked questions

Can we use Serverpod on paid client work?

Yes. The framework is BSD-3-licensed, with no per-seat or per-project fee. No Serverpod licence reaches the client’s invoice.

Can we self-host on the client’s infrastructure?

Yes. Serverpod needs a Postgres instance and somewhere to run a container. The client’s own cloud account qualifies, and Serverpod Cloud is one option rather than a requirement.

What does the client pay to run it after handover?

Self-hosted, they pay their own host for a server and a Postgres instance. On Serverpod Cloud, they pay a plan that starts at five dollars a month.

What happens to the client’s data if they leave Serverpod Cloud?

It stays in Postgres. They export it with the tools they would use on any Postgres database. The container runs wherever they choose.

Which Serverpod version should we start a project on?

Serverpod 4.0 or later. serverpod start and the current migration tooling both landed in 4.0.

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