Skip to content

edzzn/fusebox

Repository files navigation

Fusebox

A Flutter + SvelteKit + Supabase starter kit built around one idea: share types and auth logic across mobile and web instead of maintaining two separate stacks.

Why this combination

Mobile and web teams usually duplicate the same auth flows, the same API contracts, and the same data models in two different languages, and the two copies drift. Fusebox pins Supabase as the single backend and generates shared types from it, so a schema change updates both the Flutter app and the SvelteKit app instead of being hand-copied twice.

This mirrors the real-world migrations that motivated it — read the write-up on migrating Vue to SvelteKit and native to Flutter in production.

Repository structure

├── apps/
│   ├── mobile/     # Flutter app
│   └── web/        # SvelteKit app
├── packages/
│   └── shared/     # Shared types and utilities generated from the Supabase schema
├── supabase/       # Schema, migrations, RLS policies
└── docs/           # Web / mobile / Supabase setup docs

Status

  • Done: shared types across Flutter/TypeScript, Supabase auth + RLS, web auth flow and dashboard UI, mobile state management (Riverpod) and navigation (go_router), PostHog analytics, local dev setup.
  • In progress: real-time sync, Stripe payments, offline mode, CI/CD, test coverage.

Documentation

About

Modern SaaS boilerplate combining Flutter, SvelteKit, and Supabase - with shared types, authentication

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages