Off The Main Thread cover image

Off The Main Thread

Latest episodes

undefined
Mar 25, 2024 • 46min

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
undefined
Mar 1, 2024 • 52min

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
undefined
Jan 24, 2024 • 1h 21min

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.
undefined
Dec 27, 2023 • 1h 24min

The Big Build Bool Bonanaza II

The podcast explores whether build tools are a symptom or solution to web problems. They discuss the less popular build tool, basil, and its origins. They also delve into import assertions and their evolution, as well as the powerful build tool Basil used by major companies. The importance of reproducibility and hermeticity in Basil is highlighted, along with frustrations and limitations. The hosts also share humorous anecdotes about moving houses and air travel.
undefined
Nov 29, 2023 • 1h 18min

WebGPU and Browser Ideologies

In this episode, Surma talks about the “GPU” in “WebGPU” and how this new web standard makes programming for the GPU more accessible. Jake talks about how different browsers approach standards and their perceived ideologies around what they prioritize. Resources: Surma’s blog post on WebGPU A 13-part blog post series on the architecture of GPUs. The OpenGL internal state object explained Dawn, a C++ library that brings the WebGPU API to C++ wgpu, a Rust crate that brings the WebGPU API to Rust. The extensible web manifesto. Edge 'injecting' content into the Chrome download page. -webkit-box-reflect. Is Safari the new IE? Stadia controller flash.
undefined
Nov 13, 2023 • 58min

From the Archive — Changing jobs, Deno, and optimizing animations

(This is an episode from our previous podcast HTTP 203, originally published on June 29th, 2022) In this episode: - Surma changed jobs. - The Shopify interview process. - Pair programming vs pair problem solving. - Surma's also doing bits of work for Deno. - The complexities of testing image codecs. - Jake forgot to tell Ada how HTTP 203 filming ends, so it almost never did. - Keeping animations fast but simple for page transitions. Transcript: https://goo.gle/3ns4TTK

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app