NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1719 most downloaded on pub.dev
Database implementations for Serverpod.
Last release today
06 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
6 months old
26 releases · first in 2026
One column per month.
feat: Adds support for custom target entrypoints in runner commands. (@mathis6787)
copyWith constructors more type-safe.Also includes all fixes from 4.0.3 and 4.0.4.
feat: Adds serverpod runner command with start, attach, status and stop subcommands.
serverpod runner command with start, attach, status and stop subcommands.serverpod start and serverpod mcp-server to attach to an already running server.Model.db.watch for reactive ORM operations on the client.serverpod start.fix: Adds serverpod clean command to delete stale cached server kernels.
serverpod clean command to delete stale cached server kernels.SetNull and SetDefault relation actions against the foreign key column type.CLAUDE.md in favor of AGENTS.md.fix: Prints the reason why serverpod start stopped after the TUI ends with an error.
serverpod start stopped after the TUI ends with an error.futureCall.executionEnabled.futureCall.enabled flag to completely disable scheduling future calls.fix: Adds missing callbacks to ServerpodCloudEmailIdpConfig constructor.
ServerpodCloudEmailIdpConfig constructor.ServerpodCloudStorage custom storageIds.postgres library to improve performance and security.fix: Fixes github/workflows/tests.yml tests on the template project. (@dario-valles)
github/workflows/tests.yml tests on the template project. (@dario-valles)initialize() when the auth validation times out.maxFileSize.fix: BREAKING. Removes the deprecated authenticationKeyManager client parameter.
Serverpod 4 is a major overhaul of the development experience. It introduces a new development experience with an interactive command that boots your entire stack, makes Serverpod projects agent-ready out of the box, and lays the foundation for client-side databases with the new SQLite dialect.
Serverpod projects are now set up for AI-assisted development from the moment they are created. The CLI ships with an MCP server, skills and agent instructions installed for the IDEs/Agents you select. The MCP server exposes all tools from serverpod start to agents for an immersive agentic development experience. Try out the reworked serverpod create and the new serverpod quickstart commands.
serverpod start commandServerpod 4 introduces serverpod start, a single command that runs everything your project needs and keeps it in sync while you work. No more juggling docker compose, serverpod generate --watch, the server and the Flutter app in separate terminals.
Key features include:
Running a database locally no longer requires any setup. Serverpod now ships custom PostgreSQL multi-platform binaries built with pgvector and postgis support that can be run in embedded mode when running the server or started standalone with serverpod database start. Projects that do not configure the dataPath parameter on the database config get the docker compose started automatically by serverpod start instead.
The same models, ORM and migrations you already know can now generate a client-side SQLite database when using the new database keyword. Migrations for the client are separate and generated as Dart code for easy integration in Flutter apps without having to deal with assets.
To allow easily building offline-first Flutter apps, the experimental database: sync option will configure the models for synchronization with the server using the serverpod_offline_sync module. No other configuration is needed beyond annotating the models and adding the dependencies to the client and server. Check the serverpod_offline_sync README for more details on how to use it.
ServerpodClientException hierarchy to introduce a proper exception for network errors. Previous HTTP-related exceptions now extend the sealed ServerpodClientHttpException class.*withOptions methods on the CloudStorage interface.RateLimiter utility on the serverpod_auth_idp module..spy.yaml extension for model files.authenticationKeyManager client parameter.orderDescending parameter on ORM methods.ignoreEndpoint annotation from the CLI.SerializationManagerServer class.--mini option from the serverpod create command.database: sync models.table keyword on shared package models configured with database: all.upsert and upsertRow methods on the ORM. (@sedobrengocce)noReturn parameter to all ORM methods to allow skipping the returning the data.orderBy and orderByList in delete and deleteWhere methods. (@henycave)asc() / desc() convenience methods on orderable columns.databaseInterceptor parameter to Serverpod for intercepting database operations.dynamic fields on models, database and endpoints.jsonb columns and GIN indexes, with lossless json <-> jsonb column type migration. (@developerjamiu)Iterable and operator[] on vector types.serial on regular int columns on PostgreSQL.nulls_distinct key on unique indexes on PostgreSQL.unique keyword and unique(per=...) variant on models for simplified creation of unique indexes.column name on models, with proper migration support.fk flag for declaring the owner of the foreign key on a relation.field= on relations that require the explicit foreign key.deferred and deferrable flags on relations to postpone constraints evaluation inside transactions.tail keyword on models to configure the order of inherited fields.extends and sealed properties on Exception models.serverpod into the new serverpod_database package.ORDER BY in nested includeList queries with LIMIT.Order objects in favor of the new asc() / desc() methods.enableDatabaseAccess config.serverpod_cloud_storage package for native Serverpod Cloud provider support.withSession method on Serverpod for manual session usage with automatic teardown. (@nicowalter256)global cache fallback to local in development/testing.httpOnly cookie authentication for web clients.WidgetRoute.build method to return WebWidget? and easily throw a 404.httpClientOverride on the generated Client for HTTP client override.serverDirectory parameter on Serverpod to avoid depending on Directory.current.MessageCentral when streams are cancelled before session close.StateError instead of Exception for not configured features. (@realmeylisdev)private, no-cache for all files.Serverpod.shutdown not releasing ProcessSignal watchers after in-process shutdown/start calls.ServerpodCloudEmailIdpConfig as default email IDP using Serverpod Cloud.FlutterWebAuth2RedirectRoute for OAuth2 PKCE web sign-in flow.onAfterAccountCreated callbacks to all IDPs for custom post-account creation logic. (@kamil-matula)HmacSha256 JWT algorithm on the auth core package.kid to JWT header for ES512 tokens.UserProfile creation during first login if an exception occurs.onRefreshTokenCreated to JwtConfigFromPasswords constructor.SignInWidget and EmailSignInWidget not being transparent.Material wrapper to the SignInWidget for correct rendering when not using a Material app.TermsAndPrivacyText sign-in widget respond to app theming.serverpod create command to customize the created project.scloud through the new serverpod cloud command.ghcr.io/serverpod/postgres:16.dart test using withServerpod.Serverpod class for cleaner initialization.serverpod command.--empty flag to the create-migration command.serverpod upgrade, and prevents accidental downgrades.flutter_build during create command.serverpod_cli on CI.dart format clean respecting the project options.generate for the first time from a clean state.testObjectToJson return type from dynamic to Map<String, dynamic>. (@realmeylisdev)detach and detachRow for named list relations without order dependence.--watch flag by 15x and the regular generate command by 20%.generate command to avoid redundant work. Use --force to bypass.feat: Allows Ctrl/Cmd+Click to navigate to model definitions on VS Code IDEs.
scloud when invoked from serverpod cloud.serverpod_cloud_storage package for native Serverpod Cloud provider support.database: sync models.serverpod upgrade, and prevents accidental downgrades.serverpod create without TUI in default mode when stdin/stdout is not a TTY.Serverpod.shutdown not releasing ProcessSignal watchers after in-process shutdown/start calls.client.dart in template to avoid circular dependencies.fix: BREAKING. Removes the deprecated authenticationKeyManager client parameter.
Release candidate for Serverpod 4.
Serverpod 4 is a major overhaul of the development experience. It introduces a new development experience with an interactive command that boots your entire stack, makes Serverpod projects agent-ready out of the box, and lays the foundation for client-side databases with the new SQLite dialect.
Serverpod projects are now set up for AI-assisted development from the moment they are created. The CLI ships with an MCP server, skills and agent instructions installed for the IDEs/Agents you select. The MCP server exposes all tools from serverpod start to agents for an immersive agentic development experience. Try out the reworked serverpod create and the new serverpod quickstart commands.
serverpod start commandServerpod 4 introduces serverpod start, a single command that runs everything your project needs and keeps it in sync while you work. No more juggling docker compose, serverpod generate --watch, the server and the Flutter app in separate terminals.
Key features include:
Running a database locally no longer requires any setup. Serverpod now ships custom PostgreSQL multi-platform binaries built with pgvector and postgis support that can be run in embedded mode when running the server or started standalone with serverpod database start. Projects that do not configure the dataPath parameter on the database config get the docker compose started automatically by serverpod start instead.
The same models, ORM and migrations you already know can now generate a client-side SQLite database when using the new database keyword. Migrations for the client are separate and generated as Dart code for easy integration in Flutter apps without having to deal with assets.
To allow easily building offline-first Flutter apps, the experimental database: sync option will configure the models for synchronization with the server using the serverpod_offline_sync module. No other configuration is needed beyond annotating the models and adding the dependencies to the client and server. Check the serverpod_offline_sync README for more details on how to use it.
ServerpodClientException hierarchy to introduce a proper exception for network errors. Previous HTTP-related exceptions now extend the sealed ServerpodClientHttpException class.*withOptions methods on the CloudStorage interface..spy.yaml extension for model files.authenticationKeyManager client parameter.orderDescending parameter on ORM methods.ignoreEndpoint annotation from the CLI.SerializationManagerServer class.--mini option from the serverpod create command.table keyword on shared package models configured with database: all.upsert and upsertRow methods on the ORM. (@sedobrengocce)noReturn parameter to all ORM methods to allow skipping the returning the data.orderBy and orderByList in delete and deleteWhere methods. (@henycave)asc() / desc() convenience methods on orderable columns.databaseInterceptor parameter to Serverpod for intercepting database operations.dynamic fields on models, database and endpoints.jsonb columns and GIN indexes, with lossless json <-> jsonb column type migration. (@developerjamiu)Iterable and operator[] on vector types.serial on regular int columns on PostgreSQL.nulls_distinct key on unique indexes on PostgreSQL.unique keyword and unique(per=...) variant on models for simplified creation of unique indexes.column name on models, with proper migration support.fk flag for declaring the owner of the foreign key on a relation.field= on relations that require the explicit foreign key.deferred and deferrable flags on relations to postpone constraints evaluation inside transactions.tail keyword on models to configure the order of inherited fields.extends and sealed properties on Exception models.serverpod into the new serverpod_database package.ORDER BY in nested includeList queries with LIMIT.Order objects in favor of the new asc() / desc() methods.enableDatabaseAccess config.withSession method on Serverpod for manual session usage with automatic teardown. (@nicowalter256)global cache fallback to local in development/testing.httpOnly cookie authentication for web clients.WidgetRoute.build method to return WebWidget? and easily throw a 404.httpClientOverride on the generated Client for HTTP client override.serverDirectory parameter on Serverpod to avoid depending on Directory.current.MessageCentral when streams are cancelled before session close.StateError instead of Exception for not configured features. (@realmeylisdev)private, no-cache for all files.ServerpodCloudEmailIdpConfig as default email IDP using Serverpod Cloud.FlutterWebAuth2RedirectRoute for OAuth2 PKCE web sign-in flow.onAfterAccountCreated callbacks to all IDPs for custom post-account creation logic. (@kamil-matula)HmacSha256 JWT algorithm on the auth core package.kid to JWT header for ES512 tokens.UserProfile creation during first login if an exception occurs.onRefreshTokenCreated to JwtConfigFromPasswords constructor.SignInWidget and EmailSignInWidget not being transparent.Material wrapper to the SignInWidget for correct rendering when not using a Material app.TermsAndPrivacyText sign-in widget respond to app theming.serverpod create command to customize the created project.scloud through the new serverpod cloud command.ghcr.io/serverpod/postgres:16.dart test using withServerpod.Serverpod class for cleaner initialization.serverpod command.--empty flag to the create-migration command.flutter_build during create command.serverpod_cli on CI.dart format clean respecting the project options.generate for the first time from a clean state.testObjectToJson return type from dynamic to Map<String, dynamic>. (@realmeylisdev)detach and detachRow for named list relations without order dependence.--watch flag by 15x and the regular generate command by 20%.generate command to avoid redundant work. Use --force to bypass.feat: Allows overriding the default cache header for StaticRoute and SpaRoute from env vars.
StaticRoute and SpaRoute from env vars.httpOnly cookie authentication for web clients.field= on relations that require the explicit foreign key.deferred and deferrable flags on relations to postpone constraints evaluation inside transactions.start TUI app URLs clickable.start TUI app status on spontaneous exit.ServerpodClientException hierarchy to introduce a proper exception for network errors. Previous HTTP-related exceptions now extend the sealed ServerpodClientHttpException class.Serverpod class for cleaner initialization.fix: Improves the serverpod start TUI borders and dividers with T-junction characters.
serverpod start TUI borders and dividers with T-junction characters.fix: BREAKING. Removes the deprecated authenticationKeyManager client parameter.
serverpod start.ghcr.io/serverpod/postgres:16.serial on regular int columns on PostgreSQL.nulls_distinct key on unique indexes on PostgreSQL.FlutterRoute from env vars.authenticationKeyManager client parameter.--no-tui.dart format clean respecting the project options.TermsAndPrivacyText sign-in widget respond to app theming.detach and detachRow for named list relations without order dependence.fix: BREAKING. Removes deprecated orderDescending parameter on ORM methods.
serverpod create command to customize the created project.dart test using withServerpod.pgvector and postgis support.serverpod start if using PostgreSQL without dataPath.serverpod start TUI.serverpod start TUI.serverpod database start.table keyword with database: all on shared package models.WidgetRoute.build method to return WebWidget? and easily throw a 404.serverpod start TUI.serverpod start command.ignoreEndpoint annotation from the CLI.SerializationManagerServer class.serverpod start TUI.MessageCentral when streams are cancelled before session close.serverpod start TUI Flutter app status line.generate --watch mode feedback loops when no changes existed.serverpod start.SignInWidget and EmailSignInWidget not being transparentdatabaseInterceptor parameter to withServerpod.serverpod start TUI as Migrate action.serverpod create TUI look and feel.--mini option from serverpod create command.feat: Shows inline "Copied" confirmation in serverpod start TUI alerts.
serverpod start TUI alerts.serverpod start TUI.displayName for Flutter app configs for a pretty tab title.upsert with updateWhere throwing on SQLite when conflicts are filtered out.DeepCollectionEquality for shared models. Backported to 3.4.11.feat: Adds ServerpodCloudEmailIdpConfig as default email IDP using Serverpod Cloud.
ServerpodCloudEmailIdpConfig as default email IDP using Serverpod Cloud.web directory for projects created with only the Flutter app.feat: Adds PostGIS geography types support with GiST and SP-GiST indexes. (@charlesarchibong)
serverpod start when assets and fonts change.serverpod start.serverpod start no longer accepts --flutter-* flags.spawn_flutter_app MCP tool for agents to spawn configured Flutter apps.tail keyword on models to configure the order of inherited fields.withSession method on Serverpod for manual session usage with automatic teardown. (@nicowalter256)noReturn parameter to all ORM methods to allow skipping the returning the data.unique(per=...) shorthand for composite unique indexes.databaseInterceptor parameter to Serverpod for intercepting database operations.Iterable and operator[] on vector types.serverpod start TUI.extends and sealed properties on Exception models.serverpod start from closing when the project fails to build.UserProfile creation during first login if an exception occur.StateError instead of Exception for not configured features. (@realmeylisdev)upsert queries for SQLite.clock transitive import on generated code.id as conflict target on upsert and upsertRow.testObjectToJson return type from dynamic to Map<String, dynamic>. (@realmeylisdev)ORDER BY in nested includeList queries with LIMIT.serverpod start TUI experience.serverpod create TUI experience with a paginated experience.feat: Hides the "Hot restart" action in the start TUI when on watch mode (default).
start TUI when on watch mode (default).quickstart command for a complete experience.Ctrl+R shortcut to restart the Flutter app from the start TUI.kid to JWT header for ES512 tokens.scloud through the new cloud Serverpod CLI command.web-server that launches the browser.L key to clear logs on serverpod start.Ctrl+C copy when selection is active or exit when pressed twice on any TUI command.serverDirectory parameter on Serverpod to avoid depending on Directory.current.start TUI hidden.runtimeParametersBuilder instead of throwing UnsupportedError.Material wrapper to the SignInWidget for correct rendering when not using a Material app.start TUI.start TUI by default. Accessed with ` or ..Dockerfile after workspaces and Dart 3.10 upgrade. Backported to 3.4.9.--empty flag to the create-migration command.serverpod start crashes persisted to the terminal on exit.serverpod command.dynamic classes when importing both client and server.Shift+Tab action to navigate backwards on start TUI tabs.generate command to avoid redundant work. Use --force to bypass.AGENTS.md file to the project template to improve agents performance with Serverpod.flutter_build during create command.mcp command to mcp-server for parity with the Dart MCP.feat: Allows attaching a Flutter app on demand with a running serverpod start.
serverpod start.serverpod start TUI on wide terminals.tail_flutter_logs MCP command for agents to read the Flutter app logs.get_flutter_app_dtd MCP tool.serverpod start.apply_migrations from the TUI and MCP.dynamic fields of module models.Q on Windows not canceling the new TUI..cursor instead of .agents directory.tail_logs MCP command to tail_server_logs for clarity.fix: Fixes dynamic fields being serialized as an encoded String instead of the Map (breaking change since last beta version).
serverpod start with integrated hot reload/restart.dataPath parameter on database config to run PostgreSQL in embedded mode.hot_restart and create_repair_migration commands on both TUI and MCP.global cache fallback to local in development/testing.serverpod create.FlutterWebAuth2RedirectRoute for OAuth2 PKCE web sign-in flow.httpClientOverride on the generated Client for HTTP client override.serverpod start MCP tied to the current project server.copyWith method on dynamic fields overriding unchanged fields.dynamic fields being serialized as an encoded String instead of the Map (breaking change since last beta version).SQLite by PostgreSQL as the default database on quickstart command.serverpod start experience.feat: Allows replacing the Google Sign-In for web with OAuth2 PKCE flow for a better UX.
upsert and upsertRow methods on the ORM. (@sedobrengocce)runMigrations parameter on the client-side createSession.private, no-cache for all files.feat: Makes the serverpod create command interactive for resources selection.
serverpod create command interactive for resources selection.serverpod create and serverpod quickstart commands.serverpod start command when launched by the IDE.serverpod start._Undefined sentinel on generated code for dynamic fieldsserverpod start from breaking the FES.serverpod commands.--no-fes flag from the serverpod start command.serverpod commands.refactor: Moves the column rename from TableMigration to ColumnMigration (breaking change since last beta version).
database keyword on models that generates a client-side database.dynamic fields on models, database and endpoints.jsonb columns and GIN indexes, with lossless json <-> jsonb column type migration. (@developerjamiu)serverpod start command.serverpod quickstart command to the serverpod_cli.serverpod start works with build hook dependencies.find methods with includes.TableMigration to ColumnMigration (breaking change since last beta version).serverpod_cli on CI.fix: Deprecates the manual creation of Order objects in favor of the new asc() / desc() methods.
nocterm based TUI to serverpod start command.column name on models, with proper migration support.unique keyword on models for simplified creation of unique indexes.serverpod create . call in the current directory.orderBy and orderByList in delete and deleteWhere methods (@henycave).HmacSha256 JWT algorithm on the auth core package.asc() / desc() convenience methods on orderable columns.Order objects in favor of the new asc() / desc() methods.onRefreshTokenCreated to JwtConfigFromPasswords constructor..gitignore to the top-level directory on new projects to ignore .dart_tool.feat(EXPERIMENTAL): Adds MCP server to the serverpod CLI with apply_migrations tool.
apply_migrations tool.onAfterAccountCreated callbacks to all IDPs for custom post-account creation logic. (@kamil-matula)generated folder).fix: Fixes time spinners not updating correctly when running the generate or start commands.
generate or start commands.start --watch command..dart files when running commands in watch mode.feat: Adds legacy client support for Email auth migrations.
serverpod start command for running the server, docker and app with --watch flag for hot reload/restart support.serverpod into the new serverpod_database package to allow supporting client-side databases in the future.--watch flag by x15 and regular generate command by 20%.Your coding agent can read these notes before it upgrades. Set up the MCP server →