Garden is a specification for modeling an ecosystem (e.g. of products, services) as a directed graph with unlimited recursion and composability. This repository holds a CLI for generating the JSON schema in apps/cli
, a library published to @omnidotdev/garden
in apps/library
, and a visualizer web app in apps/web
, powered by Next.js.
For a reference implementation, check out the Omniverse.
Garden layouting is currently powered by ELK, more layouting engines will be supported in the future.
Cultivation. A garden is a place where plants are grown and cultivated, and digital ecosystems thrive on this same approach.
- A visual representation of an ecosystem of projects and their relationships
- Composable: each garden is independently processable as its own garden, and gardens can be nested inside of each other ("supergardens" and "subgardens").
cd apps/cli
, then cargo run -- $OUTPUT_FILE
. For example, cargo run -- ../../garden.schema.json
.
cd apps/library && bun generate
The app is a landing page and visualizer for Garden schemas. From the root directory, run the following:
bun install
bun turbo build
bun turbo dev
Garden is inspired by the CNCF Landscape project, which is a collection of projects that are part of the CNCF. The CNCF Landscape is a visual representation of the projects and their relationships, making it easier to understand the relationships between projects and the larger ecosystem.
The code in this repository is licensed under MIT, © Omni LLC. See LICENSE.md for more information.