This package contains the web frontend for Vibepad, built with Jaspr.
The frontend follows a Pragmatic MVVM architecture designed to maintain a clean separation of concerns without introducing unnecessary boilerplate.
lib/ app.dart # Root application component main.client.dart # Entrypoint features/ # Feature modules containing Views, ViewModels, and Data Repositories <feature_name>/ # e.g., editor, preview, workspace data/ # Data repositories (if applicable) views/ # Jaspr UI components components/ # Smaller UI widgets specific to the feature view_models/ # ChangeNotifiers for UI state models/ # Domain models or state definitions utils/ # Shared utilities, styles, and providers
editor, preview, workspace, agent).views/ and components/: Pure Jaspr components. They observe ChangeNotifier ViewModels and render UI accordingly.view_models/: Presentation logic layer. They depend on Repositories, manage UI state, and expose data formatted for the views.models/: Feature-specific data models or state definitions (like PreviewState).app.dart) and passed down the component tree using Provider and ChangeNotifierProvider.ChangeNotifier ViewModels be the single source of truth for the UI state of a feature.@css or standard styling mechanisms close to the components they style.