Skip to content

omnidotdev/garden

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌱 Garden

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.

Why "Garden"?

Cultivation. A garden is a place where plants are grown and cultivated, and digital ecosystems thrive on this same approach.

Features

  • 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").

Generate the Schema

cd apps/cli, then cargo run -- $OUTPUT_FILE. For example, cargo run -- ../../garden.schema.json.

Generate Types from Schema

cd apps/library && bun generate

Local Development (Library and Web App)

The app is a landing page and visualizer for Garden schemas. From the root directory, run the following:

Building and Running

bun install
bun turbo build
bun turbo dev

Inspiration

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.

License

The code in this repository is licensed under MIT, © Omni LLC. See LICENSE.md for more information.