# Latest

**URL:** https://discourse.hanakai.org/latest.md

[Latest](https://discourse.hanakai.org/latest.md) · [Categories](https://discourse.hanakai.org/categories.md)

---

## [Code of Conduct](https://discourse.hanakai.org/t/code-of-conduct/51)

<div class="topic-metadata">

**Author:** [@jodosha](https://discourse.hanakai.org/u/jodosha)\
**Replies:** 2\
**Last updated:** [February 19, 2015, 8:54am UTC](https://discourse.hanakai.org/t/code-of-conduct/51 "2015-02-19T08:54:19Z")

</div>

You can find our code of conduct on our community page. See below for a copy of the text. Contributor Covenant Code of Conduct Our Pledge We pledge to make our community welcoming, safe, and equitable for all. We are…

---

## [Hanami, Why?: Introductions](https://discourse.hanakai.org/t/hanami-why-introductions/1556)

<div class="topic-metadata">

**Author:** [@aaronmallen](https://discourse.hanakai.org/u/aaronmallen)\
**Replies:** 0\
**Last updated:** [September 30, 2026, 3:54pm UTC](https://discourse.hanakai.org/t/hanami-why-introductions/1556 "2026-09-30T15:54:33Z")

</div>

---

## [Proposal: public extension points for dry-cli](https://discourse.hanakai.org/t/proposal-public-extension-points-for-dry-cli/1553)

<div class="topic-metadata">

**Author:** [@kigster](https://discourse.hanakai.org/u/kigster)\
**Replies:** 4\
**Last updated:** [September 30, 2026, 12:58am UTC](https://discourse.hanakai.org/t/proposal-public-extension-points-for-dry-cli/1553 "2026-09-30T00:58:24Z")

</div>

Greetings, folks — first-time caller, long-time listener :slight\_smile: Quick intro before I crack that proposal nut. I’ve been writing Ruby for about twenty years, and I’ve been a fan of dry-rb for about ten years, but…

---

## [Tim’s weeknotes](https://discourse.hanakai.org/t/tim-s-weeknotes/1431)

<div class="topic-metadata">

**Author:** [@timriley](https://discourse.hanakai.org/u/timriley)\
**Replies:** 21\
**Last updated:** [September 28, 2026, 2:23pm UTC](https://discourse.hanakai.org/t/tim-s-weeknotes/1431 "2026-09-28T14:23:20Z")

</div>

For the last six months I’ve been writing weeknotes about my work on Hanami and its ecosystem. I figured it’s time I shared them here in the forum too! I’ll use this topic to link to each weeknotes as I publish them. Fe…

---

## [Try not capturing an Net:HTTP#post error](https://discourse.hanakai.org/t/try-not-capturing-an-net-http-post-error/1550)

<div class="topic-metadata">

**Author:** [@esparta](https://discourse.hanakai.org/u/esparta)\
**Replies:** 2\
**Last updated:** [September 26, 2026, 12:07am UTC](https://discourse.hanakai.org/t/try-not-capturing-an-net-http-post-error/1550 "2026-09-26T00:07:12Z")

</div>

Hi I have a very tiny wrapper around a internal tool, communicating via HTTP def post(url:) payload = { url: url }.to\_json …

---

## [phlex-hanami v0.2.0](https://discourse.hanakai.org/t/phlex-hanami-v0-2-0/1532)

<div class="topic-metadata">

**Author:** [@aaronmallen](https://discourse.hanakai.org/u/aaronmallen)\
**Replies:** 1\
**Last updated:** [September 25, 2026, 5:49pm UTC](https://discourse.hanakai.org/t/phlex-hanami-v0-2-0/1532 "2026-09-25T17:49:54Z")

</div>

Hello Hanakai!! I have released the first stable version of phlex-hanami since taking the gem over from the previous maintainer Stephann. The gem allows you to use phlex views as if they were normal Hanami views. I’d re…

---

## [Tachiban 2.1.0 released](https://discourse.hanakai.org/t/tachiban-2-1-0-released/1549)

<div class="topic-metadata">

**Author:** [@sebastjan\_hribar](https://discourse.hanakai.org/u/sebastjan_hribar)\
**Replies:** 0\
**Last updated:** [September 22, 2026, 4:17am UTC](https://discourse.hanakai.org/t/tachiban-2-1-0-released/1549 "2026-09-22T04:17:09Z")

</div>

Hi, Tachiban 2.1.0 is available. I’ve implemented a few security fixes, enhanced the password reset process and fixed the custom values overriding bug. Details from the change log: Security fixes: authenticated? no…

---

## [False positive spam detection on Dry forum for post about dry-cli.tools](https://discourse.hanakai.org/t/false-positive-spam-detection-on-dry-forum-for-post-about-dry-cli-tools/1536)

<div class="topic-metadata">

**Author:** [@kigster](https://discourse.hanakai.org/u/kigster)\
**Replies:** 5\
**Last updated:** [September 19, 2026, 1:10am UTC](https://discourse.hanakai.org/t/false-positive-spam-detection-on-dry-forum-for-post-about-dry-cli-tools/1536 "2026-09-19T01:10:48Z")

</div>

Any idea why? I think there are many ways to participate in a community, and extending an existing gem is perhaps one of the best forms of flattery and respect. Being silenced for merely announcing gem, which provides …

---

## [dry-rails 0.8 released](https://discourse.hanakai.org/t/dry-rails-0-8-released/1535)

<div class="topic-metadata">

**Author:** [@hanakai-bot](https://discourse.hanakai.org/u/hanakai-bot)\
**Replies:** 0\
**Last updated:** [September 15, 2026, 11:35pm UTC](https://discourse.hanakai.org/t/dry-rails-0-8-released/1535 "2026-09-15T23:35:25Z")

</div>

dry-rails 0.8.0 Added Test dummy app for Rails 8. (@citizen428 in #67) Changed Set minimum Ruby version to 3.3. (@alassek) Deprecated Removed Test dummy apps for Rails 5 and 6. (@citizen428 in #67) Fixed Security C…

---

## [Bilingual sites with Hanami](https://discourse.hanakai.org/t/bilingual-sites-with-hanami/1534)

<div class="topic-metadata">

**Author:** [@evenreven](https://discourse.hanakai.org/u/evenreven)\
**Replies:** 0\
**Last updated:** [September 14, 2026, 11:24am UTC](https://discourse.hanakai.org/t/bilingual-sites-with-hanami/1534 "2026-09-14T11:24:19Z")

</div>

The Rails application I want to rewrite in Hanami (inshallah) is bilingual and uses Mobility for translated database content. Since there’s no ROM plugin for Mobility, and I wouldn’t know how to write one (and sadly can’…

---

## [dry-monads 1.11 released](https://discourse.hanakai.org/t/dry-monads-1-11-released/1533)

<div class="topic-metadata">

**Author:** [@hanakai-bot](https://discourse.hanakai.org/u/hanakai-bot)\
**Replies:** 0\
**Last updated:** [September 11, 2026, 3:07am UTC](https://discourse.hanakai.org/t/dry-monads-1-11-released/1533 "2026-09-11T03:07:59Z")

</div>

dry-monads 1.11.0 Added New :json extension, which builds a JSON::Coder that reads and writes monads. It needs the json gem 2.15.0 or later. (@timriley in #209) Dry::Monads.load\_extensions(:json) coder = Dry::Monads.…

---

## [Hanami 3.0 released](https://discourse.hanakai.org/t/hanami-3-0-released/1496)

<div class="topic-metadata">

**Author:** [@hanakai-bot](https://discourse.hanakai.org/u/hanakai-bot)\
**Replies:** 19\
**Last updated:** [August 21, 2026, 3:57am UTC](https://discourse.hanakai.org/t/hanami-3-0-released/1496 "2026-08-21T03:57:42Z")

</div>

hanami 3.0 Added Integrate hanami-mailer gem when bundled. (@timriley in #1597, #1600, #1606, #1609) Load templates from templates/mailers/. Register a "mailers.delivery\_method", which is either an SMTP mailer when SM…

---

## [Hanami Settings Stores v0.1.1](https://discourse.hanakai.org/t/hanami-settings-stores-v0-1-1/1530)

<div class="topic-metadata">

**Author:** [@aaronmallen](https://discourse.hanakai.org/u/aaronmallen)\
**Replies:** 0\
**Last updated:** [August 20, 2026, 3:32pm UTC](https://discourse.hanakai.org/t/hanami-settings-stores-v0-1-1/1530 "2026-08-20T15:32:43Z")

</div>

I have pushed v0.1.1 of hanami-settings-stores with added support for json, toml, and yaml configuration files. This would allow you to do something like this: # config/app.rb require "hanami" require "hanami-settings-…

---

## [Sponsor Hanakai in 2026!](https://discourse.hanakai.org/t/sponsor-hanakai-in-2026/1529)

<div class="topic-metadata">

**Author:** [@timriley](https://discourse.hanakai.org/u/timriley)\
**Replies:** 0\
**Last updated:** [August 19, 2026, 1:36pm UTC](https://discourse.hanakai.org/t/sponsor-hanakai-in-2026/1529 "2026-08-19T13:36:31Z")

</div>

A year after launching our sponsorship program, we’re back with our 2026 sponsorship drive! Our stretch goal for this year: raise enough to offer an honorarium to our maintainer team. Hanakai is about community, and thi…

---

## [convert empty params to nil](https://discourse.hanakai.org/t/convert-empty-params-to-nil/1525)

<div class="topic-metadata">

**Author:** [@ririya](https://discourse.hanakai.org/u/ririya)\
**Replies:** 5\
**Last updated:** [August 14, 2026, 6:56pm UTC](https://discourse.hanakai.org/t/convert-empty-params-to-nil/1525 "2026-08-14T18:56:31Z")

</div>

what’s the best way to convert a request parameter to nil if it’s empty? like if I have an action which is handling form input and I want to make sure every empty string is turned into a nil before attempting to store in…

---

## [NewRelic APM on Hanami 2](https://discourse.hanakai.org/t/newrelic-apm-on-hanami-2/872)

<div class="topic-metadata">

**Author:** [@alassek](https://discourse.hanakai.org/u/alassek)\
**Replies:** 10\
**Last updated:** [August 14, 2026, 5:27pm UTC](https://discourse.hanakai.org/t/newrelic-apm-on-hanami-2/872 "2026-08-14T17:27:27Z")

</div>

I spent some time this week implementing New Relic for Hanami 2. I would not recommend it, unless New Relic decides to officially support the framework, for reasons I will get into. I do not have the luxury of choosing a…

---

## [Release threads](https://discourse.hanakai.org/t/release-threads/1503)

<div class="topic-metadata">

**Author:** [@katafrakt](https://discourse.hanakai.org/u/katafrakt)\
**Replies:** 5\
**Last updated:** [August 14, 2026, 6:09am UTC](https://discourse.hanakai.org/t/release-threads/1503 "2026-08-14T06:09:46Z")

</div>

Having these release threads is nice, but to be honest sometimes they feel quite noisy to me. For example, currently out of 20 most recently updates threads, 16 are release ones. I was thinking that maybe it would be bet…

---

## [opinions on RuboCop](https://discourse.hanakai.org/t/opinions-on-rubocop/1512)

<div class="topic-metadata">

**Author:** [@ririya](https://discourse.hanakai.org/u/ririya)\
**Replies:** 2\
**Last updated:** [August 5, 2026, 5:55am UTC](https://discourse.hanakai.org/t/opinions-on-rubocop/1512 "2026-08-05T05:55:15Z")

</div>

as a Ruby noobie I’m still trying to figure out best practices and such, so I was wondering what people’s opinions were on RuboCop. I’m generally a fan of linting and static analysis, but I know it’s a divisive topic. I…

---

## [accessing files from the public directory](https://discourse.hanakai.org/t/accessing-files-from-the-public-directory/1511)

<div class="topic-metadata">

**Author:** [@ririya](https://discourse.hanakai.org/u/ririya)\
**Replies:** 1\
**Last updated:** [August 3, 2026, 9:09pm UTC](https://discourse.hanakai.org/t/accessing-files-from-the-public-directory/1511 "2026-08-03T21:09:43Z")

</div>

if I put a test.jpg file into the public/ directory, should I just be able to use it in my template with \<img src="/test.jpg"\>? I’ve done it in my project, but going directly to the URL results in a 404 No route found f…

---

## [Handling file uploads](https://discourse.hanakai.org/t/handling-file-uploads/1507)

<div class="topic-metadata">

**Author:** [@ririya](https://discourse.hanakai.org/u/ririya)\
**Replies:** 5\
**Last updated:** [August 3, 2026, 6:09pm UTC](https://discourse.hanakai.org/t/handling-file-uploads/1507 "2026-08-03T18:09:26Z")

</div>

I’m trying to add file uploads to my project and I’m a bit lost. I’ve gotten as far as receiving a Tempfile in my action, but I’m wary of doing too much manual work if there is a better way. I’ve seen Shrine suggested, b…

---

## [Where is not null](https://discourse.hanakai.org/t/where-is-not-null/1506)

<div class="topic-metadata">

**Author:** [@ririya](https://discourse.hanakai.org/u/ririya)\
**Replies:** 4\
**Last updated:** [July 29, 2026, 11:09pm UTC](https://discourse.hanakai.org/t/where-is-not-null/1506 "2026-07-29T23:09:21Z")

</div>

Hi, I’m quite new to Hanami and to Ruby in general so please forgive me if this is a stupid question: How do I express the SQL WHERE column\_name IS NOT NULL in Rom? I’ve tried where(column\_name: !nil) and where { column…

---

## [about \`dry-system\` and \`Ruby::Box\`](https://discourse.hanakai.org/t/about-dry-system-and-ruby-box/1505)

<div class="topic-metadata">

**Author:** [@nachokb](https://discourse.hanakai.org/u/nachokb)\
**Replies:** 1\
**Last updated:** [July 26, 2026, 2:28pm UTC](https://discourse.hanakai.org/t/about-dry-system-and-ruby-box/1505 "2026-07-26T14:28:54Z")

</div>

Ruby 4.0’s introduction of \`Ruby::Box\` experimentally means that we will have (eventually) some mechanism of isolating constants; this could be used as part (a low-level part) of a dependency injection system. Matz’s ra…

---

## [Namespace issue when generating actions that match the app name](https://discourse.hanakai.org/t/namespace-issue-when-generating-actions-that-match-the-app-name/1501)

<div class="topic-metadata">

**Author:** [@mddelk](https://discourse.hanakai.org/u/mddelk)\
**Replies:** 5\
**Last updated:** [July 18, 2026, 12:58pm UTC](https://discourse.hanakai.org/t/namespace-issue-when-generating-actions-that-match-the-app-name/1501 "2026-07-18T12:58:30Z")

</div>

If you generate an action with the same resource name as the app, you end up having to manually modify the generated files to prevent namespace issues. e.g, % hanami new books % cd books % bundle exec rspec Then gener…

---

## [Dry Schema/Validation: Array of multiple custom types -- is it possible?](https://discourse.hanakai.org/t/dry-schema-validation-array-of-multiple-custom-types-is-it-possible/1504)

<div class="topic-metadata">

**Author:** [@superchilled](https://discourse.hanakai.org/u/superchilled)\
**Replies:** 2\
**Last updated:** [July 11, 2026, 5:11pm UTC](https://discourse.hanakai.org/t/dry-schema-validation-array-of-multiple-custom-types-is-it-possible/1504 "2026-07-11T17:11:38Z")

</div>

Hi there. I’m pretty new to the Dry set of libraries (have been exploring the docs/playing around with it during the last few days and started on a basic POC). Just to provide some background to my use-case, I maintain …

---

## [Proposal: Add a \`hanami test\` command](https://discourse.hanakai.org/t/proposal-add-a-hanami-test-command/970)

<div class="topic-metadata">

**Author:** [@cllns](https://discourse.hanakai.org/u/cllns)\
**Replies:** 4\
**Last updated:** [July 7, 2026, 6:21pm UTC](https://discourse.hanakai.org/t/proposal-add-a-hanami-test-command/970 "2026-07-07T18:21:09Z")

</div>

I propose we add hanami test as a command to hanami/hanami. We have rake now, but I think this is a good nice-to-have. I’m willing to commit to building it, once we come to consensus on the requirements. Rationale This…

---

## [Hanami 3.0: In full bloom](https://discourse.hanakai.org/t/hanami-3-0-in-full-bloom/1497)

<div class="topic-metadata">

**Author:** [@timriley](https://discourse.hanakai.org/u/timriley)\
**Replies:** 0\
**Last updated:** [July 1, 2026, 2:07am UTC](https://discourse.hanakai.org/t/hanami-3-0-in-full-bloom/1497 "2026-07-01T02:07:36Z")

</div>

From the very beginning we set out to make Hanami a different kind of Ruby framework: clear, modular, and built to grow. Today it comes into full bloom. We’re thrilled to share Hanami 3.0 with you! This release rounds o…

---

## [Routing subdomains to a slice](https://discourse.hanakai.org/t/routing-subdomains-to-a-slice/922)

<div class="topic-metadata">

**Author:** [@wout](https://discourse.hanakai.org/u/wout)\
**Replies:** 5\
**Last updated:** [June 24, 2026, 6:02am UTC](https://discourse.hanakai.org/t/routing-subdomains-to-a-slice/922 "2026-06-24T06:02:31Z")

</div>

I’m building a multi-tenant app where users have their own space on a subdomain or possibly a custom domain name. The host option seems to be gone in Hanami 2.x. How can I route subdomains (\*.mydomain.com) to a specific …

---

## [Help us test the Hanami 3.0 release candidate](https://discourse.hanakai.org/t/help-us-test-the-hanami-3-0-release-candidate/1482)

<div class="topic-metadata">

**Author:** [@timriley](https://discourse.hanakai.org/u/timriley)\
**Replies:** 13\
**Last updated:** [June 22, 2026, 10:54pm UTC](https://discourse.hanakai.org/t/help-us-test-the-hanami-3-0-release-candidate/1482 "2026-06-22T22:54:55Z")

</div>

Today we’re sharing the release candidate for Hanami 3.0, feature-complete and ready for testing. We’d love your help to give it a good workout before our final release—which, all going well, will be in just a couple of …

---

## [Previewing mailers in Hanami 3.0](https://discourse.hanakai.org/t/previewing-mailers-in-hanami-3-0/1462)

<div class="topic-metadata">

**Author:** [@timriley](https://discourse.hanakai.org/u/timriley)\
**Replies:** 5\
**Last updated:** [June 21, 2026, 1:04pm UTC](https://discourse.hanakai.org/t/previewing-mailers-in-hanami-3-0/1462 "2026-06-21T13:04:42Z")

</div>

Our Hanami 3.0 release is coming soon (a release candidate in a matter of weeks), and one of the big new features is a rebuilt hanami-mailer gem. Here I’ll outline how mailers will integrate into Hanami apps, so that yo…

---

## [Customize 'schema\_migrations' table name on a gateway.](https://discourse.hanakai.org/t/customize-schema-migrations-table-name-on-a-gateway/1463)

<div class="topic-metadata">

**Author:** [@FranckP](https://discourse.hanakai.org/u/FranckP)\
**Replies:** 7\
**Last updated:** [June 12, 2026, 7:46am UTC](https://discourse.hanakai.org/t/customize-schema-migrations-table-name-on-a-gateway/1463 "2026-06-12T07:46:14Z")

</div>

Hello there, I try to have rodauth working with my Hanami2.3 web app. One of rodauth nice feature is delegating password hash checking to a dedicated db user (the ‘password’ user). The app user can’t read these hashes. …

[Next page](https://discourse.hanakai.org/latest.md?page=1)
