bloomBUILD•SHIP•BLOOM
.md
Turnkey Backends

Backend Adapters

Bloom connects seamlessly with your favorite backend providers. Pre-built adapters translate authentication sessions and live database streams directly into reactive Bloom signals.

Supabase Adapter

Connect Supabase Auth to BloomAuthBase to power route guards and profile subscriptions:

lib/adapters/supabase_adapter.dart
dart
// lib/adapters/supabase_adapter.dart
import 'package:bloom_framework/bloom.dart';
import 'package:supabase_flutter/supabase_flutter.dart';

class SupabaseAuthAdapter extends BloomAuthBase<User> {
  final SupabaseClient client;
  SupabaseAuthAdapter(this.client);

  @override
  Future<void> signInWithEmailPassword(String email, String password) async {
    final response = await client.auth.signInWithPassword(
      email: email,
      password: password,
    );
    // Syncs reactive signals in BloomAuth
    setUser(response.user);
  }

  @override
  Future<void> signOut() async {
    await client.auth.signOut();
    setUser(null);
  }
}

Serverpod Adapter

Stream typed Serverpod updates directly into reactive Bloom signals with zero boilerplate:

lib/adapters/serverpod_adapter.dart
dart
// lib/adapters/serverpod_adapter.dart
import 'package:bloom_framework/bloom.dart';
import 'package:my_serverpod_client/my_serverpod_client.dart';

class ServerpodFeedAdapter {
  final Client client;
  ServerpodFeedAdapter(this.client);

  // Exposes live Serverpod stream as fine-grained reactive Bloom Signal
  late final liveMessages = createSignal<List<ChatMessage>>([]);

  void startListening() {
    client.chat.messagesStream.listen((msg) {
      liveMessages.value = [...liveMessages.value, msg];
    });
  }
}