Technology moves fast! ⚡ Don't get left behind.🚶 Subscribe to our mailing list to keep up with latest and greatest in open source projects! 🏆

Subscribe to our mailing list


The web, with simplicity.

Subscribe to updates I use hanami

Statistics on hanami

Number of watchers on Github 4458
Number of open issues 28
Average time to close an issue 14 days
Main language Ruby
Average time to merge a PR 3 days
Open pull requests 62+
Closed pull requests 41+
Last commit over 1 year ago
Repo Created almost 6 years ago
Repo Last Updated over 1 year ago
Size 24.8 MB
Organization / Authorhanami
Page Updated
Do you use hanami? Leave a review!
View open issues (28)
View hanami activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating hanami for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Gem Version Build Status Coverage Code Climate Dependencies Inline docs

Hanami :cherry_blossom:

The web, with simplicity.


Hanami is a full-stack Ruby web framework. It's made up of smaller, single-purpose libraries.

This repository is for the full-stack framework, which provides the glue that ties all the parts together:

These components are designed to be used independently or together in a Hanami application.


Hanami supports Ruby (MRI) 2.3+

gem install hanami


hanami new bookshelf
cd bookshelf && bundle
bundle exec hanami server # visit http://localhost:2300

Please follow along with the Getting Started guide.


You can give back to Open Source, by supporting Hanami development via a donation. :green_heart:



  • Home page:
  • Community:
  • Guides:
  • Mailing List:
  • API Doc:
  • Bugs/Issues:
  • Stack Overflow:
  • Forum:
  • Chat:


We strive for an inclusive and helpful community. We have a Code of Conduct to handle controversial cases. In general, we expect you to be nice with other people. Our hope is for a great software and a great Community.

Contributing Open Source Helpers

  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

In addition to contributing code, you can help to triage issues. This can include reproducing bug reports, or asking for vital information such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to subscribe to hanami on CodeTriage.

How To Use Hanami HEAD

If you want to test Hanami's HEAD to try a new feature or to test a bug fix, here's how to do:

git clone
cd hanami && bundle
bundle exec hanami new bookshelf --hanami-head
cd bookshelf
vim Gemfile # edit with: gem 'hanami', path: '..'

Development Requirements

  • Ruby 2.3+ / JRuby
  • Bundler
  • PhantomJS
  • Node.js (MacOS)


In order to simulate installed gems on developers' computers, the build installs all the gems locally in vendor/cache, including hanami code from lib/.

Before running a test, please make sure you have a fresh version of the code:

bundle exec rspec spec/path/to/file_spec.rb

To run all the tests, please use:



Hanami uses Semantic Versioning 2.0.0


Released under MIT License.

This project was formerly known as Lotus (lotusrb).

Copyright 2014-2017 Luca Guidi.

hanami open issues Ask a question     (View All Issues)
  • over 2 years Consider marking generated tests as skipped/pending
  • over 2 years Custom generators
  • over 2 years Docs
  • over 2 years Allow host to be set when mounting apps in the container
  • over 2 years Hanami::Utils::Hash#symbolize! does not handle arrays
  • over 2 years Unable to login via OAuth2 - OmniAuth::Strategies::OAuth2::CallbackError
  • over 2 years No redirect_to :back?
  • over 2 years Move mailers to apps
  • almost 3 years Application configuration double-executed
  • almost 3 years static files failed to serve automatically with multiple apps
  • almost 3 years Duplicate middlewares in the stack
  • almost 3 years --help options does not work correctly for some subcommands
  • almost 3 years Internationalization (I18n)
  • almost 3 years Hanami errors when a custom 404 page has been rendered by a middleware
  • over 3 years Initializers for container architecture
  • over 3 years Automatic Logging
hanami open pull requests (View All Pulls)
  • Implement full CSP 1.1 to enhance security [WIP]
  • Generate less strict hanami version on Gemfile
  • Introduce new convention for project/app naming
  • Fix model generation for camelcased app name
  • Dry generators + standardize error messages
  • Introducing hanami runner command
  • A catch all exception handler.
  • Change x_frame_options DENY to single quotes
  • Prepend routes after leading comments
  • Code reloading with entr
  • Load initializers in alphabetical order on any operation system
  • Namespace container
  • Remove simplecov
  • Destroy generated route, regardless of url param
  • [WIP] Fix container initializer loading
  • Require gems in bin/hanami file
  • WIP: Report rendering errors to exception notification services
  • Add notice to about SERVE_STATIC_ASSETS
  • Fix typos in API documentation
  • Fix usage of Mutex
  • [WIP] Add logger for all requests
  • Make simplecov return the correct coverage
  • Disable Rake::TestTask warnings in generated apps/containers
  • Set application to nil by default and throw error if arch is a container
  • Create format option for logger
  • Fix route mounting on testing environments
  • Test cases for hanami/hanami#528
  • [WIP] All tests passing on JRuby
  • `hanami new --help` does not fail
  • Allow generating an app into current folder, not under it
  • Don't duplicate middlewares in the stack
  • Generate command for secret token in production
  • Load assets configuration in development code reloading mode
  • Only run git-related commands if git available.
  • Mark tests as pending. Fixes issue 660
  • Lazily load the project when `hanami server` isn't used
  • Serve only existing assets with Rack::Static
  • Add create_table migration file to model generator
  • Generator template fix
  • Generate Application Layout spec
  • Actualize Hanami::Environment comments about .env file
  • Allow custom loggers
  • Log form submission parameters
  • Allow optional host parameter when mounting apps
  • Remove architecture flag from CLI and .hanamirc
  • Correctly removing migration file when model destroying
  • [Proof of Concept] Run only run specific app
  • Adding new feature: --api option to app generator
  • Look for require of ../apps/.*/application instead of ../lib/.*
  • Introduce Hanami.plugin to let plugins to configure Hanami project
  • Introduce configurable project Rack middleware stack
  • Revert #873 (adding better_errors gem)
  • Handle exceptions at the project level
  • raise error if config/environment.erb miss necessary environment valuable
  • Render 500 custom template if an exception happens in a view or template
  • Overwrite when generating files
  • Avoid using Hanami::Utils.reload! when code_reloading is disabled
  • WIP: Add minimal viable hanami app template
  • Generate new projects with `hanami-webconsole` gem
  • Provide stack trace when exception is caught
  • Require config/boot from spec helpers in new generated projects
  • [WIP] Colorize file generation
hanami list of languages used
Other projects in Ruby