Skip to content

Modular framework to grow your Flutter app ​

Vyuh helps you build large Flutter applications from independent features, supported by shared plugins. A feature owns a useful slice of your product. A plugin provides a capability that one or more features need. Your app chooses the pieces and brings them together.

03AppsCompose a product
Customer AppTeam App

Different experiences. The features each App needs.

02FeaturesOwn a slice of your product
CatalogAccountCheckout

Routes, state, UI, and contributions in portable packages.

01PluginsShare capabilities
LoggingTelemetryStorageNetwork

One capability can support many features.

Build one feature at a time ​

Keep a feature’s routes, state, UI, and initialization in its own Flutter package. A FeatureDescriptor exposes what the feature contributes to the app. Teams can work on those packages independently and add features without moving everything into a single application module.

A boundary should follow a coherent product capability: catalog, account, search, checkout. A screen alone is not always a useful boundary, and an entire customer journey can cross several features.

Share the capabilities beneath them ​

Plugins provide contracts for logging, telemetry, networking, authentication, storage, navigation, and other shared services. Configure the implementations once in your app. Features use the contracts rather than constructing their own infrastructure.

This keeps capability choices with the app: two apps can share a feature package while selecting different plugin implementations.

Compose different apps from the same pieces ​

A customer app might include catalog, account, and checkout. A team app might reuse catalog with inventory and reporting. Reuse the feature package and its public contributions, keeping app-specific details in configuration or the app’s chosen plugins.

Portability depends on explicit dependencies and routes. Avoid reaching into another app’s private state or hard-coding app-only assumptions inside a shared feature.

Start with an ordinary Flutter screen ​

The quick start provides a complete app with one feature and a standard Flutter screen. Then compose two features around one app-selected capability.

Build your first feature

Follow the learning path ​

SectionUse it to
Getting StartedRun your first app and learn the project structure
ConceptsUnderstand features, plugins, extensions, and lifecycle
GuidesImplement specific behaviors
FrameworkChoose the packages and their responsibilities
ExamplesTrace complete features in source
API ReferencesLook up declarations and directly declared members

Read Why Vyuh? for the ownership, reuse, and lifecycle decisions behind this model. The CLI can scaffold feature packages as your project grows.