bloom_framework 0.4.0 copy "bloom_framework: ^0.4.0" to clipboard
bloom_framework: ^0.4.0 copied to clipboard

An opinionated application framework and developer platform built on Dart and Flutter.

Bloom Framework #

pub package License: MIT

"Flutter gives you the engine. Bloom gives you the application framework."

Bloom is an opinionated application framework and developer platform built on Dart and Flutter. It unifies state management, filesystem routing, server-state query caching, offline mutation queueing, declarative native plugins, and full-stack API routes into a single cohesive foundation.


🌟 Core Features #

  • ⚑ Signals State Management: Fine-grained, zero-boilerplate reactivity powered by Signals.
  • πŸ“ Filesystem Routing: Next.js-inspired file-based routing compiled to go_router.
  • πŸ’Ύ Bloom Data & Offline Sync: Stale-while-revalidate asynchronous caching with automatic offline mutation replay.
  • πŸ“± Native Integration: Zero-config declarative native plugins for storage, permissions, camera, notifications, and deep links.
  • 🌐 Full-Stack Web & SSR: Unified client + server runtime with API routes (routes/api/*) and SSR hydration.
  • πŸ” In-App DevTools & Observability: Real-time request inspection, replay engine, and automatic crash telemetry.

πŸš€ Quickstart #

import 'package:bloom_framework/bloom.dart';
import 'package:flutter/material.dart';

void main() async {
  await Bloom.boot(
    environment: 'development',
    config: BloomAppConfig(name: 'my_app', version: '1.0.0'),
  );

  runApp(const MaterialApp(
    home: HomeScreen(),
  ));
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    final count = signal(0);

    return Scaffold(
      appBar: AppBar(title: const Text('Bloom App')),
      body: Center(
        child: Watch((context) => Text('Counter: ${count.value}', style: const TextStyle(fontSize: 24))),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => count.value++,
        child: const Icon(Icons.add),
      ),
    );
  }
}

πŸ“š Documentation #

For complete documentation, guides, and full-stack recipes, visit the Bloom Documentation Portal.