В прошлый раз обещал регулярно делиться про fullstack на Dart. Начнём с фундамента — Serverpod. Авторы называют его «the ultimate backend for Flutter», и на нём уже три года стоят все наши продакшн-проекты.
Сначала пара слов, что это за проект. Serverpod основал в 2021 Viktor Lidholt — бывший разработчик Flutter-команды в Google; в команде из Стокгольма есть и экс-тимлид Minecraft. Это не заброшенный пет-проект: ребята подняли инвестиции (посевной раунд €2.7M в начале 2025, суммарно около $7M). Свежий стабильный релиз — Serverpod 3, а прямо сейчас в tech preview катят Serverpod 4.
—
Теперь как это устроено. Главная идея одна: описываешь модель и метод один раз — а типизированный клиент, сериализацию и связку с базой Serverpod генерирует сам.
На пальцах:
1. Пишешь endpoint — обычный класс на Dart с методом, например
Future<String> hello(Session session, String name).2. Запускаешь
serverpod generate.3. На стороне Flutter вызываешь
client.example.hello('world') — как локальную типизированную функцию. Никакого http-клиента руками, никакого Map<String, dynamic>, никакой ручной сборки JSON.С моделями данных та же история: описал в одном месте → она живёт и на сервере, и на клиенте, и в базе. Поменял поле — ломается компиляция там, где контракт разъехался, а не прод в три часа ночи.
И это не голый RPC. Из коробки идёт то, что обычно собираешь руками неделями:
— ORM и миграции к PostgreSQL
— аутентификация
— кеш (in-memory и Redis)
— realtime через streaming и websockets
— планировщик задач и загрузка файлов
—
Теперь честно — наш опыт за три года.
Плюсы: стабильность и документация. За продакшн можно не держаться зубами, а вопросы почти всегда закрываются доками — для инфраструктурного инструмента это дорогого стоит.
Минусы: готовые модули аутентификации и чатов оказались негибкими и нерасширяемыми. Под реальные требования продукта мы упёрлись в их рамки и в итоге отказались — сделали своё. Из коробки удобно ровно до момента, пока тебе хватает того, как это задумали авторы.
—
В следующем посте ветки разберу Serverpod 4 из tech preview: там завозят агентный движок — hot-reload всего стека и связка с AI-агентом через MCP. Отдельный разговор. 🙂
А вы что держите под бэкендом в мобильных проектах — свой API на Node/Python или что-то из Dart-экосистемы?