Skip to main content

Herbs Shelf

Herbs Shelf is a self-generated documentation based on use cases and entities from your domain.

Herbs Shelf make it possible to collaborate between domain experts and developers without having to read any code.



$ npm install @herbsjs/herbsshelf


To use Herbs Shelf, all you have to do is to inform a list of use cases and it will return a string containing the HTML with the generated documentation.

The quickest way to use Herbs Shelf is to create a rest route in your api and expose the documentation generated by the shelf.

Consider a file called _uclist.js with this inside

module.exports = (injection) => {
return [
{ usecase: require('./myUseCaseFile').myUseCaseName(injection), tags: { group: 'GroupOne' } },
{ usecase: require('./myUseCase2File').myUseCase2Name(injection), tags: { group: 'GroupOne' } },
{ usecase: require('./myUseCase3File').myUseCase3Name(injection), tags: { group: 'GroupTwo' } },

In your app or server file, import the shelf dependecy and the list of use cases

const usecases = require('../../domain/usecases/_uclist')
const renderShelfHTML = require('@herbsjs/herbsshelf')

And call the shelf into you prefered rest route'/herbsshelf', (req, res, next) => {
res.setHeader('Content-Type', 'text/html')
const shelf = renderShelfHTML(usecases())


You can see Herbs Shelf in action in the To Do List On Herbs project.