- Build UIs with composition of small, focused widgets — prefer `StatelessWidget` over `StatefulWidget` when state isn't needed.
- Use `const` constructors on widgets to enable Flutter's widget tree diffing optimization and reduce rebuilds.
- Manage state with `setState()` only for local widget state — use Riverpod, Bloc, or Provider for app-wide state.
- Use `MediaQuery` and `LayoutBuilder` for responsive layouts — never hardcode pixel dimensions.
- Separate UI widgets from business logic. Use state management (Riverpod, Bloc, Provider) for app state.
- Use `const` constructors on widgets to enable Flutter's widget caching optimization.
- Place screens in `lib/screens/`, reusable widgets in `lib/widgets/`, services in `lib/services/`.
- Use `Theme.of(context)` and `TextTheme` for consistent styling — avoid hardcoded colors and sizes.