Gem Version Build Status

Integration between dry-web and web_pipe with hanami-router.

This is a fork of dry-web-roda where the roda dependency has been changed to web_pipe + hanami-router.

dry-web-web_pipe offers a CLI for generating new projects.

Umbrella projects

To generate a new umbrella project (functionality divided into sub-apps):

$ dry-web-web_pipe new <your_project_name>

And to generate sub-apps within your project:

$ dry-web-web_pipe generate sub_app <your_sub_app_name> --umbrella=<your_project_name>

Flat projects

To generate a new flat project (a simpler architecture, with a single module for your entire app):

$ dry-web-web_pipe new <your_project_name> --arch=flat

Generated skeleton

Umbrella projects

Main (hanami) router goes to lib/<your_project_name>/router.rb. It mounts subapp routers, which are in apps/<your_sub_app_name>/system/<your_project_name>/<your_sub_app_name>/router.rb.

Remember to update main router when adding new sub-apps.

web_pipe actions go to apps/<your_sub_app_name>/lib/<your_project_name>/<your_sub_app_name>/actions/

As a base web_pipe to be composed there is apps/<your_sub_app_name>/lib/<your_project_name>/<your_sub_app_name>/web.rb.

Flat projects

Hanami router goes to system/<your_project_name>/router.rb.

web_pipe actions go to lib/<your_project_name>/actions/.

As a base web_pipe to be composed there is apps/<your_project_name>/lib/web.rb.


See LICENSE file.


Bug reports and pull requests are welcome on GitHub at


The support code for testing the CLI and generated app are derived from hanami/hanami. Thank you to Luca and the Hanami team!