<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: cllns_ruby</title><link>https://news.ycombinator.com/user?id=cllns_ruby</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 03 Jul 2026 06:42:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cllns_ruby" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Sorry to hear about that. We definitely can't protect developers from themselves. Over-engineering is definitely a risk to be aware of and guarded against. We provide powerful tools that can help your codebase, but they can also be misused.<p>I'm confident you've also ran into large messy Rails apps too :)</p>
]]></description><pubDate>Wed, 01 Jul 2026 23:47:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48754629</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48754629</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48754629</guid></item><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Hanami's DB layer was completely rewritten for Hanami 2 (based on Rom, and we've since merged teams), so you should try doing these again!<p>Rom has some other advantages, like not needing a 1-to-1 mapping between tables/columns to models/attributes. For example, you could have a `users` table that maps to Profile and Account structs. Profile could include a `bio` whereas Account version could have the email, ensuring data doesn't leak beyond what's needed. They're two different use-cases for the same data, so should be modeled separately. This also lets you work with DB's where you don't control the schema (owned by other teams or legacy DB's): you can map the data into the structure you need for your app, instead of carrying around irrelevant attributes.</p>
]]></description><pubDate>Wed, 01 Jul 2026 23:44:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48754604</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48754604</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48754604</guid></item><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Taking a workshop at Rocky Mountain Ruby on "Component Based Rails Applications" with Stephan Hagemann (the author of that book) was my introduction to all of this stuff! I found Hanami (then called Lotus) shortly after and I never looked back.<p>I tried out Rails Engines on a couple projects, with such high hopes and ran into issue after issue. Sure it's theoretically possible to build whatever you want with Rails, but in practice it's infeasible. Some people have experimented with arbitrarily nesting Hanami slices too and had success. It's not something we're focusing efforts on because it's rather niche and get inherently complicated but it's possible.<p>Modularity is such an important part of large software projects and Rails doesn't give you any tools for it (and Ruby doesn't help either). Packwerk was an attempt to constraint Rails, with limited success: <a href="https://shopify.engineering/a-packwerk-retrospective" rel="nofollow">https://shopify.engineering/a-packwerk-retrospective</a>.</p>
]]></description><pubDate>Wed, 01 Jul 2026 23:34:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48754528</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48754528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48754528</guid></item><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Thanks!<p>Hanami doesn't have any specific Inertia or Svelte specific integrations, but our view layer (and assets layer) is very flexible so it's certainly possible. It's worth investigating. If you try it out, let us know what you learn on our forum <a href="https://discourse.hanakai.org/" rel="nofollow">https://discourse.hanakai.org/</a></p>
]]></description><pubDate>Wed, 01 Jul 2026 22:46:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48754140</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48754140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48754140</guid></item><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Definitely on the roadmap! I've also run into some rough edges with Rom and we want to fix those all up in a new version. We were just prioritizing Hanami 3 for the medium term, but hopefully we can focus efforts on Rom soon.</p>
]]></description><pubDate>Wed, 01 Jul 2026 22:08:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48753780</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48753780</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48753780</guid></item><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Completely agree! I did most of this work and I wanted to add before-and-after benchmarking but I got busy. I have an in-progress (private for now) implementation of the Medium clone RealWorld [1] project. I want to make that public with some benchmarks, then write up a modern implementation in Rails so we can compare performance. It will also help people compare our code side-by-side, to translate concepts they know from Rails into our approach in Hanami.<p>[1]: <a href="https://github.com/realworld-apps/realworld" rel="nofollow">https://github.com/realworld-apps/realworld</a></p>
]]></description><pubDate>Wed, 01 Jul 2026 22:07:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48753755</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48753755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48753755</guid></item><item><title><![CDATA[New comment by cllns_ruby in "Hanami 3.0: In Full Bloom"]]></title><description><![CDATA[
<p>Hanami core team-member here :)<p>We re-did our homepage recently, and we should make these things clearer. They're legitimate concerns and questions. We agree you don't have to write bad code in Rails, and we don't pretend that we can prevent bad code in Hanami. Instead we give application builders the tools to architect their applications in the way they desire. Really what we're doing is building an *option* for building Ruby apps that may speak better to some people. If you're completely happy with Rails then there's no reason to change. Still, you may learn something that'll help you build Rails apps by seeing how we do things. Additionally, it's completely modular: you can pull parts of Hanami into a Rails app. The most popular one people pull into Rails apps is dry-validation [1]<p>Some concrete differences:<p>- We have small, simple API's. Rails core classes have <i>hundreds</i> of methods for convenience, not to mention dozens of core extensions (a.k.a. monkey patches) to base Ruby classes. We prefer small, narrowly focused classes over large ones with many responsibilities.<p>- We have a dependency injection framework dry-system [2] included by default. This lets you write `include Deps["repos.article_repo"] to get an automatically instantiated (and now memoized!) `Repos::ArticleRepo.new` within your class. This makes dependencies trivial to stub out, and it also declares your dependencies in a single place, instead of littering constants throughout your code.<p>- We have sub-applications called Slices. Similar to Rails Engines but well... good, since they're a first-class concept that we encourage. Importantly, they're independently deployable. You can export and import components across slices, too. We can't tell you how to slice up your application, but we give you the tools to decide for yourself.<p>[1]: <a href="https://hanakai.org/learn/dry/dry-validation" rel="nofollow">https://hanakai.org/learn/dry/dry-validation</a><p>[2]: <a href="https://hanakai.org/learn/dry/dry-system" rel="nofollow">https://hanakai.org/learn/dry/dry-system</a></p>
]]></description><pubDate>Wed, 01 Jul 2026 22:04:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48753723</link><dc:creator>cllns_ruby</dc:creator><comments>https://news.ycombinator.com/item?id=48753723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48753723</guid></item></channel></rss>