Skip to main content

The Herbs Ecosystem

There are three primitive herbs libraries that are at Herbs' core, helping modeling your domain and preparing it to expose metadata. To consume these metadata and bring value to your domain there are glue libraries. They create bridges between Herbs core and other libraries already consolidated in the Node.js community.

Herbs Core Distribuition

Herbs: Herbs Core consolidates the core libraries in the ecosystem, making it easy to use.

$ npm install @herbsjs/herbs 

Core Herbs

Gotu: Model your business entities with validation and business rules.

Buchu: Model your use cases to be readable, auditable and secure.

Aloe: Define your specs.

Suma: It is the base library for value validation used internally by Gotu and Buchu.

Glues

Glues are libraries that consume your domain's metadata and dynamically generate for you a significant part of the infrastructure API on the fly (no code generation), such as REST endpoints and controllers, resolvers and types for GraphQL, specialized repositories, as well as documentation and other features that we haven't even imagined yet.

There are some Glues maintained directly by the Herbs core developers, but we believe that the ecosystem is still in its infancy, so we encourage the creation of other Glues and thus help more developers to unlock their domains.

To better understand what a Glue is and which ones are ready to use, visit the Glues page.