Rogin Farrer

Rogin Farrer

@rogin.dev

Frontend engineer & design systems @ Etsy 👉🏻 rogin.dev

561 followers381 following172 posts

Pinned

Lots of new followers recently. Hello world! I'm a frontend engineer working on design systems @ Etsy. (prev. Wayfair). 📍 Based in San Diego 👨🏻‍💻 Open-source maintainer github.com/roginfarrer ⌨️ I use neovim, btw 🏋🏻 🥏 🥾 Into weight-lifting, ultimate frisbee, and hiking My website is rogin.dev

Unfortunate that we cannot do this with the <img> element, but you can probably put together a workaround with <img> elements and loading=“lazy”

Cory LaViska@cory.laviska.com

TIL you can use light-dark() with images

I’m losing track of all of these native Typescript ports

VoidZero@voidzero.dev

Introducing tsrs: a Rust port of the TypeScript compiler 🦀 We are not forking TypeScript! ◆ In close collab with the TypeScript team ◆ Up to 8x faster than TS 7.0 & ~70% less memory ◆ Runs in WASM (works in your browser & workers) ◆ Soon part of Oxc npx tsrs blog.cloudflare.com/typescript-r...

Rogin Farrer reposted

Wrote a thing on why we should have interactive lists on the web: sarahmhigley.com/writing/inte... If anyone has their own interactive list use cases that aren't covered, send them to me! I'm putting together an ARIA spec PR this month.

sarahmhigley.comThe web needs interactive lists | Sarah HigleyA plea to developers: if this gets created, let's not fuck it up. This is a slightly more spec-heavy post than usual, but hopefully still useful.

Rogin Farrer reposted

Rogin Farrer reposted

Today, I’m proud to announce Homebrew 7.0.0. The most significant changes since 6.0.0 are faster installations, stronger sandboxing, native macOS app, vulnerability checks, advisory database, end of macOS 10.15 support and Intel Macs to Tier 3.

brew.sh7.0.0Today, I’m proud to announce Homebrew 7.0.0. The most significant changes since 6.0.0 are faster installations and upgrades, stronger sandboxing, a native macOS app, built-in vulnerability checks and an advisory database, the end of macOS 10.15 support and Intel Macs moving to Tier 3.

Rogin Farrer reposted

People don't long for "inconvenience." They long for permanence. And though streaming services may be convenient, people are waking up to the fact that we are paying rent-seeking middle men month after month for things we will never actually own.

The New Yorker@newyorker.com

People are pining for old technologies—CD players, VCRs, Walkmans. What’s behind our longing for inconvenience? www.newyorker.com/culture/essa...

I’m trying to create a custom lint rule for lit-html templates, and I’m surprised to find that there’s no stable, broadly supported parser and/or linter? Or TS support?

Hey web component world, how do you set-up WCs to support `aria-labelledby` for elements in the shadow DOM? I know there's a number of specs and proposals to address this, but I wonder what solutions we have now Currently we require a string of text for labels, not el references. Maybe that's fine?

I didn’t realize what the issue was because I was quickly scanning the diagram. Then I started reading the text. Wow. The obvious and complete lack of copy-editing and QA is more depressing to me than using AI to write this.

David Bushell 🪿@dbushell.com

have a chuckle at this "Git flow" slop might explain GitHub's recent outages learn.microsoft.com/en-us/traini...

It would be nice if @bsky.app added hyperlinks to users handles if their a URL. Seems funny to use one’s website as a handle but then you can’t click it.

Excited to check this out!

Scott Jehl@scottjehl.com

Online on a weekend? You can grab access to my web components course for $25 today and tomorrow. Big ol’ discount. Use the code OCT25-26. (And as usual, if you need further accommodation, just use the email form and we’ll work it out.) scottjehl.com/learn/webcom...

Rogin Farrer reposted

hey #webcomponent people that work at search engine companies, who do i have to annoy to get some words on an official blog for Bing and whatever else about search engine crawlers playing nicely with shadow dom? there’s exactly 0 official docs saying that web components won’t hurt your SEO.

Rogin Farrer reposted

Replying to @justinfagnani.com

Now importNode and cloneNode have the same performance in Chrome: issues.chromium.org/issues/37124... I'm happy frameworks can get simpler, but also because Lit, which always uses importNode, probably just got faster too. Filing issues for browser implementation bugs is a good thing for everyone!

@justinfagnani.com I’ve been using Lit’s base ReactiveElement, without a “render” method, since we’re inserting the shadow template externally, and updating it imperatively. Curious if you think this makes ReactiveElement overkill? We use it for the “update” methods and syncing props & attrs.

I’ve had to create our own version of “updateComplete” and “firstUpdated” since the shadow DOM or light DOM weren’t necessarily available/ready when we expected.

Rogin Farrer reposted

Interviewer: Can you explain this gap in your resume? Me, a software engineer: I suspect it's CSS margin collapse. I'd update to use flex and justify-content:space-evenly but I know you recruiters trust Outlook as a renderer.

Jon P (moved)@jdp23-alt.bsky.social

Interviewer: Can you explain this gap in your resume? Me, a software engineer: Hmm, it looks just fine on my machine. Have you tried rebooting?

Do you author web components with "required" attributes? The convention for most HTML elements is that no attributes are required. But in the context of a design system, it would be nice to require configuration for a custom element. Like a variant attribute for a badge or a button.

I didn't think too much about this until configuring the types for a web component to be used in React. When I made certain attributes required, I realized that no other elements require HTML attributes, and never provide type errors.

Say I have a web component (built with Lit) with a property "styleType", and its corresponding attribute is "style-type". Using conventional strategies for adding web component types to JSX, TS will autocomplete "styleType". But the correct attribute would be "style-type". Has anyone solved this?

Does anyone here really use Signal as a daily, normal messaging app, like with friends and family? I don’t know anyone that uses it, except for some who use it for work in politics. I feel like I hear about it so much, and I’ve had it for years, but have never once used it.

Rogin Farrer reposted

“If WordPress had a privileged code path that was only accessible to sites deployed to Automattic properties, would it be trusted as a truly open project and would it have the dominance it has today?” Damning, thorough write up by @eduardoboucas.com eduardoboucas.com/posts/2025-0...

eduardoboucas.comYou should know this before choosing Next.jsPicking the technology stack for a project is an important and consequential decision. In the enterprise space in particular, it often involves a multi-year commitment with long-lasting implications o...

Thanks to the great feedback, I started playing around with a custom element providing these public methods to be used for unit testing. I wrote them to be as similar to `@testing-library/user-event` as possible. Instead of await userEvent.type(input, 'hello'); you write await input.type('hello')

Rogin Farrer@rogin.dev

Web component library maintainers, how do you intend for your users to write tests in React with your components? It feels like shadow roots pose a big challenge. I’m wondering if we might need to develop some kind of test harness to abstract the shadow DOM away.