Skip to main content


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

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

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

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

Herbs Core distribuition

Herbs: We put the core libraries into a single distribution by reference, as we believe that all the main features can be made available through a simple command:

 npm install @herbsjs/herbs 


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.