🧱 supa_architecture
A scalable and opinionated Flutter architecture designed to boost productivity, enforce consistency, and support large-scale modular development.
📦 Installation
Add this to your pubspec.yaml
:
dependencies:
supa_architecture: ^<latest-version>
Then run:
flutter pub get
✅ Compatibility
Feature | Support |
---|---|
✅ Flutter SDK | 3.10 or higher |
✅ Platforms | Android, iOS, Web, macOS |
✅ Null safety | ✔️ Enabled |
✅ Modular support | ✔️ Built-in |
📜 Latest Changelog
v1.7.4
– 2025-03-20
- ✅ Added support for custom bottom sheet theming
- 🧩 Refactored localization manager integration
- 🛠 Fixed null-safe handling in persistent storage
- 💄 Updated default text styles to match SupaTheme
📚 Full Documentation
👉 Visit the full documentation site:
🔗 https://open.supa.vn
There you'll find:
- Setup guide
- Folder structure and architecture overview
- CLI tools and code generation
- Widget library and theming
- Localization and state management
- Best practices
💬 Feedback
Feel free to submit issues, suggestions, or improvements.
Made with ❤️ by the Supa team.
Libraries
- api_client/api_client
- api_client/interceptors/device_info_interceptor
- api_client/interceptors/general_error_log_interceptor
- api_client/interceptors/refresh_interceptor
- api_client/interceptors/timezone_interceptor
- blocs/authentication/authentication_bloc
- blocs/blocs
- blocs/error_handling/error_handling_bloc
- blocs/push_notification/push_notification_bloc
- blocs/tenant/tenant_bloc
- constants/constants
- core/app_token
- core/device_info
- core/device_notification_token
- core/persistent_storage/hive_persistent_storage
- core/persistent_storage/persistent_storage
- core/persistent_storage/web_persistent_storage
- core/secure_authentication_info
- core/secure_storage/secure_storage
- core/tenant_authentication
- exceptions/exceptions
- extensions/color
- extensions/datetime
- extensions/dotenv
- extensions/extensions
- extensions/infinite_scroll_pagination
- extensions/list
- extensions/money
- extensions/number
- extensions/string
- extensions/supa_route
- filters/filters
- forms/change_password_form
- forms/forgot_password_form
- forms/forms
- forms/login_form
- forms/reset_password_form
- json/json
- models/admin_type
- models/admin_type_filter
- models/app_user
- models/app_user_filter
- models/app_user_info
- models/app_user_preferences
- models/app_user_sub_system_mapping
- models/attachment
- models/current_tenant
- models/enum_model
- models/enum_model_filter
- models/file
- models/file_filter
- models/forgot_password_dto
- models/gender
- models/gender_filter
- models/image
- models/image_filter
- models/language
- models/language_filter
- models/models
- models/sub_system
- models/sub_system_filter
- models/tenant
- models/tenant_filter
- models/tenant_sub_system_mapping
- models/timezone
- models/timezone_filter
- models/user_notification
- models/user_notification_filter
- providers/dio_image_provider
- providers/providers
- repositories/base_repository
- repositories/portal_authentication_repository
- repositories/portal_profile_repository
- repositories/portal_tenant_repository
- repositories/repositories
- repositories/utils_notification_repository
- services/file_service
- services/notification_handler
- services/services
- supa_architecture
- supa_architecture_method_channel
- supa_architecture_platform_interface
- supa_architecture_web
- utils/password_field_mixin
- utils/platform_utils
- widgets/atoms/app_image
- widgets/atoms/field_label
- widgets/atoms/icon_placeholder
- widgets/atoms/loading_indicator
- widgets/atoms/text_status_badge
- widgets/molecules/enum_status_badge
- widgets/organisms/confirmation_dialog
- widgets/organisms/empty_component
- widgets/organisms/forbidden_component
- widgets/organisms/searchable_appbar_title
- widgets/organisms/section_title
- widgets/pages/page_forbidden
- widgets/templates/bottom_sheet_container
- widgets/templates/infinite_list_state
- widgets/widgets