Janko Marohnić
janko.io
Janko Marohnić
@janko.io
Senior Ruby engineer, father, vegan. Creator of Shrine, rodauth-rails and vim-test.
Workspace symbol search on Ruby LSP should be working much smoother now on 0.26.3, @vinistock.bsky.social and I made a bunch of fixes recently 🤘

github.com/Shopify/ruby...
github.com/Shopify/ruby...
github.com/Shopify/ruby...
November 13, 2025 at 11:42 AM
...and it's up 🤘

github.com/Shopify/ruby...
October 28, 2025 at 8:14 PM
It seems I will do that in Ruby LSP land after all. I couldn't think of a sane interface for retrieving view prefixes from controller, and `_prefixes` seems kind of like private API anyway.
October 27, 2025 at 6:35 PM
Like, this actually works 🤯
October 27, 2025 at 7:24 AM
The Herb Linter by @marcoroth.dev just works™

It caught both the fact that we're missing double quotes and that we've used `<% %>` instead of `<%= %>`.

And it automatically produced GitHub-compatible output 👌
October 14, 2025 at 1:51 PM
That's my 2nd blocker for replacing rack-attack.

The 1st one is the inability to access rate limiting state for response headers to communicate rate limits to the caller. This is what we have at the moment:
July 17, 2025 at 7:59 PM
@thorstenball.com Happy for the AGENT.md standard 🙌

Could Zed also be added to the list of tools that support this file? 🙂
July 15, 2025 at 10:51 AM
I just found out that Ruby LSP has this code action, so it doesn't have to be re-implemented at the editor level 🤘

Unfortunately, it doesn't currently work in Zed, the language server says it's cannot complete the action. Maybe something for @vitallium.bsky.social? 🤞
April 8, 2025 at 11:24 AM
It doesn't take much to make Arel more ergonomic.
March 7, 2025 at 6:55 AM
I really value that Tailwind CSS documentation uses real-world examples to introduce features 🫶

Those are much harder to produce than contrived examples, and the benefit is that they not only teach me library API, but also various strategies I can apply to my project 💯
February 18, 2025 at 9:42 PM
Zed's new edit predictions are really a level above GitHub Copilot 😍

It's not only able to suggest code within a line (e.g. between parentheses/quotes), but also *across* lines. I'm not familiar with Cursor, but this seems like a novel editor feature to me.

zed.dev/edit-predict...
February 14, 2025 at 1:19 PM
Sequel just added the ability to prevent SQL queries in a given block 👀 github.com/jeremyevans/...

I wanted this in Active Record, to prevent new connections from being created when using Async Ruby in a certain place, as I assumed AR didn't have fiber concurrency yet.
February 1, 2025 at 7:47 PM
@justcrosspost.app The Bluesky profile doesn't show up for me in the social connections tab.
January 22, 2025 at 10:30 PM
Syntax errors generated by Prism are waay better than what Ruby's default parser generated before 🤘
December 29, 2024 at 11:50 PM
I've been using a custom script that calls either `bundle open` or `gem open` depending on whether the specified gem is in the project or not.

Really useful for quickly diving into gem source code without thinking about my current working directory 😅
December 17, 2024 at 4:34 AM
Feeling proud with the featureset rodauth-omniauth has accumulated over time.

As a reminder, this gem takes things a step further than Devise, by implementing the OmniAuth callback route for you 😉
December 13, 2024 at 9:28 AM
Do you know if this blank vertical space is a Bluesky bug in rendering images, or something to do with @justcrosspost.app?
December 9, 2024 at 10:20 AM
Started using the new GitHub markdown alerts in READMEs recently, and it really levels up organizing information 👌
December 9, 2024 at 10:17 AM
Expanded the JSON API guide for Rodauth with notes about CSRF protection and CORS settings 😌

https://github.com/janko/rodauth-rails/wiki/JSON-API#json-cookie-based

This should help newcomers that are making sense of the SPA + API architecture 🤞
December 3, 2024 at 10:12 PM
Well, it's not really an HTML project 😅
November 20, 2024 at 2:56 PM