Flutter Firebase Kit
Flutter Firebase Kit is a complete, production-ready Flutter boilerplate built for developers who want to skip the setup and start shipping. Every feature you need for a real app is already wired up — Firebase Authentication (email, Google, Apple), Firestore with offline support, Cloud Functions, push notifications via FCM, and a clean project structure that scales. The architecture follows Clean Architecture principles with Riverpod for state management, making your codebase easy to test, maintain, and hand off to a team. No more copy-pasting from tutorials or fighting with boilerplate. Whether you're building a SaaS, marketplace, or a client project — this kit gives you a solid foundation so you can focus on what makes your app unique.
Features
- Authentication & OnboardingEmail / password sign in and sign up
- Google Sign-In (one tap)
- Forgot Password via email reset link
- Persistent login session (stays signed in on relaunch)
- 3-slide animated onboarding (shown once, never again)
- Demo mode — tap "Continue with Demo Account" to explore every screen without a Firebase project
- Splash with animated logo
- Onboarding (3 slides, skip or swipe)
- Login
- Register
- Forgot Password
- Dashboard with stats, chart, nodes card, quick actions, and activity feed
- Profile with completion card and avatar
- Edit Profile
- Settings (dark/light mode toggle, language, notifications)
- Notifications (grouped New / Earlier, unread indicator)
- Feature-First Clean Architecture — domain / data / presentation per feature
- Zero hardcoded strings, colors, or sizes — everything lives in tokens
- Sealed state classes for auth and errors (no stringly-typed states)
- Repository pattern with abstract interfaces — swap Firebase for any backend
- flutter analyze clean — 0 errors, 0 warnings
- Annotation-based code generation (@riverpod)
- AsyncValue throughout — loading, data, and error states handled uniformly
- Auth guard in the router watches the Firebase stream — redirects happen automatically
- ShellRoute bottom navigation — back stack preserved per tab
- 14 named routes with path constants
- Auth redirect middleware — unauthenticated users always land on Login
- Shell route for bottom nav with 5 tabs (Dashboard, Analytics, Search, Settings, Profile)
- Deep-link ready structure
- Firebase Auth — email/password + Google OAuth
- Cloud Firestore — user profiles, notifications, activity feed collections
- Firebase Storage — avatar upload with file-size and MIME-type guard
- Cloud Messaging — dependency wired up, ready to handle push tokens
- 5 token files: color, typography, spacing, radius, shadow
- Full dark theme and light theme — token-driven, single source of truth
- Inter font via google_fonts — no font files to bundle
- One-line rebrand: change ColorTokens.primary to repaint the whole app
- Material 3 (useMaterial3: true) throughout
- GradientButton — primary CTA with gradient, icon slot, and loading spinner
- AppTextField — styled text input with label, hint, validator, show/hide password
- AppCard — surface card following radius and border tokens
- SocialSignInButton — Google logo painted with CustomPainter, no image assets
- ScaffoldWithNav — bottom nav bar with animated selection highlight
- SkeletonLoader set — SkeletonBox, SkeletonCard, SkeletonListItem, DashboardSkeleton
- EmptyStateWidget — icon + title + description, centered
- SectionHeader — label + optional action link
- IconContainer — colored icon badge used throughout the dashboard
- LoadingOverlay — full-screen blocker during async operations
- SparklineChart — bezier curve with gradient fill below the line
- ArcPainter — circular progress for profile completion
- GoogleLogoPainter — renders the Google "G" logo in four colors
- Validators — email, password (min 8 chars), name, bio length
- DateFormatter.relative() — "5 minutes ago", "2 days ago"
- NetworkInfo provider — live connectivity stream via connectivity_plus
- BuildContext extensions — colorScheme, textTheme, isDark, showSnackBar, dismissKeyboard, screenWidth, screenHeight
- String extensions — capitalize, isValidEmail
- AppException sealed class — Network, Server, Auth, Storage, Cache variants
- Failure sealed class — maps exceptions to user-facing domain errors
Requirements
- Flutter 3.19 or higher
- Dart 3.x
- Firebase project (free Spark plan works)
- Node.js 18+ (for Cloud Functions)
- Xcode 15+ (for iOS build)
- Android Studio or VS Code