Serverpod 3, “Industrial” - Robust authentication and a new web server
Today, the Serverpod team is thrilled to pull back the curtain on Serverpod 3, code-named “Industrial”. This release isn’t just an update; it’s a massive leap forward for server-side Dart, cementing Serverpod as the definitive backend solution for Flutter teams. Since the last major release, the team has shipped over 80 new features. Serverpod 3 brings some of the most significant changes yet: A completely reworked web server and a brand-new authentication system.
We named this release “Industrial” because, with the enhanced security and modularity of the new authentication package and the underlying robustness of the new architecture, Serverpod is moving into the next stage of production readiness.
What’s Serverpod?
For those new to Serverpod, our mission is simple. We provide an open-source backend for Flutter teams that want to stay in Dart, from the user interface all the way through to the database.
With Serverpod, you get a Dart-first connection to your database, advanced caching, world-class logging, robust authentication, file uploads, real-time streaming, comprehensive health checks, and zero-configuration deployments. It’s all designed so a Flutter team can own the full stack without needing to become DevOps experts.
In this post, we are doing a deep dive into everything new in Serverpod 3, focusing on the new web server and authentication module, alongside powerful improvements to the database layer, data models, and the overall developer experience.
The engine room: A reworked web server
The first major component is the completely reworked web server, which is now built on top of Relic. Relic is our new low-level web server. It’s a significant evolution of the classic Dart web framework Shelf, but with massive improvements in its APIs, performance, and reliability. Relic injects a host of new features into Serverpod, including:
- Native support for middleware.
- Efficient serving of static files.
- Built-in cache busting.
This means that you can now reliably host more than just your backend on Serverpod. You can serve your Flutter web app, build landing pages, and create custom REST APIs and webhooks. This is a monumental step for the Dart ecosystem as Dart can now be used for everything. You can now share code and logic across all these environments.

The security vault: Brand-new authentication
Security and ease-of-use were the driving forces behind the brand-new authentication module. It was rebuilt from the ground up to be more flexible, more modular, and dramatically easier to implement.
- Architectural choice: Choose between JWT-based authentication or traditional server-side sessions based on architecture and security needs.
- Built-in providers: Out-of-the-box support for Email, Google, and Apple sign-in.
- Customization: Support for two-factor authentication and plugging in custom identity providers.
The AuthUser class
A new AuthUser class now provides a clean, unified representation of the authenticated user, giving direct access to their tokens, scopes, and associated identities. Need custom data? Just connect it to a custom model to extend its capabilities.
Decoupled UI Components
Beautiful, ready-to-use UI components have been introduced for sign-in flows. Crucially, these components are fully decoupled from the authentication engine. This allows you to adopt the default screens for speed or build a custom design while keeping the powerful, consistent logic. To power this system, new core packages like serverpod_auth_core and serverpod_auth_idp have been introduced. For existing users, the team is developing robust migration tools for legacy authentication setups, ensuring you can upgrade your Serverpod 2 application without losing any of your existing users.
Database: The data powerhouse
Serverpod’s ORM has gained serious capabilities since version 2, making it a true powerhouse for modern applications.
AI, RAG, and semantic search
Powerful vector database support was added, making it trivial to build apps utilizing Retrieval Augmented Generation (RAG), semantic search, and other cutting-edge AI solutions directly within a Serverpod application.
Security by default: UUIDs as keys
With full support for UUIDs as database IDs, you no longer have to expose incremental IDs to your client. This prevents ID guessing attacks if IDs are used in the API. To adopt this security measure, simply set the ID field’s type to UUID in the model definition.
Improved transactions
A typed interface is now provided for managing transaction isolation levels and savepoints, giving safer, more reliable database operations.
Partial updates
Improve efficiency and lower i/o costs with partial updates. This also allows for HOT updates, which avoid updating indexes and significantly boost the performance of write operations.
Datamodels: Clean, type-safe code
Major improvements have been made in how you can define and work with your data models in Serverpod 3.
Model inheritance and sealed classes
The models now support inheritance. You can define shared fields across multiple models in a clean, type-safe manner. This feature includes support for sealed classes, which is a massive win for streaming data. It gives a fully typed interface on the client side, guaranteeing that all possible data types and cases transmitted by the backend are handled.
Immutable models
Data models can now be declared immutable. While it’s a matter of preference, immutable models can help avoid hidden side effects, resulting in more reliable methods and easier testing.
Streaming, testing, and developer experience
Since version 2, Serverpod has introduced streaming endpoint methods, allowing the backend to return a Stream instead of a Future. This is perfect for chat apps, live dashboards, or games. Serverpod transparently handles the underlying WebSockets, routing, and connection life cycles.
Beyond that, the team has added:
- A comprehensive testing framework.
- Enhanced logging and diagnostics.
- Enhanced project templates and a more intuitive CLI.
We like to think that our focus is on managing all the hard, tricky parts of the backend, so that you can focus on the fun stuff.
Community updates
Serverpod is built by a dedicated full-time team, but we couldn’t have made it this far without our incredible community. We’d like to extend a huge thank you to everyone who has contributed code, suggested features, and reported bugs. Your efforts are the most rewarding part of our work and help us push the boundaries of Dart on the backend.
The team wants to personally highlight a few contributions that became key features in Serverpod 3:
- Ben Auer at Marqably: Added support for inheritance in models.
- Code Brothers: Contributed support for immutable models.
- Marcello Soares: Contributed both the new UUID feature and vector database support last spring. Marcello has now joined the Serverpod team full-time and has been a major force behind the new authentication package.
There are countless other smaller improvements and bug fixes, including safer enum serialization, deprecated API removals, improved testing, clearer error messages, and overall cleaner defaults. All the details can be found in the extensive changelog.
Speaking of community, the official Serverpod Discord server was recently opened. Join there to chat with the team, meet other Serverpod users, or get early access to upcoming features.
How Serverpod stacks up
When the first versions of Serverpod were released, the team was often asked why gRPC or OpenAPI wasn’t used. The answer was that the team didn’t want to be limited by the constraints of other frameworks; the goal was to make Serverpod the best Dart-first platform it could possibly be. Today, it’s clear that we have delivered on that promise.
Here is a quick comparison of how we stack up against gRPC and OpenAPI. The only area where we are lagging behind is in multi-platform support, something we intend to address in future versions of Serverpod.

