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)...

PAIN 😫

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

Compatibility

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
Freezedβœ…Supported!