Janko Marohnić

Janko Marohnić

@janko.io

Senior Ruby engineer, father, dancer. Creator of Shrine, rodauth-rails and vim-test.

269 followers124 following371 posts

Man, I felt invincible on today’s parkour training ✊🏃‍♂️ It gives me so much energy when I’m basically trying to be a ninja, compared to calisthenics where I’m mostly suffering just to gain extra muscle.

This really lowers the entry barrier 🙌 I can now skip Delta UI and have AI multiplayer in the Terminal or within Zed.

Zed@zed.dev

Claude Code is now multiplayer. Run `/delta share` in Claude Code, and your teammate joins in their own session with your full context and uncommitted work. You're both working on the same thread, backed by DeltaDB. delta.dev/blog/claude-...

Janko Marohnić reposted

I recommend this course, it took me from zero to building an internal library of web components. Web Components are one of those web concepts I was failing to quite grasp, and I feel like people are still discovering what to use them for. As a next step I'm looking at exploring elenajs.com/start/

Scott Jehl@scottjehl.com

Interested in setting aside the magical prompter and learning some web standards skills the old fashioned way? You can sign up for my online Web Components course for free until Oct 31 with the code markitzero. If you find it useful, please consider letting folks know! 🎃

Not sure how people are going to tell our voices apart in the audio version. That’s a “future us” problem 😄

I like how quickly Turbo dropping TypeScript became outdated. You don’t have to pay the cost of writing types anymore, and you get a more reliable library by default.

On that note, I was wondering how feasible it is to add RBS typing to my apps/libraries now. Like, if I don’t need to maintain *.rbs files myself anymore, or figure out how to make my code RBS-compatible, then do I get more safety with zero cost?

Janko Marohnić reposted

It’s crazy that Claude can build 3D visuals for the anatomy podcast I’m listening to. Everything’s synced with the audio. This is a great podcast called “Dissectible Me” by Sam Webster & Chris Summers. (As I’m not authorized by the author for re-adaptation so this is private for my own learning)

Janko Marohnić reposted

This is true. Fable 5 and now Opus 5.5 and Fable 5.1 reliably write code that’s as good as if not better than I would have written myself. And they do it 100 times faster. They’re not making “slop” or tech debt. They’re creating high quality tested, maintainable software that works.

Mike McQuaid@mikemcquaid.com

The average developer needs to accept that the latest tier of foundation models writes better code than them. Most developers who think they are above average are not. It’s time to learn how to be effective writing code with AI or be left behind.

Because I chose Vite over the DHH-blessed importmap/jsbundling-rails, I was now able to add a Vitest suite covering our Stimulus controllers. It seems like a good alternative to Capybara tests on Chrome, which are just slow. I’d gain nothing from #nobuild, while Vite only costs a < 1s build.

Janko Marohnić reposted

Great news, everyone! After a TON of work, #RuboCop 1.92 is out with many improvements that make it play better with AI agents (and many other fixes and enhancements). Read all about those here metaredux.com/posts/2026/1... Feedback welcome! Enjoy! #Ruby

metaredux.comRuboCop 1.92: Agents WelcomeRuboCop 1.92 is out! Last time I talked about the long road to 2.0. This time the theme is more down to earth, and probably closer to how a lot of you use RuboCop today - AI coding agents. These days ...

Janko Marohnić reposted

Hey, Rails peeps. Hot Cell is a suite of gems that helps you secure Active Storage against image library zero-days. I just released v1.0! mike.daless.io/posts/2026/1... Links to Rails World video and slides as well as the project repo and docs are in the post.

mike.daless.ioHot Cell v1.0: Securing Active Storage in the age of AIHot Cell v1.0 moves Active Storage's image, video, and PDF processing out of your Rails app and into a locked-down sidecar container.

I redesigned the admin dashboard at my new job – mainly upgrading from Bootstrap to Tabler - and I had to correct my agent often. Like, it tried to add a new responsive breakpoint, when a container query would be more suitable (within a modal). Surprise, surprise, it's still useful to know things.

Responsive design is much easier with AI. But I still have to tell my agent *how* to be responsive; what content is overflowing, which elements should wrap in which way, when a table should be horizontally scrollable etc. I cannot just say "make this responsive", I still need to provide my taste.

Janko Marohnić reposted

I'm honored and humbled to join the Rails core team. I'll be focusing on security and improvements to Active Storage and Action Text. Please reach out if you have thoughts on what would make your work easier.

The amount of new features and improvements is massive 😃 Besides the awesome reactivity features, I love the language server improvements, such as ability to follow render calls (I can close my ruby-lsp-rails PR now 😄) and listing render call sites for current partial 👌 github.com/marcoroth/he...

github.comRelease v0.11.0 · marcoroth/herbHerb v0.11 Herb v0.11 ships alongside ReActionView v0.6. Check out the "What's new in Herb v0.11" post on the Herb Blog. Parser Introduce ERBIterationBlockNode and iteration_nodes option by @marc...

Janko Marohnić reposted

Today is a big day for Herb! It's built into Rails 8.2 by default for all HTML+ERB views. My talk at #RailsWorld in Austin today answered three questions: What is Herb? What ships in Rails 8.2? And what does this enable? Herb v0.11 and ReActionView v0.6 released alongside it.

