{"id":21765176,"url":"https://github.com/vyuh-tech/vyuh","last_synced_at":"2025-10-06T00:10:26.617Z","repository":{"id":260226559,"uuid":"772064108","full_name":"vyuh-tech/vyuh","owner":"vyuh-tech","description":"Build Modular, Scalable, CMS-driven Flutter Apps","archived":false,"fork":false,"pushed_at":"2025-09-27T11:30:23.000Z","size":17255,"stargazers_count":110,"open_issues_count":9,"forks_count":16,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-27T13:21:49.222Z","etag":null,"topics":["app","cms","dart","flutter","framework","modular","server-driven-ui"],"latest_commit_sha":null,"homepage":"https://vyuh.tech","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vyuh-tech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-14T13:20:08.000Z","updated_at":"2025-09-27T11:30:28.000Z","dependencies_parsed_at":"2025-01-13T13:42:38.601Z","dependency_job_id":"c4d695f3-05f5-4929-ae3b-750644e8fe5b","html_url":"https://github.com/vyuh-tech/vyuh","commit_stats":null,"previous_names":["vyuh-tech/vyuh"],"tags_count":571,"template":false,"template_full_name":null,"purl":"pkg:github/vyuh-tech/vyuh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyuh-tech%2Fvyuh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyuh-tech%2Fvyuh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyuh-tech%2Fvyuh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyuh-tech%2Fvyuh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vyuh-tech","download_url":"https://codeload.github.com/vyuh-tech/vyuh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vyuh-tech%2Fvyuh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278537945,"owners_count":26003277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","cms","dart","flutter","framework","modular","server-driven-ui"],"created_at":"2024-11-26T13:10:56.572Z","updated_at":"2025-10-06T00:10:26.585Z","avatar_url":"https://github.com/vyuh-tech.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://vyuh.tech\"\u003e\n    \u003cimg src=\"https://github.com/vyuh-tech.png\" alt=\"Vyuh Logo\" height=\"128\" /\u003e\n  \u003c/a\u003e\n  \u003ch1 align=\"center\"\u003eVyuh Framework\u003c/h1\u003e\n  \u003cp align=\"center\"\u003eBuild Modular, Scalable, CMS-driven Flutter Apps\u003c/p\u003e\n  \u003ch4 align=\"center\"\u003e\n    \u003ca href=\"https://docs.vyuh.tech\"\u003eDocs\u003c/a\u003e |\n    \u003ca href=\"https://vyuh.tech\"\u003eWebsite\u003c/a\u003e\n  \u003c/h4\u003e\n\u003c/p\u003e\n\n[![Codecov](https://img.shields.io/codecov/c/github/vyuh-tech/vyuh?token=5NL6KJ70AR\u0026logo=codecov\u0026style=for-the-badge)](https://codecov.io/github/vyuh-tech/vyuh)\n\u0026nbsp;\n[![Publish Action](https://img.shields.io/github/actions/workflow/status/vyuh-tech/vyuh/publish.yml?label=Publish\u0026logo=github\u0026style=for-the-badge)](https://github.com/vyuh-tech/vyuh/actions/workflows/publish.yml)\n\u0026nbsp;\n[![Discord](https://img.shields.io/discord/1198906057502769252?style=for-the-badge\u0026logo=discord)](https://discord.gg/b49sbjqszG)\n\n| Packages                                                                                                                                                                                                                                                        |\n| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| _Sanity Integration_                                                                                                                                                                                                                                            |\n| [![sanity_client](https://img.shields.io/pub/v/sanity_client.svg?label=sanity_client\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/sanity_client)                                                                                         |\n| [![flutter_sanity_portable_text](https://img.shields.io/pub/v/flutter_sanity_portable_text.svg?label=flutter_sanity_portable_text\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/flutter_sanity_portable_text)                             |\n| _Vyuh_                                                                                                                                                                                                                                                          |\n| [![vyuh_core](https://img.shields.io/pub/v/vyuh_core.svg?label=vyuh_core\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_core)                                                                                                         |\n| [![vyuh_extension_content](https://img.shields.io/pub/v/vyuh_extension_content.svg?label=vyuh_extension_content\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_extension_content)                                                     |\n| [![vyuh_content_widget](https://img.shields.io/pub/v/vyuh_content_widget.svg?label=vyuh_content_widget\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_content_widget)                                                                 |\n| [![vyuh_plugin_content_provider_sanity](https://img.shields.io/pub/v/vyuh_plugin_content_provider_sanity.svg?label=vyuh_plugin_content_provider_sanity\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_plugin_content_provider_sanity) |\n| [![vyuh_cache](https://img.shields.io/pub/v/vyuh_cache.svg?label=vyuh_cache\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_cache)                                                                                                     |\n| [![vyuh_feature_system](https://img.shields.io/pub/v/vyuh_feature_system.svg?label=vyuh_feature_system\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_feature_system)                                                                 |\n| [![vyuh_feature_auth](https://img.shields.io/pub/v/vyuh_feature_auth.svg?label=vyuh_feature_auth\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_feature_auth)                                                                         |\n| [![vyuh_feature_onboarding](https://img.shields.io/pub/v/vyuh_feature_onboarding.svg?label=vyuh_feature_onboarding\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_feature_onboarding)                                                 |\n| _Developer Tools_                                                                                                                                                                                                                                               |\n| [![vyuh_feature_developer](https://img.shields.io/pub/v/vyuh_feature_developer.svg?label=vyuh_feature_developer\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_feature_developer)                                                     |\n| [![vyuh_widgetbook](https://img.shields.io/pub/v/vyuh_widgetbook.svg?label=vyuh_widgetbook\u0026logo=dart\u0026color=blue\u0026style=for-the-badge)](https://pub.dev/packages/vyuh_widgetbook)                                                                                 |\n| _NPM_                                                                                                                                                                                                                                                           |\n| [![@vyuh/sanity-schema-core](https://img.shields.io/npm/v/%40vyuh%2Fsanity-schema-core.svg?logo=npm\u0026label=%40vyuh%2Fsanity-schema-core\u0026style=for-the-badge\u0026color=cb3837)](https://www.npmjs.com/package/@vyuh/sanity-schema-core)                               |\n| [![@vyuh/sanity-schema-system](https://img.shields.io/npm/v/%40vyuh%2Fsanity-schema-system.svg?logo=npm\u0026label=%40vyuh%2Fsanity-schema-system\u0026style=for-the-badge\u0026color=cb3837)](https://www.npmjs.com/package/@vyuh/sanity-schema-system)                       |\n| [![@vyuh/sanity-plugin-structure](https://img.shields.io/npm/v/%40vyuh%2Fsanity-plugin-structure.svg?logo=npm\u0026label=%40vyuh%2Fsanity-plugin-structure\u0026style=for-the-badge\u0026color=cb3837)](https://www.npmjs.com/package/@vyuh/sanity-plugin-structure)           |\n| [![@vyuh/sanity-schema-auth](https://img.shields.io/npm/v/%40vyuh%2Fsanity-schema-auth.svg?logo=npm\u0026label=%40vyuh%2Fsanity-schema-auth\u0026style=for-the-badge\u0026color=cb3837)](https://www.npmjs.com/package/@vyuh/sanity-schema-auth)                               |\n| [![@vyuh/sanity-schema-onboarding](https://img.shields.io/npm/v/%40vyuh%2Fsanity-schema-onboarding.svg?logo=npm\u0026label=%40vyuh%2Fsanity-schema-onboarding\u0026style=for-the-badge\u0026color=cb3837)](https://www.npmjs.com/package/@vyuh/sanity-schema-onboarding)       |\n\n\u003chr style=\"height: 1px;\"/\u003e\n\n## Hi there! 👋\n\n**Vyuh** is a framework to build CMS-driven Flutter Apps at scale. It gives the\n**no-code** flexibility to the Business teams (via the CMS), and the\n**full-code** power to the Engineering teams. This puts the right control at the\nright place without any compromise.\n\n\u003e [!NOTE]\n\u003e\n\u003e CMS is one of the many extensible integrations inside Vyuh. All integrations\n\u003e are managed as Plugins, which are standardized interfaces to extend the\n\u003e capabilities of the framework.\n\n## 🤔 Why did we build this?\n\nA common problem when building large scale apps is the _need to stay modular_ as\nyou keep growing the feature set. You also want different teams to _work in\nparallel_ without stepping on each other. The typical approach of creating a\nsingle project and building all the functionality in it does not scale very well\nover time. You could break up the app into several packages but that still does\nnot give you the clarity of who owns what. It does not tell you how to combine\nthese packages to create the final app.\n\nAdditionally, Apps today are very content-oriented and need to be dynamic. This\nmeans your journeys, page content, themes, etc. should be remotely controllable.\nIn other words, making your app _Server-driven_.\n\n### Separation of Concerns\n\nCombining all these capabilities requires a holistic approach, which is only\npossible when you build a cohesive framework.\n\n\u003e **Vyuh** is that framework.\n\u003e\n\u003e It allows you to create the perfect balance of simple, modular components on\n\u003e the `CMS`, with powerful `Flutter` counterparts that take care of all the\n\u003e complexity.\n\nThe teams (Business teams) managing the content and experience don't have to\nworry about UI Design, pixel precision or performance and focus more on\n_building the screen journeys and page content_ instead. The Flutter engineering\nteams handle the complexity of the components along with its performance.\n\nThis clear separation allows a phenomenal flexibility in building simple to\nlarge scale apps. It also gives _the right tools to the right teams_ and makes\nthem more productive.\n\n\u003e _Business_ teams **assemble** page-content and journeys, whereas the\n\u003e _Engineering_ teams focus on the **developing** the design, performance and\n\u003e scalability of those _content-blocks_. This results in a _gallery of blocks_\n\u003e which the Business teams use to create the content of the App.\n\n### The Framework\n\nThe **Vyuh** framework has some powerful built-in capabilities such as:\n\n- [x] Building features atomically and in a modular fashion.\n- [x] Features as transferable and reusable units of functionality that can be\n      moved between Apps.\n- [x] Remote configuration of content, enabling Server-Driven UI.\n- [x] Extensible Plugin-based approach to add new third-party integrations.\n- [x] Team Independence.\n- [x] Decentralised development.\n- [x] Creating a family of apps with reusable features.\n- [x] A growing set of integrations (aka building blocks) to make app\n      development faster.\n\n\u003e [!NOTE]\n\u003e\n\u003e You can either use the full Framework for your app or start small with the\n\u003e [vyuh_content_widget](https://pub.dev/packages/vyuh_content_widget) package.\n\n## 🔩 The Building Blocks\n\nThe core building blocks that enable all of this include:\n\n- **Features**: build user-facing functionality in a modular, reusable, atomic\n  manner. Features can be composed together to create the entire app or a family\n  of apps. Features can also be transferred between apps easily.\n- **Plugins**: All third party integrations are handled in a cross-cutting\n  manner using Plugins. Authentication, Networking, CMS, Storage, Permissions,\n  Ads, etc. are all plugins that are available to all features.\n- **CMS-Driven UI**: Also known as Server-Driven UI, the entire app experience\n  can be driven from a CMS. This includes the screen journeys, page content,\n  themes, etc. The CMS itself is a standard plugin with custom Providers. Bring\n  your own CMS as a `ContentProvider`!\n\n\u003e [!NOTE]\n\u003e\n\u003e The default CMS we use is [Sanity.io](https://sanity.io).\n\n- **Community packages**: leverages the best community packages like `mobx`,\n  `go_router`, `get_it`, `hive`, `firebase`, etc. This means you don't have to\n  learn anything proprietary to use Vyuh.\n\n\u003e It is plain old Flutter with a fresh approach to building scalable apps.\n\n## Getting Started 🚀\n\n1. Start with the documentation on the [Docs Website](https://docs.vyuh.tech).\n2. There are several examples to give you a taste of the Framework. Check them\n   out in the [examples](examples) directory. Some direct links to the examples\n   are listed below.\n3. To run the Vyuh Demo, there is some setup needed. This includes API Keys for\n   Unsplash and TMDB. All these details are in the\n   [Vyuh Demo README](apps/vyuh_demo/README.md).\n\n### Examples\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-counter.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/feature_counter\"\u003eCounter\u003c/a\u003e\n        \u003cbr\u003e\n        The classic counter example from Flutter, as a Vyuh Feature.\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-conference.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/conference\"\u003eConference\u003c/a\u003e\n        \u003cbr\u003e\n        A Conference App feature with a list of sessions and speakers.\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-wonderous.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/wonderous\"\u003eWonderous\u003c/a\u003e\n        \u003cbr\u003e\n        The Wonderous App as a feature.\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-tmdb.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/tmdb\"\u003eMovies\u003c/a\u003e\n        \u003cbr\u003e\n        A Movies feature using the TMDB API.\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-unsplash.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/unsplash\"\u003eUnsplash\u003c/a\u003e\n        \u003cbr\u003e\n        Explore the photos from Unsplash\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-misc.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/misc\"\u003eMiscellaneous\u003c/a\u003e\n        \u003cbr\u003e\n        Explore the various framework capabilities in this miscellaneous feature.\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-food.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/food\"\u003eFood\u003c/a\u003e\n        \u003cbr\u003e\n        A fast-food menu feature\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003cimg src=\"_images/example-puzzle.png\" height=\"200\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"examples/puzzles\"\u003ePuzzle\u003c/a\u003e\n        \u003cbr\u003e\n        A fun little puzzle game, as a feature.\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Contact\n\nFollow us, stay up to date or reach out on:\n\n- [@vyuh_tech](https://x.com/vyuh_tech)\n- [LinkedIn](https://www.linkedin.com/company/vyuh-tech)\n- [Discord](https://discord.gg/b49sbjqszG)\n- [Email](mailto:ask@vyuh.tech)\n\n## Analytics\n\n![Alt](https://repobeats.axiom.co/api/embed/bbe1b79c2dcbd94a9b194633e368cdde06953673.svg 'Repobeats analytics image')\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"20%\"\u003e\u003ca href=\"https://vyuh.tech/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/156846?v=4?s=64\" width=\"64px;\" alt=\"Pavan Podila\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePavan Podila\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=pavanpodila\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=pavanpodila\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=pavanpodila\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"20%\"\u003e\u003ca href=\"https://github.com/vishal-kr-barnwal\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/29015539?v=4?s=64\" width=\"64px;\" alt=\"Vishal Kumar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eVishal Kumar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=vishal-kr-barnwal\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"20%\"\u003e\u003ca href=\"https://github.com/ProjectAJ14\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/35396392?v=4?s=64\" width=\"64px;\" alt=\"Ajay Kumar\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAjay Kumar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=ProjectAJ14\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=ProjectAJ14\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"20%\"\u003e\u003ca href=\"http://www.stephenrichter.ca\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3759863?v=4?s=64\" width=\"64px;\" alt=\"Stephen Richter\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStephen Richter\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=stephenrichter\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=stephenrichter\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/vyuh-tech/vyuh/commits?author=stephenrichter\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## Want to Contribute? 🤗\n\nWe welcome contributions from the community! Please check out our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to contribute to the Vyuh Framework.\n\n### Setup\n\n1. We use [melos](https://melos.invertase.dev/) for managing our monorepo and [pnpm](https://pnpm.io/) for package management. Make sure you have both installed.\n\n2. Clone the repository and run `pnpm install` to install dependencies.\n\n3. Run `melos bootstrap` to set up the workspace.\n\n### Running the Demo\n\nTo run the Vyuh Demo:\n\n1. Navigate to the `apps/vyuh_demo` directory.\n2. Follow the setup instructions in the [Vyuh Demo README](apps/vyuh_demo/README.md).\n3. Run `flutter run` to launch the demo app.\n\n### Launching Sanity Studio\n\nTo start the Sanity Studio:\n\n1. Navigate to the `apps/demo-studio` directory.\n2. Run `pnpm run dev` to start the Sanity Studio development server.\n\n## License\n\nThe framework is [FSL Licensed](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvyuh-tech%2Fvyuh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvyuh-tech%2Fvyuh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvyuh-tech%2Fvyuh/lists"}