Sign in

Janko Marohnić

@janko.io
262 followers 125 following 360 posts

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

PostsRepliesMedia
Janko Marohnić @janko.io · 2h
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.
000
Janko Marohnić @janko.io · 2h
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.
110
Janko Marohnić @janko.io · 2h
Thanks to the new language server features added to Herb 0.11, I could now close my PR to ruby-lsp-rails 🙌🏻 github.com/Shopify/ruby...
github.com
Implement "go to definition" for `render` calls in ERB templates by janko · Pull Request #659 · Shopify/ruby-lsp-rails
It's common to want to traverse through several partials while updating HTML that a controller action renders. Rails.vim has a neat gf shortcut for this. This brings the same functionality to R...
020
Reposted by Janko Marohnić
Mike Dalessio @flavorjon.es · 27/09/2026
Hot Cell is ready to go if you're on Rails edge. Slides are up at mike.daless.io/prez/2026-09...
mike.daless.io
082
Janko Marohnić @janko.io · 25/09/2026
The amount of stubs Claude is able to generate to fabricate reality is astounfing. Like, just let methods be called. It’s fine if unrelated DB queries are executed. Sure, you don’t want external HTTP requests, but beyond that you’re adding brittleness.
110
Janko Marohnić @janko.io · 25/09/2026
Congrats! TBH I thought you already were in Rails core 😃
010
Reposted by Janko Marohnić
Mike Dalessio @flavorjon.es · 25/09/2026
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.
4537
Janko Marohnić @janko.io · 25/09/2026
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.com
Release v0.11.0 · marcoroth/herb
Herb 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...
000
Reposted by Janko Marohnić
Marco Roth @marcoroth.dev · 24/09/2026
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.
36713
Janko Marohnić @janko.io · 24/09/2026
Are you referring to collections like hashes that needed to be made lock-free data structures for things like JSON.parse to be performant? I always thought that was just trading code complexity for same performance just mutex-free.
101
Janko Marohnić @janko.io · 23/09/2026
Yeah, I don't get why not just let this be CRuby's weakness. If you can't get rid of the GVL – which is understandable as even in Python it's still opt-in – then accept that and promote alternative solutions. I don't see how this level of restriction is ever going to work in practice 🤷‍♂️
111
Janko Marohnić @janko.io · 23/09/2026
Some of my good friends are attending #RailsWorld, and I'm sure Amanda put on a hell of a conference. I can disown DHH without disowning my friends and colleagues who still collaborate with him or go to his conferences. Daryl Davis convinced dozens of KKK members to leave by befriending them.
130
Reposted by Janko Marohnić
S.E. Danesti @seedanesti.bsky.social · 19/09/2026
Interviewer: "Where do you see yourself in 5 years?" Me:
1002049434
Janko Marohnić @janko.io · 16/09/2026
Multiple tools using Rubydex already: Rubocop, Rubydex linter, RubyLens, ArchSpec, Enola... Still eagerly awaiting Ruby LSP release with Rubydex backend 🤞
020
Reposted by Janko Marohnić
Andrew Mason @andrewm.codes · 16/09/2026
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.codes
Adding Webmentions to a Bridgetown Site
How 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.
3103
Reposted by Janko Marohnić
Euruko @euruko.org · 13/09/2026
Last call: EuRuKo 2026 tickets close tomorrow at midnight CEST. @matz.bsky.social opening, @ko1s.bsky.social closing, @headius.bsky.social on JRuby. Brno, Sept 17–18. After tomorrow there's no late registration. 2026.euruko.org
062
Janko Marohnić @janko.io · 11/09/2026
Here is a summary of my frustrations with MariaDB in my past jobs and why I wouldn't recommend it for production. www.reddit.com/r/rails/comm...
reddit.com
janko-m's comment on "Is anyone using Rails with MariaDB?"
Explore this conversation and more from the rails community
031
Reposted by Janko Marohnić
Bozhidar Batsov (a.k.a. Bug) @batsov.net · 10/09/2026
RuboCop 1.91 is out and it's the most interesting release in quite a while. Try some of the new features like `--diff`, `--changed` and `--preview` and read all about the improvements here github.com/rubocop/rubo... #Ruby
github.com
Release RuboCop v1.91.0 · rubocop/rubocop
New features #15631: Add a preview channel for unstable behavior. (@bbatsov) #15627: Add a SARIF formatter. (@bbatsov) #15686: Add AllCops: FailLevel, the configuration equivalent of --fail-level....
074
Janko Marohnić @janko.io · 10/09/2026
Yeah, everything is “for now” 🙂 But I’m only interested in the now, where agents don’t really go beyond an immediate fix. When agents become more capable, then I’ll change my approach. But I don’t see the value of trying to prepare for an imaginary future 🤷🏻‍♂️
100
Janko Marohnić @janko.io · 10/09/2026
Well, what’s unmaintainable for humans is also unmaintainable for agents, so not sure why it would stop mattering.
110
Reposted by Janko Marohnić
Peter Ullrich @peterullrich.com · 08/09/2026
🚨 Announcing Pushin 🚨 Now officially: I'm announcing Pushin.eu, a git hosting platform built and run entirely in Europe. Think GitHub/GitLab but European, better, and faster. Built with #ElixirLang and #RustLang. peterullrich.com/announcing-p...
peterullrich.com
Announcing Pushin
I'm launching Pushin.eu, a git hosting platform built and run entirely in Europe.
1114449
Janko Marohnić @janko.io · 07/09/2026
I want to take my vanilla CSS through Lightning CSS either way, as I want that sweet browser compatibility.
110
Janko Marohnić @janko.io · 06/09/2026
I’m seeing the most benefits when I don’t focus on one thing and force myself to be regular (e.g. through memberships). Something I’m also consistently underestimating is getting enough sleep and reducing stress. I can do great workouts, but lack of sleep will just diminish their effect.
010
Janko Marohnić @janko.io · 06/09/2026
Not really. I do sometimes feel frustrated, but don’t consider it unfair. For me it’s part of getting older, especially coupled with a sedentary lifestyle, which I need to compensate for. I do see benefits of these exercises, though nonlinear. It’s freeing to know I just need to do *something*.
110
Janko Marohnić @janko.io · 06/09/2026
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”.
140
Reposted by Janko Marohnić
Euruko @euruko.org · 04/09/2026
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
011
Janko Marohnić @janko.io · 01/09/2026
Booked the jj workshop by Andre and Kasper. I will finally see what all the rave is about 🤞
020
Janko Marohnić @janko.io · 01/09/2026
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.
310
Reposted by Janko Marohnić
JP Camara @jpcamara.com · 31/08/2026
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.com
SolidQueue Batches: evolution and architecture
When 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...
1125
Reposted by Janko Marohnić
Waldo Jaquith @waldoj.mastodon.social.ap.brid.gy · 30/08/2026
"With a bunch of generous assumptions, legitimate requests are only about 2% of git.kernel.org traffic — everything else are scrapers." (via @nelson people.kernel.org/monsieuricon/cree…
people.kernel.org
Creepy crawlies
Comments
022
Janko Marohnić @janko.io · 31/08/2026
Just letting you know the Attributes link here is 404ing: konnorrogers.github.io/downflow/doc...
konnorrogers.github.io
Getting Started
Let your state flow
100
Janko Marohnić @janko.io · 27/08/2026
Yes, but it should be easier to use, as I get to stay in the editor.
100
Reposted by Janko Marohnić
Euruko @euruko.org · 26/08/2026
𝗦𝗶𝘅 𝘄𝗼𝗿𝗸𝘀𝗵𝗼𝗽𝘀, 𝗼𝗻𝗲 𝗮𝗳𝘁𝗲𝗿𝗻𝗼𝗼𝗻 🛠️ 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
111
Janko Marohnić @janko.io · 26/08/2026
This is the feature I missed the most from fugitive.vim, I finally have it in Zed now 🙌
110
Reposted by Janko Marohnić
Zed @zed.dev · 26/08/2026
🚀 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!
61677
Janko Marohnić @janko.io · 26/08/2026
I did the following patch locally. Are you saying I could propose this be made in the package itself? They're using Rollup as far as I know.
100
Janko Marohnić @janko.io · 26/08/2026
What do you like in Conductor over Zed worktrees with parallel agents? I would like some way to automatize what’s executed when I create a new worktree (e.g. Vite build). It seems like Conductor has these hooks, not sure if Zed has them.
000
Janko Marohnić @janko.io · 26/08/2026
For now I used patch-package, because they also use `@import url(“…”)` between various CSS files, which Vite doesn’t inline.
110
Reposted by Janko Marohnić
Andy Waite @andyw8.bsky.social · 26/08/2026
New post: Using puma-dev with Conductor andywaite.com/2026/08/25/u...
andywaite.com
Using puma-dev with Conductor
puma-dev is a useful tool for Rails developers. It’s a successor to pow, an older tool by Basecamp.
111
Janko Marohnić @janko.io · 25/08/2026
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.com
The inherent unreliability of after_commit callbacks and most service objects’ implementation
Service 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, ...
000
Janko Marohnić @janko.io · 25/08/2026
Lexxy doesn't currently export its *.css files, so I can't import the CSS with Vite. Strange that this hasn't been addressed yet. github.com/basecamp/lex...
github.com
Expose published stylesheets via package.json exports by shved270189 · Pull Request #1105 · basecamp/lexxy
Problem The published CSS files (dist/stylesheets/lexxy.css, lexxy-content.css, lexxy-editor.css, lexxy-variables.css) aren't reachable through package.json exports — the exports map only decla...
100
Reposted by Janko Marohnić
JP Camara @jpcamara.com · 24/08/2026
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.com
A Guide to using Batches in SolidQueue
SolidQueue 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 ...
1135
Janko Marohnić @janko.io · 24/08/2026
It's incredibly interesting to go through all the commits and see what it takes. github.com/jeremyevans/...
github.com
Comparing 2.46.0...2.47.0 · jeremyevans/rodauth
Ruby's Most Advanced Authentication Framework. Contribute to jeremyevans/rodauth development by creating an account on GitHub.
010
Janko Marohnić @janko.io · 24/08/2026
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.com
Rodauth 2.47.0 Released · jeremyevans rodauth · Discussion #514
Rodauth 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...
130
Janko Marohnić @janko.io · 23/08/2026
It turns out having Rodauth render Inertia.js components is pretty simple ✨ github.com/janko/rodaut... github.com/janko/rodaut... I let Claude lead me down the wrong path multiple times, thinking the integration would be more involved. In hindsight, I would've been much faster without AI 😅
0100
Reposted by Janko Marohnić
Cory LaViska @cory.laviska.com · 19/08/2026
Target Multiple Classes with the Class Prefix Selector: .btn-* { … } Yes please! (Coming soon) Great post by @bram.us: www.bram.us/2026/08/20/t...
bram.us
The Future of CSS: Target Multiple Classes with the Class Prefix Selector
To target multiple classes that share the same prefix, you'd typically have to resort to brittle attribute selectors or add extra base classes to your markup. To make things easier, CSS is getting a n...
1195
Reposted by Janko Marohnić
Zed @zed.dev · 15/08/2026
More Git goodness, coming to Zed! github.com/zed-industri...
github.com
Support blaming parent revisions by SomeoneToIgnore · Pull Request #62614 · zed-industries/zed
Closes #42583 Adds more tooltip entries and editor::BlameRevision, editor::BlamePreviousRevision actions to use. Started to highlight gutter blame entries that belong to currently annotated commit....
4461
Janko Marohnić @janko.io · 16/08/2026
That is the number one feature I was missing from fugitive.vim 🙌
000
Reposted by Janko Marohnić
Zed @zed.dev · 12/08/2026
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
316217
Reposted by Janko Marohnić
Jean Boussier @byroot.bsky.social · 11/08/2026
I'll probably release the final 3.0.0 version early September, so if you got time please try the RC1 and submit any feedback you may have: github.com/ruby/json/re...
github.com
Release v3.0.0.rc1 · ruby/json
With the removal of the insecure create_additions option, JSON.load and JSON.dump are now safe to use. Them being unsafe by default caused multiple security vulnerabilites in the past. If you did d...
1242