Multiple tools using Rubydex already: Rubocop, Rubydex linter, RubyLens, ArchSpec, Enola... Still eagerly awaiting Ruby LSP release with Rubydex backend 🤞

Janko Marohnić reposted

New post: I added webmentions to my Bridgetown site. Replies, likes, and reposts from Bluesky can now show up directly under the original post. No comment system, no JavaScript widget, and the site stays completely static. I wrote up how it all works: andrewm.codes/p/adding-web...

andrewm.codesAdding Webmentions to a Bridgetown SiteHow I added webmentions to my static Bridgetown site using webmention.io, Bridgy, and a nightly GitHub Actions job, so replies and likes from Bluesky show up right under my posts.

Janko Marohnić reposted

For a long time I was trying to figure out whether the solution to my back pain is increasing flexibility, strengthening back & core, improving hip mobility, or doing frequent walks/runs. And now I think the answer is just “yes”.

Janko Marohnić reposted

Two weeks out from EuRuKo 2026. Brno, 17–18 September. If you're still deciding, the flights are deciding for you 🎟️ 2026.euruko.org #Ruby #EuRuKo

Booked the jj workshop by Andre and Kasper. I will finally see what all the rave is about 🤞

Euruko@euruko.org

The full EuRuKo 2026 programme is live 📋 Sep 16–19, Brno. Matz opens Thursday, Koichi Sasada closes Friday, then six workshops in parallel – you pick one, seats are capped. Register in Swapcard under "Choose Your Workshop Here". 2026.euruko.org/agenda.html #Ruby #EuRuKo

Cool, you can now just wait for a certain write to be replicated before querying the replica. I can imagine automating this in Active Job, where current WAL state is serialized into the job and waited on. That way it should always be safe to read from replicas in jobs.

Radim @ boringSQL@boringsql.com

postgres 19 has WAIT FOR LSN, which means you can finally drop the "sleep and hope" workarounds for reading your own writes from replicas. I did all the digging around. Sample Go implementation, and the Rails workaround (Active Record thinks WAIT FOR is a write 🙃) boringsql.com/posts/read-y...

Janko Marohnić reposted

Here’s the SolidQueue batches 2.5 year architectural journey, filled with O(n^2) algorithms, hot row contention, excessive jobs, and much in between. There’s a strong chance you’ll learn a thing or two - I certainly did 😮‍💨 jpcamara.com/2026/08/31/s...

jpcamara.comSolidQueue Batches: evolution and architectureWhen Rosa first released SolidQueue, she did a fantastic talk on the internals of how it works and what trade-offs she made when building it. You should give it a watch. It’s where I first learned how...

Janko Marohnić reposted

𝗦𝗶𝘅 𝘄𝗼𝗿𝗸𝘀𝗵𝗼𝗽𝘀, 𝗼𝗻𝗲 𝗮𝗳𝘁𝗲𝗿𝗻𝗼𝗼𝗻 🛠️ Coding agents, jj instead of git, Koichi Sasada's Ruby Hack Challenge, time zone hell, Bluetooth in Ruby, and C extensions. 18 September in Brno. They run in parallel, so you're picking one – and rooms fill up. 2026.euruko.org/agenda.html #Ruby #EuRuKo

This is the feature I missed the most from fugitive.vim, I finally have it in Zed now 🙌

Zed@zed.dev

You can now use `Blame Revision` and `Blame Previous Revision` from the blame gutter to inspect a file as it existed at the selected revision or its parent.

Janko Marohnić reposted

🚀 Zed v1.17 is out! Zed now previews CSV, TSV, PSV, and SSV files as interactive tables. You can sort and resize columns, then filter rows by selected values. Thanks HalavicH!

Having also read the linked article, I realized enqueueing background jobs after commit isn't guaranteed. First thought was that SQL-based background libraries implicitly provide the transactional outbox. But at any serious scale a separate DB should be used. karolgalanciak.com/blog/2022/11...

karolgalanciak.comThe inherent unreliability of after_commit callbacks and most service objects’ implementationService objects and/or after_commit callbacks are ubiquitous in most real-world Rails applications. Whether it’s a good idea or not (ActiveRecord callbacks - I’m looking at you) is a different story, ...
This post is unavailable.

Janko Marohnić reposted

The docs on SolidQueue batches are… solid 😉 In addition, I wrote up this blog post to dig in a bit further on how to use batches in SolidQueue, including some code inspiration - like splitting a RubyLLM chat into parallel sub agents using batches jpcamara.com/2026/08/24/a...

jpcamara.comA Guide to using Batches in SolidQueueSolidQueue is the default queue system shipped with Ruby on Rails. It’s a great choice for your jobs, and works out of the box with Postgres, SQLite and MySQL. It took two and a half years, but as of ...

Looking at all the security fixes in the latest Rodauth release, I don't think it pays off to implement authentication manually. Security is hard, and if a vulnerability is found in Rails authentication generator, you need to manually patch it in your application. github.com/jeremyevans/...

github.comRodauth 2.47.0 Released · jeremyevans rodauth · Discussion #514Rodauth 2.47.0 has been released! Security Fixes to Address Reported Vulnerabilities There were a large number of reported vulnerabilities that are fixed in this version. While none are as critical...

Janko Marohnić reposted

Today we’re introducing Delta. Delta is a multiplayer environment for coding with agents and reviewing what they build, powered by DeltaDB. The first invites to our private beta are going out now. zed.dev/blog/introducing-delta