Grilled Cheese

ExploreLog inSign up

Burton Smith

@stuffbreaker.bsky.social

392 Following1.4k Followers

Fun-loving coder and speaker. I love web development, web components, and design systems. Creator of the WC Toolkit. I work at ZocDoc.

PostsRepliesMedia
@stuffbreaker.bsky.socialOct 11, 2026, 5:34 PM

Chrome does as well. The only one I'm not sure about is Safari.

Maybe @jensimmons.bsky.social knows.

@stuffbreaker.bsky.socialOct 10, 2026, 10:43 AM

I support this message

@stuffbreaker.bsky.socialOct 9, 2026, 1:10 AM

Here's a simple demo I did with FAST web components running in Storybook! 🤌

@storybook.js.org
stackblitz.com/github/break...

@stuffbreaker.bsky.socialOct 9, 2026, 1:10 AM

The fact that you can run a GitHub repo directly in @stackblitz.com, is just awesome!

stackblitz.com/github/%7Bus...

@stuffbreaker.bsky.socialOct 7, 2026, 10:03 AM

Even that second queue is much faster than it used to be. It could be a few seconds or minutes. Either way, shadow DOM does not negatively affect SEO.

@stuffbreaker.bsky.socialOct 6, 2026, 9:59 PM

Yep! All pages get added to a render queue regardless of JS. If your app is using async content or what they call the "app shell model" where your app is rendered from a single anchor node, it will be added to a slower queue.

@stuffbreaker.bsky.socialOct 6, 2026, 4:44 PM

Wave 2 is reserved for async data/content loaded by JS and typically indexed much later. Local JS will be loaded and indexed in wave 1 including JS defined custom elements that don't use async data.

@stuffbreaker.bsky.socialOct 5, 2026, 1:07 PM

Calling all fellow web devs, design engineers, and web components nerds!

Would you be interested in a #WebComponents conference??? Let us know!

#html #css #javascript #WebDev #DesignSystems

MMichael Warren@michaelwarren.devOct 5, 2026, 12:51 PM

What if there was a Web Components conference?? @stuffbreaker.bsky.social and I are teaming up to get a little more serious about the idea of getting one together. We want to gather data on if there is interest in the community forms.gle/ZGqtYGj7V6q8... Please fill out and share to anyone!

forms.gleInterested in a Web Components conference? Let us know below!Web Components folks have been semi-seriously talking about organizing a conference for years, and with the ecosystem in a real moment of growth and popularity, it's about time! This form is our firs...
@stuffbreaker.bsky.socialOct 5, 2026, 10:11 AM

One point of clarification I want to add is that the contents of JavaScript defined custom elements / shadow DOM are discoverable by web crawlers, so SEO shouldn't be an issue.

dev.to/stuffbreaker...

@stuffbreaker.bsky.socialOct 4, 2026, 4:27 PM

The sweet spot - good DX and good UX. 🤘

@stuffbreaker.bsky.socialOct 4, 2026, 4:27 PM

Agreed! That's one of the reasons I've been rolling out these new articles about CSS-only custom elements. We should be able to have good developer ergonomics like auto complete, type checking/linting, and inline documentation without having to rely on JavaScript or framework components to get them.

@stuffbreaker.bsky.socialOct 4, 2026, 4:17 PM

Hopefully, we can get to a point where those aren't mutually exclusive.

@stuffbreaker.bsky.socialOct 4, 2026, 3:51 PM

Not necessarily. This is a single aspect of that feature. It's all about your needs. I'm also a big fan of class utilities and CSS-only custom elements with no shadow DOM. Shadow roots aren't the right solution for every problem and performance shouldn't be the only hook you hang your decision on.

@stuffbreaker.bsky.socialOct 4, 2026, 2:59 PM

In global CSS, selectors like .card .title or .list > .item + .item can force the engine to check many more elements across the page.

@stuffbreaker.bsky.socialOct 4, 2026, 2:59 PM

The second is invalidation. When a class or attribute changes, the engine uses "invalidation sets" to decide which elements need restyling. Those sets are built per scope, so a change inside a shadow root only invalidates against that scope's selectors.

@stuffbreaker.bsky.socialOct 4, 2026, 2:59 PM

So with 1,000 components, each element is matched against a handful of rules instead of one giant global stylesheet.

@stuffbreaker.bsky.socialOct 4, 2026, 2:59 PM

The first is rule matching - each shadow root has its own set of style rules. An element inside it is only tested against its own scope's rules. Document-level rules are never tested against shadow content, and shadow rules are never tested against the rest of the page.

@stuffbreaker.bsky.socialOct 4, 2026, 2:59 PM

Sorry, you are correct. Recalculation is what I was referring to. The shadow DOM helps in two ways:

@stuffbreaker.bsky.socialOct 4, 2026, 1:07 PM

The shadow DOM can actually improve page performance. Because the styles get rendered in DOM fragments, selectors get applied to smaller DOM trees and repaints stay scoped when content gets updated.

@stuffbreaker.bsky.socialOct 4, 2026, 12:55 AM

I'm checking this out! Thank you!

Older posts
Terms of UsePrivacy PolicyCommunity StandardsHelpGet the app

Grilled Cheese is a product of Village Compute

Version devBuilt at: 2026-10-11 02:37:10 EDT