Serverpod has truly come a long way since its initial release. It’s now production-ready and used by thousands of companies worldwide, from startups and app agencies to healthcare providers, banks, and government agencies. This is reflected in our rapid growth. Just one year ago, there were around 3,000 monthly downloads from pub.dev; today, there are over 16,000.

Hosting Simplified: Serverpod Cloud
But how do you host a Serverpod application? There is also exciting news in this area. Serverpod Cloud is currently in a private beta. It allows for zero-configuration deployments of your Serverpod server. We are onboarding new projects every single day. If you want to try out the early access plan, sign up for the waiting list on our webpage and give the team a ping on Discord. We’ll hook you up right away.
We expect to share more news about Serverpod Cloud very soon.
Join the Team
If the future of Dart on the backend feels exciting to you and you are an experienced Dart developer, now is the perfect time to join the Serverpod team. We are currently hiring for several positions. While local hires in Stockholm are preferred, exceptions are open for extraordinary candidates. Check the careers page for details.
Worldwide Flutter and Serverpod hackathon
Finally, we have one more surprise. Today, Serverpod 3 is not just launching. We are also launching a worldwide Flutter and Serverpod hackathon with over $20,000 worth of prizes. That’s $10,000 in cash prizes and $10,000 in Serverpod Cloud credits.
The theme of the hackathon is “Build your Flutter butler with Serverpod”. This is the chance to craft your very own Flutter Butler that serves, automates, and delights. It can be an AI helper, a productivity app, or a creative automation tool. You can find the full rules and all other information on our hackathon site. We cannot wait to see what you will build with Serverpod 3.
Get started with Serverpod 3
Whether you are building a new Flutter app and want to use Dart throughout your stack or if you have an existing Serverpod backend and want to take advantage of all our new features, Serverpod 3 is our best version yet. Give it a spin and let us know your thoughts and what you think we should focus on next.
Thank you again to everyone who has helped us along the way and who has built this amazing framework together with us. Until next time. Happy coding!