Episodes

  • Putting React In The Browser
    Apr 22 2024

    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
    Show more Show less
    44 mins
  • Canvas-based Web Apps
    Mar 25 2024

    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
    Show more Show less
    46 mins
  • The Apple PWA Ban
    Mar 1 2024

    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
    Show more Show less
    52 mins
  • TC39 Roundup and Bevy’s ECS
    Jan 24 2024

    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.
    Show more Show less
    1 hr and 21 mins
  • The Big Build Bool Bonanaza II
    Dec 27 2023

    In this episode, Jake investigates whether the existence of build tools is a symptom of the web being underpowered, or if they are part of the solution to make the web better. Surma shares his experience of learning about Bazel and how it can be used to build web projects.

    Resources:

    • Touching cloth.
    • Emirates silly class.
    • Yes, we have done "The big build tool bonanza" before.
    • Jake: Although "Terry's ringpull museum" isn't a real thing, the closest thing that comes to mind is a site I still use every time I buy a new pair of shoes, it's Ian's Shoelace Site.
    • Jake's 10 year old blog posts on progressive enhancement.
    • NextJS server actions.
    • Rollup's docs.
    • Jake and Surma’s talk on writing custom Rollup plugins.
    • Vite.
    • Some of the issues with HTTP/2 push.
    • HTTP 203 episode on importing JSON.
    • Using import attributes with build tools.
    • Improving TypeScript types for import attributes.
    • Silly view transition demo.
    • Jason Lengstorf video: 4 Web Devs, 1 App Idea.
    • Bazel.
    • Aspect’s Bazel rules for JavaScript.
    • Bazel Remote Caching.
    Show more Show less
    1 hr and 24 mins
  • WebGPU and Browser Ideologies
    Nov 29 2023

    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.
    Show more Show less
    1 hr and 18 mins
  • From the Archive — Changing jobs, Deno, and optimizing animations
    Nov 13 2023

    (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

    Show more Show less
    58 mins