Skip to content
/ vyuh Public

Build Modular, Scalable, CMS-driven Flutter Apps

License

Notifications You must be signed in to change notification settings

vyuh-tech/vyuh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Vyuh Logo

Vyuh Framework

Build Modular, Scalable, CMS-driven Flutter Apps

Codecov Β  Publish Action Β  Discord Β  AI-Code Agent

Packages
Sanity Integration
sanity_client
flutter_sanity_portable_text
Vyuh
vyuh_core
vyuh_extension_content
vyuh_plugin_content_provider_sanity
vyuh_cache
vyuh_feature_system
vyuh_feature_developer
vyuh_feature_auth
vyuh_feature_onboarding
NPM
@vyuh/sanity-schema-core
@vyuh/sanity-schema-system
@vyuh/sanity-plugin-structure
@vyuh/sanity-schema-auth
@vyuh/sanity-schema-onboarding

Hi there! πŸ‘‹

Vyuh is a framework to build CMS-driven Flutter Apps at scale. It gives the no-code flexibility to the Business teams (via the CMS), and the full-code power to the Engineering teams. This puts the right control at the right place without any compromise.

Note

CMS is one of the many extensible integrations inside Vyuh. All integrations are managed as Plugins, which are standardized interfaces to extend the capabilities of the framework.

πŸ€” Why did we build this?

A common problem when building large scale apps is the need to stay modular as you keep growing the feature set. You also want different teams to work in parallel without stepping on each other. The typical approach of creating a single project and building all the functionality in it does not scale very well over time. You could break up the app into several packages but that still does not give you the clarity of who owns what. It does not tell you how to combine these packages to create the final app.

Additionally, Apps today are very content-oriented and need to be dynamic. This means your journeys, page content, themes, etc. should be remotely controllable. In other words, making your app Server-driven.

Separation of Concerns

Combining all these capabilities requires a holistic approach, which is only possible when you build a cohesive framework.

Vyuh is that framework.

It allows you to create the perfect balance of simple, modular components on the CMS, with powerful Flutter counterparts that take care of all the complexity.

The teams (Business teams) managing the content and experience don't have to worry about UI Design, pixel precision or performance and focus more on building the screen journeys and page content instead. The Flutter engineering teams handle the complexity of the components along with its performance.

This clear separation allows a phenomenal flexibility in building simple to large scale apps. It also gives the right tools to the right teams and makes them more productive.

Business teams assemble page-content and journeys, whereas the Engineering teams focus on the developing the design, performance and scalability of those content-blocks. This results in a gallery of blocks which the Business teams use to create the content of the App.

The Framework

The Vyuh framework has some powerful built-in capabilities such as:

  • Building features atomically and in a modular fashion.
  • Features as transferable and reusable units of functionality that can be moved between Apps.
  • Remote configuration of content, enabling Server-Driven UI.
  • Extensible Plugin-based approach to add new third-party integrations.
  • Team Independence.
  • Decentralised development.
  • Creating a family of apps with reusable features.
  • A growing set of integrations (aka building blocks) to make app development faster.

πŸ”© The Building Blocks

The core building blocks that enable all of this include:

  • Features: build user-facing functionality in a modular, reusable, atomic manner. Features can be composed together to create the entire app or a family of apps. Features can also be transferred between apps easily.
  • Plugins: All third party integrations are handled in a cross-cutting manner using Plugins. Authentication, Networking, CMS, Storage, Permissions, Ads, etc. are all plugins that are available to all features.
  • CMS-Driven UI: Also known as Server-Driven UI, the entire app experience can be driven from a CMS. This includes the screen journeys, page content, themes, etc. The CMS itself is a standard plugin with custom Providers. Bring your own CMS as a ContentProvider!

Note

The default CMS we use is Sanity.io.

  • Community packages: leverages the best community packages like mobx, go_router, get_it, hive, firebase, etc. This means you don't have to learn anything proprietary to use Vyuh.

It is plain old Flutter with a fresh approach to building scalable apps.

Getting Started πŸš€

  1. Start with the documentation on the Docs Website.
  2. There are several examples to give you a taste of the Framework. Check them out in the examples directory. Some direct links to the examples are listed below.
  3. To run the Vyuh Demo, there is some setup needed. This includes API Keys for Unsplash and TMDB. All these details are in the Vyuh Demo README.

Examples


Counter
The classic counter example from Flutter, as a Vyuh Feature.

Theme Settings
Toggle between the light & dark themes.

Wonderous
The Wonderous App as a feature.

Movies
A Movies feature using the TMDB API.

Unsplash
Explore the photos from Unsplash

Miscellaneous
Explore the various framework capabilities in this miscellaneous feature.

Food
A fast-food menu feature

Puzzle
A fun little puzzle game, as a feature.

Contact

Follow us, stay up to date or reach out on:

Analytics

Alt

Contributors

Pavan Podila
Pavan Podila

πŸ’» πŸ“– ⚠️
Vishal Kumar
Vishal Kumar

πŸ’»
Ajay Kumar
Ajay Kumar

πŸ’» ⚠️
Stephen Richter
Stephen Richter

πŸ’» πŸ“– ⚠️

License

The framework is FSL Licensed.