Wait, do they not support not supporting it, or they don’t support supporting it?
In other words, does the @supports block not get gracefully skipped when @scope is not supported, or does it get incorrectly skipped when @scope is supported?
Wait, do they not support not supporting it, or they don’t support supporting it?
In other words, does the @supports block not get gracefully skipped when @scope is not supported, or does it get incorrectly skipped when @scope is supported?
I didn’t know browsers had to support not supporting a feature 😄
I thought they implement @supports by just returning false for anything they don’t recognize.
If it’s a custom LSP request, then that probably won’t be available for calling in the Zed extension.
There are a few custom Ruby LSP requests I would like to be able to utilize in Zed (e.g application/test file switching), but last time I checked it’s not yet supported.
after four months of private discussions, I have an update on the Bundler and RubyGems situation with Ruby Central: andre.arko.net/2026/03/03/fou…
Companies: We're orchestrating a team of AI agents to autonomously build complex features for several hours without human intervention.
Me: Eagerly awaiting whether Claude Code will finally figure out how to change the default font family on my blog.
My wife asks me “is everything OK?” when she sees something is bothering me.
I feel like that has a better undertone, because it’s focusing more on external factors than my psychological state.
The connected callback is built in, as well as attribute changes. Not sure what else you’d need the mutation observer for, except for maybe targets, which web components don’t have.
Shadow DOM isn’t required, but then you don’t get slots as you said, you have to clean up HTML changes on disconnect.
You were the only person in my timeline talking about web components. I'm glad I finally see why people are excited about them 🙂
Not as much now that you don't need ShadyDOM and ShadyCSS polyfills anymore 😆
I also love that custom elements already contain the behavior, so I can do:
document.querySelector("cocoon-column").doSomething()
I hate Stimulus.getControllerFromElementAndIdentifier() from the bottom of my heart 😄 Sure, Stimulus has outlets, but they're unfinished.
github.com/hotwired/sti...
This is the HTML interface I was able to achieve with Web Components 👇
With Stimulus, you have a lot of repetition in `data-*` attributes, because multiple controllers can be connected to a single element.
It's beautiful how concise it is to just use HTML attributes 😍
I finally used the new Popover API and <dialog> for dropdown and modal components, and the've been a breath of fresh air! Thanks @fractaledmind.bsky.social for such great intro 🙏
I wish anchor positioning and invoker commands were widely available, though I know there is a polyfill for the latter.
The user HTML ends up less verbose than Stimulus. Event listeners are declared in the component, and it can contain some HTML too.
Shadow DOM was a learning curve. But slots are great, and because it's excluded from Turbo cache I don't need any cleanup on disconnect.
I am missing Stimulus targets.
I've decided to use Lit, since it seems to be widely known, and its interface clicked for me.
lit.dev
I love that I get declarative templates with the speed of React, without the complexity of a virtual DOM. I get to stay in vanilla JS, so it's not far from Stimulus.
At work, our main Rails/Hotwire app has multiple embedded React apps that are isolated microservices. We realized we need to start sharing UI components so they feel like one app.
So, I've been building a Web Component library for the past 3 weeks. It's nice to be learning a new technology again 😍
This pull request improves the parser's error reporting for HTML close tags that are missing their closing `>` by introducing a new `UnclosedCloseTagError`. Given this input: ```html+erb <% case Date.today.cwday %> <% when 6 %> <p>Today is Saturday</p <% else %> <p>Today is not a day of the week</p> <% end %> ``` Previously, when parsing `</p` (missing closing `>`), the error was reported on the next tag (e.g., `<% else %>`) instead of on the `</p` itself. Additionally, the next token (e.g., `<%`) would get incorrectly consumed as the `tag_closing` of the `HTMLCloseTagNode`.
These kinds of small fixes are oddly satisfying to get right. This ships in the next version of Herb! 🙌
Split diffs are now the default in Zed. Simple feature, complex implementation.
Cole wrote about what it took to get alignment right on every keystroke: zed.dev/blog/split-d...
You wouldn't need to write `@layer components { ... }` everywhere, you can just `@import "custom.css" layer(components)` in the entrypoint, and then all styles in `custom.css` can be flat.
Going to #RubyConfAT 🤘🏻
Gotta when it's so close to where I live in Czechia 😄
rubyconf.at
Actually, a ruby hike sounds pretty good now, I'll probably take the full ticket 😄
@adrianthedev.com Do you know why for #RubyConfAT there are tickets for either 30.5. & 31.5. or 29-31.5, when talks are on 29.5. & 30.5?
I would like to attend only the days with ruby talks, but I suppose that isn't an option?
Maybe because it’s then just a matter of time before it becomes widely available.
When you know Safari doesn’t yet support a feature, you don’t know if they’ll add it in one month or in 5 years 😅
Once it lands eveywhere, then it’s more predictable when you’ll be able to use it in production.
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 😅)
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!
Herb and Cuprite/Ferrum are in there!
Yeah, I think Slim has the same issue, I always have to use the explicit `class: "..."` syntax for any Tailwind classes with special characters.
They went as far as allowing `:` for Tailwind variants, but nothing further. Shows the limitation of this kind of syntax sugar.
Did ruby gain improvements that will make this easier?
Or is it a backwards compatibility layer with the classic autoloader that you’re removing?
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.
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. :)
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.