Published 2025-09-22
Proof-of-concept Darwin 4.0 based on serverpod.


Serverpod client that exposes all server-side api calls.
Keeps track of and manages the signed-in state of the user.
All incoming notifications, messages and events (through the websocket connection) are relayed onto the local eventbus to be consumed by your application widgets (see ServerpodWidget).
Can also be used for inter-widget communication.
Access client, sessionManager and eventBus:
if (context.read<SessionManager>().isSignedIn) {
final String result = await context.read<Client>().example.hello('ruud');
context.read<EventBus>().fire(result);
}
The first widget after runApp in your main function that wraps a MaterialApp (MyApp).
Handles session status and receives/transmits incoming notifications, messages and events from the websocket connection onto the EventBus.
Your route pages must be wrapped in a ServerpodRouterWidget, or must contain a ServerpodRouterWidget as a child widget.
This widget routes you back to the login page if the server connection is terminated.
Must be a child below the MaterialApp node (MyApp), otherwise routing will fail.
For debugging you can define credentials in the file pod_darwin/pod_darwin.env with the following (or your own) contents:
{
"DEBUG_USER_NAME": "ruud",
"DEBUG_USER_EMAIL": "ruudvring@huighaverlag.nl",
"DEBUG_USER_PASSWORD": "bonzoklonzo"
}
https://ente.io/blog/tech/inherited-widgets/ https://docs.flutter.dev/development/data-and-backend/state-mgmt/options https://www.youtube.com/watch?v=LFcGPS6cGrY https://stackoverflow.com/questions/78278824/flutter-web-only-loads-app-update-after-second-reload https://www.perplexity.ai/search/using-google-fonts-is-a-privac-gQQ95laXROeOGrpMfkjwPw
google_fonts dependency due to GDPR concerns.spider.yaml with flutter_gen for asset constants.FilesStore does not react anymore for files in folders that were not previously requested by a user action. This prevents handling of files that were never requested and thus causing update storms.flutter_markdown (discontinued).flutter_markdown_plus.FileIo now uses file_saver package.HHPasswordInput reveal icon._client was not initialized.DataTable to DataGrid from pkg_data_grid (faster).get_it dependency.serverpod: 2.0.0.http dependency to dio.OK Ready anymore.tp_state_machine dependency.state_machine dependency.flutter_typeahead.ExpansionPanelList in imposition panels.imageId is now dynamic everywhere.async constructs.