![](/assets/artwork/1x1-42817eea7ade52607a760cbee00d1495.gif)
9 episodes
![](/assets/artwork/1x1-42817eea7ade52607a760cbee00d1495.gif)
Off The Main Thread Jake Archibald, Surma
-
- Technology
-
-
5.0 • 9 Ratings
-
Surma and Jake talk about whatever's going on in the world of tech & web development.
-
Are web components worth it?
In this episode, Jake and Surma chat about web components. Why they were invented, what they're useful for, and how they would improve.
Resources:
Surma showers his eyeball. The old custom elements 'v0' spec. The old shadow DOM 'v0' spec. The old HTML imports spec. The initial version of Polymer. Lit (formally lit-html). HTML attributes vs DOM properties. Issue looking at ways custom elements could have behavior. The ElementInternals API, for making custom elements interact with forms. The is attribute. WebKit's position on the is attribute. Programmatically assigning children to slots. Issue looking at ways to slot children that aren't direct children of the shadow host. Declarative shadow DOM. Custom element support in React 19. pinch-zoom custom element. -
Why Source Maps don’t always work
In this episode, Surma shares with Jake all the things he learned reading up on source maps and DWARF.
Resources:
Jake's Jericho triangle source-map-explorer Hacker News comment by Joseph Shorr on the origins of source maps The Source Map "specification" EvanW's source map visualizer Wikipedia: VLQ DWARF specification llvm-dwarfdump gimli addr2line bundlephobia Wasmphobia WebAssembly Debugging Chrome Extensions by Ingvar TC39 source maps spec Squoosh Animal Well .kkrieger: Gameplay video and Wikipedia article "C64 'fast loaders'" "Thank you for playing Wing Commander" -
Putting React In The Browser
In this episode, Jake and Surma chat about the complexities of adding common framework patterns into the web platform, and work that has been done on that so far.
Resources:
Michael Jackson's tweet. Is WebAssembly magic performance pixie dust? - Surma's investigation into wasm performance. defaultValue reflects the value attribute. The value property is complicated. HTML template instantiation. DOM parts API. DOM Parts Imperative API. DOM Parts Declarative Template API. Atomic move for elements. Shizo Kanakuri's marathon record -
Canvas-based Web Apps
In this episode, Surma talks about web apps that (partly) abandon the DOM and use canvas instead, to take rendering matters into their own hands. Figma is one popular app that uses this approach, while Flutter is an entire app platform that went with this technique to provide portability. Jake and Surma discuss the tradeoffs of building apps this way.
Resources:
AI text-to-speech having a stroke ServiceWorker Static Routes Targeting the browser with Bevy Flutter’s “Showcase” section with a 6MB gif Flutter’s Material 3 Demo w/o Wasm Flutter’s Material 3 Demo w/ Wasm Ian 'Hixie' Hickson’s “Towards a modern Web stack” document HarfBuff -
The Apple PWA Ban
In this episode, Jake chats about the latest EU ruling that requires Apple to allow other browser engines on iOS, and how Apple is reacting to it.
Resources:
Microsoft vs the EU Microsoft vs the US BrowserChoice.eu IBrowse Mobile operating system market share Web platform tests dashboard The internal Apple email about HTML5 The Open Web Advocacy group The EU digital markets act Safari is "three browsers" Same Safari, different device Apple's "Using alternative browser engines in the European Union" docs Apple is killing web apps in the EU -
TC39 Roundup and Bevy’s ECS
In this episode, Surma shares what he learned while getting started with the Bevy Game engine, Entity Component Systems and why they might be useful for the Web. Jake rounds up the newest JavaScript language features that landed in TC39’s Stage 3.
Resources:
Bevy Game Engine Bevy Rendering Pipeline Buffer-backed Objects, a library by Surma to store objects in ArrayBuffer Surma built Boids with Bevy: Tweet 1, Tweet 2 When should your alarm go off when daylight savings time kicks in? TC39 Stage 3 Proposals ShadowRealm style API on workers Our previous episode which covers JSON imports. The JSON spec. Pushing up the daisies.