Genesis
Imagine this situation where you are building a multitude of features for different business verticals. There is a big team working independently to create these features. Now, the challenge is to bring all these features into a single App Experience.
If that's not enough, we also need:
Ability to dynamically construct Customer Journeys on the App
Any page to be linked to any other page
Content on a page can be from any vertical
All above capabilities should be controlled by business teams
Deploy all these changes without an App Release
App should be built in a single codebase for sharing talent, skills and knowledge
App should be cross-platform
Exploration
Some of the above needs translated into tech choices such as Flutter for building the App Experience. What was not clear immediately was the solution for dynamic journeys, dynamic content, easy control for business, etc.
After some deeper exploration, the answer lied in picking a headless-CMS to drive the entire App Experience.
So the question now became: which headless-CMS? After a series of bake-offs between many headless CMS solutions, we settled on Sanity.io.
Discovery
Flutter and Sanity.io are definitely capable but on their own they don't satisfy our needs directly.
However, they do have some hidden powers, which need to be harnessed:
Sanity's code-based approach to create Schemas for content-types
Flutter's cross-platform rendering across iOS, Android, Web, Desktop
Dart's sound type system and syntax ergonomics
A great Developer Experience (DX) across the stack with Sanity and Flutter
A new Framework
Combining the elements and their powers led to the formation of a new Framework for building Apps, which met all our needs.
Thus, the Vyuh Framework was forged.
After many rounds of refinement, it is now ready for a "Hello World"
.
Why the name "Vyuh"?
Vyuh is a word from Sanskrit, the ancient Indian language, which means formation, arrangement or strategy.
In our case, it is a formation (arrangement) of technologies that come together to solve the problem of building App Experiences with remote configurability.
Also, we have a happy coincidence with the English word "View", which in the UI parlance, means a single unit of graphical representation.
So, phonetically, Vyuh and View are interchangeable.