CINXE.COM
Hanami | Blog
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="description" content="Hanami - A flexible framework for maintainable Ruby apps" /> <meta name="keywords" content="hanami,hanamirb,lotus,lotusrb,web,framework,ruby,open source,oss,os,software,free,free software,architecture,fast,lightweight,testing,tdd,bdd,test driven development,behaviour driven development,full stack,mvc,model view object,pattern,patterns,design patterns,oop,object oriented programming,testability,http,https,routing,router,http router,restful,resource,resources,convention,controller,models,repository,query,sql,interactors,two-step view,view,template,presenters,render,rendering,helpers,erb,haml,tilt,json,xml,yaml,yml,framwork,framewrok,riby,free sowftare"/> <meta name="author" content="Tim Riley"> <meta content="width=device-width, initial-scale=1.0" name="viewport" /> <link href="/atom.xml" rel="alternate" title="Hanami" type="application/atom+xml" /> <link href="/images/favicon.ico" rel="icon" type="image/ico" /> <title>Hanami | Blog</title> <link href="//fonts.googleapis.com/css?family=Roboto:100,300,400,700" rel="stylesheet"> <link href="//fonts.googleapis.com/css?family=Overpass:200,300,400,700" rel="stylesheet"> <link href="/stylesheets/toolkit-minimal.css" rel="stylesheet" /> <link href="/stylesheets/search.css" rel="stylesheet" /> <link href="/stylesheets/application-minimal.css" rel="stylesheet" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" /> <script async defer src="https://buttons.github.io/buttons.js"></script> </head> <body> <nav id="navigation" class="navbar navbar-default navbar-static-top navbar-padded app-navbar"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed p-x-0" data-toggle="collapse" data-target="#navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand text-uppercase" href="/"> <span>Hanami</span> </a> </div> <div class="navbar-collapse collapse" id="navbar-collapse"> <ul class="nav navbar-nav navbar-right text-uppercase"> <li> <a href="https://guides.hanamirb.org" target="_blank">Guides</a> </li> <li> <a href="https://docs.hanamirb.org" target="_blank">Docs</a> </li> <li> <a href="/community">Community</a> </li> <li> <a href="https://github.com/hanami" target="_blank">Source Code</a> </li> <li> <a href="/blog">Blog</a> </li> <li> <a href="/donate"><strong>馃挏 Become a Sponsor</strong></a> </li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div id="hanami2" class="text-xs-center"> <div class="container"> <div class="row"> We have just released <strong>Hanami 2.2</strong>! Read the <a href="/blog/2024/11/05/hanami-220/">announcement</a>. </div> </div> </div> <div class="container"> <div class="container container-blog"> <div class="block block-inverse text-center"> <div class="block-foreground"> <h1 class="block-title">Blog</h1> </div> <div class="block-background"> <img src="/images/blog-header.jpg"> </div> </div> <div class="row"> <div class="col-xs-12 col-md-10 col-md-offset-1"> <h2><a href="/blog/2025/02/21/find-us-on-discord/">Find us on Discord! (And other places, too)</a></h2> <h4>Posted by <strong class="author">Tim Riley</strong> on <em>February 21, 2025</em></h4> <p class="summary">Chat with us and more!</p> <a href="/blog/2025/02/21/find-us-on-discord/" class="read_more">Read more...</a> <hr> </div> </div> <div class="row"> <div class="col-xs-12 col-md-10 col-md-offset-1"> <h2><a href="/blog/2024/12/12/a-new-chapter-for-dry-rb-rom/">A new chapter for dry-rb and ROM</a></h2> <h4>Posted by <strong class="author">Tim Riley</strong> on <em>December 12, 2024</em></h4> <p class="summary"></p> <a href="/blog/2024/12/12/a-new-chapter-for-dry-rb-rom/" class="read_more">Read more...</a> <hr> </div> </div> <div class="row"> <div class="col-xs-12 col-md-10 col-md-offset-1"> <h2><a href="/blog/2024/12/10/state-of-hanami-december-2024/">State of Hanami, December 2024</a></h2> <h4>Posted by <strong class="author">Tim Riley</strong> on <em>December 10, 2024</em></h4> <p class="summary">Everything we did this year, and what we鈥檙e looking forward to in the next. A new kind of update!</p> <a href="/blog/2024/12/10/state-of-hanami-december-2024/" class="read_more">Read more...</a> <hr> </div> </div> <div class="row"> <div class="col-xs-12 col-md-10 col-md-offset-1"> <h2><a href="/blog/2024/11/05/hanami-220/">Hanami 2.2: Persistence pays off</a></h2> <h4>Posted by <strong class="author">Tim Riley</strong> on <em>November 05, 2024</em></h4> <p class="summary">With our new database layer and operations, the Hanami 2 vision is complete!</p> <a href="/blog/2024/11/05/hanami-220/" class="read_more">Read more...</a> <hr> </div> </div> <div class="row"> <div class="col-xs-12 col-md-10 col-md-offset-1"> <h2><a href="/blog/2024/10/29/hanami-220rc1/">Hanami 2.2.0.rc1</a></h2> <h4>Posted by <strong class="author">Tim Riley</strong> on <em>October 29, 2024</em></h4> <p class="summary">Last stop before 2.2.0.</p> <a href="/blog/2024/10/29/hanami-220rc1/" class="read_more">Read more...</a> <hr> </div> </div> <div class="col-xs-12 col-md-10 col-md-offset-1"> <ul class="pager"> <li class="disabled"> <span>← Previous</span> </li> <li class="false"> <a href="/blog/page/2/">Next →</a> </li> </ul> </div> </div> </div> <div class="block app-block-footer"> <div class="container"> <div class="row"> <div class="col-sm-2 m-b"> <ul class="list-unstyled list-spaced"> <li><h6 class="text-uppercase">Project</h6></li> <li><a href="https://github.com/hanami" target="_blank">GitHub</a></li> <li><a href="https://rubygems.org/gems/hanami" target="_blank">Rubygems</a></li> <li><a href="/status">Gems Status</a></li> <li><a href="/team">Team</a></li> <li><a href="/security">Security</a></li> <li><a href="/privacy">Privacy Policy</a></li> <li><a href="https://guides.hanamirb.org/" target="_blank">Guides</a></li> <li><a href="https://docs.hanamirb.org/" target="_blank">Docs</a></li> </ul> </div> <div class="col-sm-2 m-b"> <ul class="list-unstyled list-spaced"> <li><h6 class="text-uppercase">Community</h6></li> <li><a href="/community#code-of-conduct">Code of Conduct</a></li> <li><a href="https://discourse.hanamirb.org" target="_blank">Forum</a></li> <li><a href="https://discord.gg/KFCxDmk3JQ" target="_blank">Chat</a></li> <li><a href="https://ruby.social/@hanami" rel="me" target="_blank">Mastodon</a></li> <li><a href="https://bsky.app/profile/hanamirb.org" target="_blank">Bluesky</a></li> <li><a href="https://stackoverflow.com/questions/tagged/hanami" target="_blank">StackOverflow</a></li> </ul> </div> <div class="col-sm-2 m-b"> <ul class="list-unstyled list-spaced"> </ul> </div> <div class="col-sm-6"> <h6 class="text-uppercase">About</h6> <p> © 2014-2025 Hanami Team.<br> Released under the <a href="https://opensource.org/licenses/MIT" target="_blank">MIT License</a>. <br><br> This project was formerly known as <strong>Lotus</strong>. </p> <a class="github-button" href="https://github.com/hanami/hanami" data-size="large" data-show-count="true" aria-label="Star hanami/hanami on GitHub">Star</a> </div> </div> </div> </div> <script src="/javascripts/jquery.min.js" type="text/javascript"></script> <script src="/javascripts/toolkit.js" type="text/javascript"></script> <script src="/javascripts/application.js" type="text/javascript"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-47369640-1', 'hanamirb.org'); ga('send', 'pageview'); </script> </body> </html>