Flutter InstantDB
Real-time, offline-first database for Flutter with reactive bindings. Build collaborative apps in minutes.
Features
Changes sync instantly across all connected clients with differential sync for reliable data consistency and conflict resolution.
Real-time SynchronizationLocal SQLite storage with automatic sync when online. Your app works seamlessly offline and syncs when connectivity returns.
Offline-first ArchitectureWidgets automatically update when data changes using Signals. No manual state management required.
Reactive UI UpdatesInstaQL query language with schema validation ensures type safety and prevents runtime errors.
Type-safe QueriesUser authentication and session management built-in, with support for anonymous users and authenticated flows.
Built-in AuthenticationReal-time presence system with cursors, typing indicators, reactions, and avatars for collaborative applications.
Collaboration FeaturesQuick Start
// Initialize InstantDB
final db = await InstantDB.init(
appId: 'your-app-id',
config: const InstantConfig(syncEnabled: true),
);
// Create reactive UI
InstantBuilderTyped<List<Todo>>(
query: {'todos': {}},
transformer: (data) => (data['todos'] as List).cast<Todo>(),
builder: (context, todos) {
return ListView.builder(
itemCount: todos.length,
itemBuilder: (context, index) => TodoTile(todo: todos[index]),
);
},
)
// Perform mutations
await db.transact([
...db.create('todos', {
'id': db.id(),
'text': 'Learn Flutter InstantDB',
'completed': false,
}),
]);