KasyKasy

Architecture

How the generated app is organized in layers and by backend.

Every Kasy project follows the same layered architecture. The backend changes; the UI and flows don't.

Overview

Flutter (UI + Riverpod)

Repositories (contracts)

Per-backend API (Firebase / Supabase / REST)

Server (Functions, Edge Functions, or your API)
LayerWhat it does
UI (lib/features/*/ui/)Screens, widgets, zero business logic
Notifiers (*_notifier.dart)State, navigation, toasts, repo calls
RepositoriesContracts that hide the backend
BackendFirebase, Supabase, or REST API

Three backends, same experience

Kasy keeps feature parity across the three backends. The login screen, paywall, push, and admin are the same. Only the data layer changes.

BackendServer
FirebaseCloud Functions + Firestore rules
SupabaseEdge Functions + RLS
REST APIEndpoints you implement

Where everything lives

router.dart
main.dart
FolderContent
lib/features/One folder per feature (auth, onboarding, settings...)
lib/core/Theme, navigation, config, utilities
lib/components/Design system (KasyButton, KasyCard...)
lib/router.dartGlobal routes (GoRouter)
lib/environments.dartFeature flags and auth mode

Last updated on 08/02/2026