Persistent reactive models in Flutter. With zero boilerplate.

Flutter Data is an offline-first data framework that gives you a configurable REST client and powerful model relationships.

Apps using Flutter Data

Features πŸš€

Repositories for all models
Built for offline-first
  • Hive-based local storage at its core
  • Failure handling & retry API
Intuitive APIs, effortless setup
  • Truly configurable and composable via Dart mixins and codegen
  • Built-in Riverpod providers for all models
Exceptional relationship support
  • Automatically synchronized, fully traversable relationship graph
  • Reactive relationships

Working on a Flutter app that talks to an API server?

You want to fetch data from a REST API, serialize it, store it for offline use and hook it up with your state management solution – all that for 20+ interconnected models in your app.

Trying to make this work with http/Chopper/Firebase, json_serializable, ad-hoc caching, Riverpod wiring up, custom loading/error states (not to mention sync’ing with local storage, Hive or SQLite)...


But what if you could get it all working smoothly with minimal effort?


Fully compatible with the tools we know and love:

Flutterβœ…And pure Dart, too.
Flutter Webβœ…Supported!
json_serializableβœ…Fully supported (but not required)
Riverpodβœ…Supported & automatically wired up
Providerβœ…Supported with minimal extra code
get_itβœ…Supported with minimal extra code
Classic JSON REST APIβœ…Built-in support!
JSON:APIβœ…Supported via external adapter