Janko Marohnić
janko.io
Janko Marohnić
@janko.io
Senior Ruby engineer, father, vegan. Creator of Shrine, rodauth-rails and vim-test.
Reposted by Janko Marohnić
Trying something new in 2026: I'm going to post monthly updates about the OSS work I did.

Here's the first one: st0012.dev/updates/janu...
(Repost as I updated the slug after posting 😅)
January 2026
January was a busy month for RDoc, with a batch of improvements that align with my RDoc roadmap for 2026. I also published ruby-skills, a Claude Code plugin ...
st0012.dev
February 7, 2026 at 4:11 PM
Reposted by Janko Marohnić
Super honored to be selected for the Gem Fellowship 🙏

I’ll continue pushing Herb forward as we get closer to 1.0 as part of this grant!
February 4, 2026 at 4:51 AM
Herb and Cuprite/Ferrum are in there!
February 3, 2026 at 8:56 AM
Reposted by Janko Marohnić
I am working these days on a change to Zeitwerk that will remove a hack.

When I wrote the gem, autoloading had been brittle for more than a decade and I wanted to mimic the classic autoloader as much as possible for users' peace of mind.

But there was a corner case that had no clean solution.
January 29, 2026 at 8:40 AM
Reposted by Janko Marohnić
If you keep working on something, turns out eventually you may finish it. So it is with "Master Hotwire" book! I've finally finished it and it's available in Web, PDF and EPUB formats at masterhotwire.com

I started working on it a bit under 2 years ago. :)
Master Hotwire: Build Modern Web Apps with Rails Simplicity
“Master Hotwire” is structured to help you build a strong mental model of Hotwire. It combines explanations of functionality with hands-on coding. The book guides you through building a collaborative…
masterhotwire.com
January 27, 2026 at 11:01 AM
Reposted by Janko Marohnić
I built a Claude Code plugin that teaches it how to work with Ruby - picks the right version manager, reads the right docs, connects to Ruby LSP.

I think we will eventually have community maintained bridges between AI agents and the language ecosystem.
January 24, 2026 at 2:36 PM
Reposted by Janko Marohnić
LLMs automate typing, not thinking.

Mikayla Maki shares her mental model for working with agents, and how she puts it into practice:
zed.dev/blog/on-prog...
On Programming with Agents - Zed Blog
From the Zed Blog: Agents handle typing so we can focus on thinking.
zed.dev
January 23, 2026 at 6:15 PM
This was satisfying 😌

github.com/shrinerb/shr...
January 16, 2026 at 8:52 PM
Haml and Slim don't really hold up in the era of language servers.

In HTML+ERB I can have Tailwind utility completion, Stimulus attribute completion, all Ruby LSP features, linting & formatting.

With Haml/Slim I get none of that. The complexity of the language syntax probably makes it impossible.
January 13, 2026 at 9:38 PM
Reposted by Janko Marohnić
New blog post: Don't fall into the anti-AI hype.

antirez.com/news/158
January 11, 2026 at 10:19 AM
Reposted by Janko Marohnić
Adding in-app purchases to a Hotwire Native app is painful.

StoreKit. Play Billing. Two platforms, two languages, two approaches. Then webhooks from both stores. Different formats, different signing. 😫

So I fixed it.
January 8, 2026 at 4:16 PM
Reposted by Janko Marohnić
While tailwind usage is up, website visits are down in the age of LLMs and they've had to fire 75% of the eng team

Tailwind is one of the most successful projects in the space, this is a bit sad
feat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com
Add /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption. Extract text from MDX files, removing J...
github.com
January 7, 2026 at 7:53 PM
Reposted by Janko Marohnić
I had fun prototyping a TUI for running and monitoring Procfile-based applications, similar to `foreman` or `overmind`, but built with the Charm Ruby libraries ✨
January 2, 2026 at 7:23 PM
Reposted by Janko Marohnić
I'm trying something new… need to add in-app purchases to your Hotwire Native app?

👉 purchasekit.dev
December 31, 2025 at 9:14 PM
Reposted by Janko Marohnić
Alongside the Ruby 4.0 release last week, I published charm-ruby over Christmas, bringing @charm.land's excellent terminal UI libraries to Ruby.

A full TUI framework, reusable components, styled output, forms, markdown rendering, spinners, charts, and a lot more!

Demos below ⬇️
December 30, 2025 at 5:40 AM
Reposted by Janko Marohnić
If you're going to write semantic CSS classes in 2025, don't call them .btn or .card.

Use a ui-* prefix: ui-button, ui-input, ui-badge.

Here's why naming matters more than you think...
December 25, 2025 at 11:02 AM
Reposted by Janko Marohnić
Just published this year's version of my "Ruby Changes" project: a full annotated changelog for Ruby 4.0:

rubyreferences.github.io/rubychanges/...

Goals: Full, comprehensive, concise, well-structured.
Examples, explanations of reasons, links to docs, all of it.
Ruby 4.0 changes
Ruby 4.0 full and annotated changelog
rubyreferences.github.io
December 26, 2025 at 8:59 AM
Well, my wish came true 🙌

www.writesoftwarewell.com/rails-combin...
December 23, 2025 at 9:23 PM
Reposted by Janko Marohnić
#rubyrelease30th I’d like to introduce Aliki, RDoc and docs.ruby-lang.org’s new theme 😄
railsatscale.com/2025-12-22-i...
Introducing Aliki: A Modern Theme for Ruby Documentation
Ruby’s documentation gets a fresh look. Starting with RDoc 7.0.0, Aliki is the new default theme—bringing dark mode, better search, and a modern layout to docs.ruby-lang.org and gem documentation.
railsatscale.com
December 23, 2025 at 4:47 PM
Reposted by Janko Marohnić
ActiveRecord has become practically synonymous with SQL database access in Ruby, but it's not the only way to talk to SQL stores. Today we'll explore Sequel, a wonderfully rich tool for interacting with many different SQL RDBMSes.
graceful.dev/courses/tapa...
Sequel
ActiveRecord has become practically synonymous with SQL database access in Ruby, but it's not the only way to talk to SQL stores. Today we'll explore Sequel, a wonderfully rich tool for interacting with many different SQL RDBMSes.
graceful.dev
December 23, 2025 at 6:00 PM
It's disappointing that auto-insertion of "end" after typing "def foo<enter>" isn't implementable via LSP "on type formatting".

Ruby LSP makes it work with VSCode, but it relies on snippet syntax to bring the cursor back inside the method body, which isn't in the spec. So, it doesn't work in Zed.
December 17, 2025 at 8:59 PM
Reposted by Janko Marohnić
🌶️ #nobuild is a solo developer philosophy masquerading as universal advice.

The append-only CSS problem that drove teams to Tailwind? Nobuild doesn't solve it. It ignores it.

Let me make the case for #lowbuild instead...
December 15, 2025 at 8:32 PM
Wanted to write an article, but can't install Jekyll anymore because EventMachine fails to build native extensions.

I guess it's time to migrate to Bridgetown 🙂
December 12, 2025 at 11:20 PM
Reposted by Janko Marohnić
Have you noticed how great the Ruby docs looks like for the master?
docs.ruby-lang.org/en/master/

Thank you @st0012.dev and the entire team contributing to RDoc for these improvements.
December 9, 2025 at 8:30 AM