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.
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.
├── 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
- 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.