Who Decides What Ships on the Web?

Syntax| 01:09:01|Jun 15, 2026
Chapters18
Describes a sunburn experience during aCalifornia shoot, the ensuing panic, and the importance of sunscreen and sun protection, including practical tips like using zinc-based sunscreen and after-sun care.

Venture behind the scenes of web standards with Jake Archibald, exploring Firefox’s stance on interoperability, prompt APIs, image codecs, and why Mozilla ships what it ships.

Summary

Syntax’s Scott and Jake ArcheraId (at Mosilla) dive into the gritty realities of web standards and browser development. Jake reflects on his career across BBC, Google, Shopify, and now Firefox, sharing how Firefox prioritizes features that prevent site breakage and maximize developer value, even with a smaller budget. The conversation digs into Chrome’s prompt API, why Mozilla pushed back on an open web API with nondeterministic models, and how Firefox approaches model-agnostic experiences while preserving user control and privacy. They also cover JPEG XL as a progressive image codec and compare it to AVIF, plus Firefox’s recent wins like sanitizer API, heading offset, and the promise of interop-informed prioritization through projects like Interop 2026. Throughout, the chat stays practical—highlighting how interop data, dev feedback loops, and developer sentiment shape Firefox’s roadmap, not hype. The episode blends personal anecdotes, technical depth, and candid critiques of how big tech companies push features that affect developers and users alike.

Key Takeaways

  • Firefox weighs user impact and site stability first: if a feature prevents sites from breaking in Firefox, it gets priority over flashy demos.
  • Interop-driven prioritization matters: Firefox uses interop rankings and a public-facing feedback process to decide what ships next.
  • JPEG XL is advancing image encoding with progressive rendering, memory-safety considerations, and cross-browser collaboration with Chrome on Rust implementations.
  • Custom features like heading offset and cross-document view transitions illustrate Firefox’s focus on robust, accessible UI without breaking existing content.
  • The prompt API debate centers on nondeterminism, model compatibility, and who controls the web: browser vendors favor limits that protect users and avoid vendor lock-in.
  • Firefox DevTools and developer feedback channels (like the Developer Signals repo) are actively used to balance developer needs with product stability.
  • HTML and Canvas discussions show Mozilla’s willingness to explore powerful features while guarding performance and security across the web.

Who Is This For?

Web developers, browser enthusiasts, and product owners who want to understand how Firefox prioritizes standards and features. Essential reading for those tracking Interop 2026 outcomes and the debate around AI prompts, image codecs, and web APIs.

Notable Quotes

""we’re building our own engine here that, you know, a lot of the other browsers are using an engine from a and yeah so the the amount that we're able to ship given that sometimes we are last on features but you know a lot of time we're we're second or even first""
Jake explains Firefox’s competitive shipping cadence despite budget constraints and independent engine development.
""if we don't ship this, is it going to mean sites are broken in Firefox?""
The core Firefox prioritization question based on site stability and developer impact.
""JPEG XL has a really like it pushes um progressive rendering... and animated JPEG XL is terrible. So no one ever should use it""
Discussion of JPEG XL versus AVIF and animated JPEG in browser support.
""the developer sentiment was strongly positive but like developers gave the prompt API an 8.0""
Misilla’s stance on developer feedback for the prompt API and how it was measured.
""heading offset lets you offset the level of all headings within the element""
Explanation of the newly shipped HTML feature and its practical use.

Questions This Video Answers

  • How does Firefox decide which web platform features to ship first?
  • What are the main concerns with Chrome's prompt API from Mozilla’s perspective?
  • What is JPEG XL and how does it compare to AVIF in practice?
  • What is heading offset and why is it useful for Markdown or componentized content?
  • Why does Mozilla emphasize interop and developer sentiment in scheduling browser features?
FirefoxMozillaWeb StandardsInterop 2026Prompt APIJPEG XLAVIFImage EncodingHeading OffsetView Transitions (Cross-document)
Full Transcript
I'll tell you a story and whether you want to put it in the podcast or not. It's up to you. So, we we did an episode of well, we did a series of HTB 203 like forever ago and we filmed out in um in California because we were there for Google IO at the same time and one of the first episodes we filmed cuz for some reason we got a lot of budget and a crew that were, you know, filmmakers at heart. They filmed one of the episodes up at a like a wine place up a mountain thing uh near San Francisco and most of the the shot was just us sitting there waiting for the light to be right cuz it just the cloud you know they they hated it [laughter] but but because we were just sat outside and and my skin um even though it was overcast I got horrendously sunburned and didn't know and I didn't notice until until we you know got in the car for the like you know on the drive back and I felt the thing. I was like, "Oh, I know what this feeling is. Oh, no. I I know what [laughter] it is." And then within an hour, I was bright red. But this was the first day of a week of shooting. Like first day for a week. So I I had an absolute panic. Like I didn't sleep that night cuz every hour I sat my alarm every hour to then go and dip my head in the sink of cold water cuz I thought that's smart. That's that's something that's going to solve it. [clears throat] Not solve it. So at like 4 in the morning, I panicked and just like went on to YouTube and I was like, "Right, what what do I do? what makeup solves this? And there's this just really young girl kind of like going, you know, I'm going to show you how to sort out uh sunburn. First thing you're going to do is you're going to moisturize. And I'm like, lady, I've been moisturizing all night. I don't know. And then but then she was like, and first we're going to apply the green makeup. And I was like, tell me all of your secrets, little secret. What is this? Yeah. And it and it sort it sort of worked. You could tell from the [laughter] I sort of look a little bit like Mr. Data in the next episode. That's funny. Absolute [snorts] nightmare. Oh, that's You know what the move is? Is put more sunscreen on. It has zinc in it. And it it's it cools the skin. I've been sunburned many times. I have I have been applying after sun and then for this recording I put some matte makeup because I am I am a shiny boy. Like I am a really shiny boy. Like at the best of times, if I put After Sun on, I look like I look like something's gone wrong with like a WebJL demo, right? The highlights are all sort [laughter] of off. I look like a Q bowl, you know? There's our intro. Scott, take it from there. I think that's a beautiful way to open this up. Yes. Welcome to Zentax. Today we have Jake Archerald here and we're going to be talking about web standards. We're going to be talking about Mosilla. We're going to be talking about Chrome, the prompt API, and a whole lot more. I'm really stoked. Jake, I've been a fan of yours for a long time. I uh was a Sprite Cow user back in the day. Uh so very familiar with your work forever and ever and ever. So if if you don't know Jake, he has been around the industry, at the forefront of the industry for a very long time. and now he's at Mosilla. So Jake, do you want to give the audience who isn't familiar with you a little bit of background and then now what you're doing at Mosilla? Yeah, sure. I um I guess the short story I I started my career at the BBC. I was there for four years. Um and then I was I worked at a web agency for a year, startup for a year, and then I went to Google where I I was a Chrome Devril for a solid decade. Um, and then then I left there and I've been I I was in I was at Shopify for a couple of years, but then I you know, guess the short story is I missed web standard stuff a lot. So I'm I am now I'm now at Firefox doing the the Devril thing again. Um, I guess in terms of like what are the the the big hitters I suppose like I did a lot of the work around service worker stuff uh fetch um and then sort of more recently like view transitions and the uh uh the linear easing um thing in CSS for you can do like bounce easings and stuff. That was a kind of and I knew I was kind of I'm leaving Google soon but I want one last thing. I want one last thing that I want in. And that was that was [laughter] that was that. So so many of the things that I I love and use, man, that linear API rips. Big fan. Weird name. Weird name, but it works. Yes. Yes. Weird name, but it works. Uh so after a decade at at Google um what's it like to leave Google and because you know there was a time the time before you were at Google and a time after. Yeah. So I've heard from other people who've worked at companies like that that there's like almost trauma that you have to undo from working at these types of places. Does that is that what it feels like to you? Yeah. The one thing I can't shake is I keep a I keep a meticulous work diary. So the the way it would work at Google is you you know Perth would come up and this is where you kind of like every half a year or whatever it was had to sort of essentially sort of justify your reason for having the job still. Um and I like I could never remember anything. I like this thing would loom and I would be like I'm gonna get fired because I can I can think of one thing for the last six months or or whatever. So I I would always keep a diary and then I, you know, end up going back through it and uh and go, "Oh, no. Okay, I think I might I think I might just about get away with this." And I still keep that diary even though like Oh, wow. Yeah. Other jobs where he's like, "You don't need to be doing this." It's like it's it's it's in me now. I Oh, it's it's [laughter] not a bad idea though. Like you hit the end of the year and go like, "What did I do this year?" Then you start kind of like going through like, "Oh, I actually did quite a bit of stuff. I just forgot about all the stuff we shipped or all the projects we worked on." Yeah. [music] Yeah. Yeah, exactly. Exactly. And if you want to see all of the errors in your application, you'll want to check out Sentry at centry.io/sintax. You don't want a production application out there that, well, you have no visibility into in case something is blowing up and you might not even know it. So, head on over to centry.io/sax. Again, we've been using this tool for a long time and it totally rules. All right. But yeah, it's been it's it's like so the role I've I have now is same same but different I guess like it's it's devro with you know bits of standards work which is exactly what I was doing at Google but the things that are different is the number of people doing it um and the budget that we have you know so that's yeah let's talk about that like like where is Mozilla where's Firefox at right now ah yeah um I don't know that's a big question I like Yeah, I I am still shocked by how quickly they move, we move given the resources, right? Like that's I actually I'd say they because I'm it's not me implementing the features. Um, and every time like you know because I do these little videos about you know new features and it's like it's not often that we're last to ship and given the like relative budgets um you know it's it's it's not a browser owned by a billionaire uh which the others are. um the others which have their own engine are and that's that's that's the other thing it's like you know we we're building our own engine here that you know a lot of the other browsers are using an engine from a uh from another and yeah so the the amount that we're able to ship given that sometimes we are last on features but you know a lot of time we're we're we're second or even first and that's it's it's been wonderful to see that I guess recently things like the uh the sanitizer API we were first to ship that um heading offset just landed which I would love to to talk about but then even sort of like the things like the temporal API like we were we were first to that as well. So but then you know we we shipped um style container queries recently and we were last there. That's going to happen. We you know we're a big part of this role compared to at Google is is finding the priorities because that that's I'm supposed to be the connection between developers and the the browser engineers. And so yeah, like different to when I was at Google, I'm on the hook a lot for trying to to find out what we should be working on, like what's going to annoy people the least, like which order. Yeah, that was my question is like sometimes you see something just get shipped in like, oh wow, it that's that's in Firefox now or like a browser chooses to implement that early. And on on the Safari side, you can often tell like, oh, that's that's clearly something they needed internally or they needed for like a web view or something like that. What what does Firefox use to figure out what to focus on and what to implement next? It's so it comes down to if if we don't ship this, is it going to mean sites are broken in Firefox? And that's that's the kind of number one thing. um like and and it's you know are people does it mean that Google Meet is just not going to work or or something like that because that's the thing that causes users to switch away. So that's really number one priority. Um and then from there it's it's things like yeah what what what's the most bang for buck in terms of what we can we can give developers to to make the web better. Yeah. It seems like Firefox is taking this all a little bit more seriously in the past year. Is that accurate or is it are they just doing a better job of just doing a better job of communicating about a year? So if you're saying [laughter] that then I'm going to put that on my on my little work diary. Uh yeah, I have no You know what? I It is funny because it it it felt like for for so long as we've been doing this podcast that uh it's been a bit of a black hole like what are they working on? When are they going to ship? What Yeah, it still is. It still is. And and there are like we're throwing around ideas internally to kind of make our backlog clearer. Um, but one of the things I did last year is um I got a bit involved in the interop project and we shipped a little web form thing where where it listed all of the things that were proposed for interop and there was like like 150 of them and let developers like pick as many as they want and rank them. Um, and we used that to to decide what we were going to push for, you know, in in the meetings with the other browsers. Um, and and cuz because that gave us like a a ranking of all of the features, which was great. But we are still using that as a like, okay, there's a bunch of stuff that didn't make it interrupt, but we've got this ranking that we can look at and and you know, developers have have given us the information, so so we can use that. Um, unfortunately couldn't couldn't get agreement in the interop group to publish the results, but uh but you know I could well what I can I could probably leak a bit of it. What what what do you think came top? So this so this went out like late last year and so it was just for 2026. Yeah. And we we got people to we used like an algorithm on the ranking and like we got you know got a the thing that sort of most consistently in the algorithm sort of came out top. Yeah. What? What? Because we we covered Interop 2026. I don't know. I I I I'll give you a clue. The number one thing did not make it into Interrupt. Did not make it into Interop. Okay, that's a great question because I feel like I have such a different uh radar for what I want. I don't I don't know. Timeline uh timeline animation scroll scroll animations. That did make it into interop number seven in in our in the ranking. Was it uh not haptics? Um haptics would be an interesting one. No. Well, in terms of the gamepad API or No, that was more of like a like a navigator dot. What's the the thing you can make the phone buzz? Oh, that's Oh, yes, there that is an API. Yeah. Do you know I don't think that was even on the on on the list, but yeah, that is an API that is Chrome only, I think. No. Okay. Number one, temporal. Okay. Yeah. Yeah, by by a long stretch. Um maybe there was some recency bias there. I don't know. But what the the um an interesting way I cut the data was like okay like what if we reduce the the the analysis down to people who made only really because you could you could rank as many as you wanted. And it was like, if we make the the groups really small, if we only look at people who ranked very small groups, like four or less, is there anything that seems to jump way up the list? Cuz I just wanted to be sure, is anyone trying to meddle with the data here? Yeah. Yeah. Yeah. Right. Yeah. We compare. Yeah. One thing jumps up when you do that, when you analyze that, and it is JPEG Excel. Oh, yeah. That's the thing that people came out to like I'm going to put this top of my list and throw some other stuff in just a [laughter] couple of other items. Can you tell us what JPEG XL is uh for the audience because I think it's kind of an exciting thing. Um yeah, it's a it's a new image codec um that is I think not as good as what we already have. like it has I think it's really good at low compression. Like I I think it it preserves detail if you're happy with high file sizes. In my opinion, it's people should be pushing compression more and and in those cases, JPEG XL doesn't do so well. Um but we have we have a you know an implementation almost ready to land. Um and and Chrome's working on it as well. the implementation's a rust implementation and that was kind of our requirement like we kind of pushed them to say like all right we'll support it as long as it's a memory safe implementation and that that that was our requirement. JPEG XL has a really like it it pushes um okay a lot of the image formats we have are kind of handme-downs from a video format right that's that's true for WEBP that's true for AVIF like webp it's it's VP8 it's a VP8 key frame AVIF is an AV1 key frame whereas JPEG XL is an image format which is great and one of the things we get through that is um progressive rendering because progressive rendering doesn't matter for a video format, right? Um, so [clears throat] you you it it can sort of like give you a a less detailed version of the image and it will sort of come in progressively as it's being downloaded from the server. As it's being downloaded from the server, but and and it yeah, it's kind of like every few bytes you get, it will kind of give you like a new square of the the image and yeah, that kind of thing. But the AVIF folks have started to figure out progressive rendering as well and they are doing it in a video way which is like they're leaning on their video roots which I think is really interesting. So you provide the progressive passes as frames. So that means you can decide what those frames are. So you can provide an initial frame for your image which is a lowresolution blurry version like it doesn't have to be the same image and then yeah so it'll use the whole sort of delta thing to then do the the next image on top of that. So whereas like the the stuff in JPEG XL is much more granular where with AVIF you can usually get a render much sooner and you're in control of what that render is. Interesting. Yeah. I I it's it's kind of new. It's I've I've been playing with it. I've had to land like patches into into the encoder and I'm I'm hoping that they're going to release it like soon. Uh because it works with existing decoders. But yeah, like you can just generate a blurry version like if your image is like 150K, like it's a really high detailed image. You can get like a blurry version where you can tell exactly what the image is in less than 10K. And so AF is supported in all major browsers currently. Yes. Whereas JPEG XL is only currently in Safari and they don't support the progressive rendering thing and they don't support animated JPEG XL. But animated JPEG is terrible. So no one ever should use it because it's it's kind of like GIF in its compression ratio. It's just better to ship a video if you want animation. Is that is that the move? 100%. 100%. Yeah, man. But yes, we'll see. We'll see. JXL, I didn't realize that video was also doing this. Like does that mean that we would eventually maybe do away with having to like make a thousand versions of a video and then like stream in like the M3U8 where you have like a 420 and a 720 and a 1080 and it it kind of adapts. I think the problem there is it's like you you're still requesting a thing like and and so I guess you could maybe have a format that had them all in one but the then the HTTP server is still going to have to split that all out into one. I see. Yeah, you it's like a playlist essentially. Yeah. Okay. Yeah, man. That's I did no idea AF was this well supported. Um Oh, it's I I'm a like they're improving their algorithms like it right now. I would say that the downfall of AVIF is like if you pick a if you decide I'm going to encode everything at quality 50, it will occasionally like make something look a bit overcompressed. Um, but they're they're about to ship a new algorithm for the the quality setting and it's actually based on some of the algorithms the JPEG XL people came up with. Um, and it does improve stuff a lot there. It seems to come up with it becomes much more consistent. I mean, it's it's great to see the competition there, right? Because that's we're getting better stuff thanks to competition. Yeah. I I want to ask about Firefox and like just like enduser features versus like like web features because I I often think about Firefox needing to get more people using it. Um and often you hear from web developers being like well they should be implementing this obscure thing. And I think like yeah of course like it needs to be compatible. The web needs to work on on this browser and whatnot. But like another huge part of that is like like regular people using this browser just want want the features. They want an AI chat tab or they want it to translate their Chinese into English if they visit like all of those. And like when is that like the same team working on Firefox of like enduser features and web? No, it's totally like engine people are in a in a different room. Yeah. Yeah. And that's one of So people have sort of said like and there's been mixed feedback at best to some of the like AI stuff that's landed in Firefox, but the complaint that people have made is like why aren't these people working on like um scroll driven animations instead or or something and it's like well it's it's not the same people anyway, right? It's not that's not the way this is working. Um but yeah, and the end user features of Firefox like if people want to send me like requests and stuff, they can. It's not it's not the area I work in. Um, I dipped into it dipped into it very briefly because of the um the AI controls AI kill switch it was originally sort of being floated as and because I really wanted that to land right um and there was there was a lot of like internally we weren't sure what to do with translation um because we were like is translation AI because no one knows what AI is right it's just a term people throw around and so we were like if we cuz if we put these controls in and it doesn't block translation, then people will say you're cheating, right? You're sneaking AI in cuz it's it's a machine learning local model, you know? Uh in in Firefox, it's a local model that does the translation because it's like which is better for privacy, right? Yeah. But it's not sending the text off to a to a Um and so yeah, I ended up doing like a poll saying, right, we've we've got this translation feature. What do you think is this should this be blocked, you know, by it? And people said, "Yes, it should be blocked by it, but I want to be able to reenable it." And that was that was useful for me because the initial mocks internally didn't have that second ability. They didn't have that ability to block everything but turn one thing back on. So yeah, but um I especially on like the Fediverse if you if you mention AI, people get really angry. So that I kind of retired from [laughter] from that pretty quick. Yeah. You just mention it. Yeah. And people people go nuts. Uh, I guess that that's a good leadin to this whole prompt API business. Um, so Chrome has been I I I'll let you kind of really get into the details here, but Chrome has been pushing through what is this prompt API and there's been some disagreement so to say in the in the uh GitHub issues and the comments and basically their their entire uh process for for what is this prompt API? Can can you give our audience a highle overview of what the heck is going on with this thing? Yeah, so like the you know Chrome has been looking at this API or developing this API since 2024. Um and I did a bit on a a podcast or one of my own podcasts at the time about this API and I was I wasn't at Google at the time. I was at Shopify and we took a look at this this API and we were kind of like oh this doesn't this doesn't feel great. you know, some of I just I guess I wanted to say that because like I all of the points that I've been pushing on uh recently are concerns I had in 2024 like pre premisilla. So the prompt API is a it's an API where you create a language model, you can give it a system prompt and then you prompt it and you get a response. And it's like down to the implementation whether it h how it does that um like whether it gets the stuff from a a cloud service or whether it gets it from a local model. Chrome uses a local model and so when you first request it, it will download this this 4 GB model. Um, and it, you know, the user doesn't get like a permission request for that. That's something that a lot of people got angry about. I'm less I I can I can see their view on it. But there is nothing if you visit a website, there's nothing stopping it downloading 4 GB, right? That's a capability that we just give every website. A browser could step in, I guess. Yeah. Transformers.js, JS you can download a 4 gig model and and run it right in your user's browser without any any permissions and you can store it locally. You can put it in the the file system API or or you know index DB if it will if it will cope. Um but yeah there are ways of doing that and Chrome will only take the disk space if there's plenty of disk space available and it will as far as I understand purge it if it's not but yeah it gives you this this LLM in in the browser. The bit that we're worried about is like it is a just a non-deterministic API um in the browser. And we've had we've had these before. We've got math.random, right? We've we've had nondeterminism before. [laughter] Um there's there's also the the translation API which we don't like the current API the way the translation API is currently designed but the idea of a translation API we're we're kind of warm to even though there's it's sort of nondeterministic but it's nondeterministic within a lane you know there's a there's a kind of [snorts] whereas this is just like a black box you throw text at text back and I and I'm sure I mean folks listening and and new folks will know this when you work with an LLM, you design the system prompt around that particular model like you will you'll write a system prompt which is what you want like it the behavior and the kind of things you want it to do and then you'll test it and it will get some stuff wrong and then you will change the the system prompt accordingly. That's how you'll iterate. is like, "No, don't be like that or be more like this, be less like this." Duh. But you're designing it around one model. And that's where we think this doesn't work for the web because it means like, well, right now there's only one browser shipping this, but even if other browsers were shipping it, people will be designing around the most popular browser. Mhm. Um, and like so I guess to give you an example, I've got this um me and my other half, we've got a pool table. We play pool quite a lot. And I created like a little thing uh a little home assistant thing where when one of us wins I have a a language model which I keep like you know the system keeps the score and it speaks out of a speaker and it congratulates the winner and roasts the user and it's like that that kind of thing. When I first did this, like I was I would use open AI and um firstly it was it used a lot of Americanisms and so I was like and because the speakers in my house are speaking with a it's the Google speakers so they're speaking with a British accent and I was like well that sounds wrong. So I started like [laughter] all right you remember that this is a British voice that'll be spoken out of and then like it was the voice coming out was like blimey mateies Jake's only gone and won [laughter] a game. like, "Oh, what?" Like, "Bloody hell, governor." That's how you sound to us. Yeah. Yeah, that that [laughter] is a little bit how you sound to us. I'm sorry. Yeah. So, it was like more and more iteration, but I got it right. Um, and then I switched to Gemini kind of just because I was playing with it and also because it was cheaper. Um, and it like it started doing things like it would say, oh, you know, Jake potted the black and won the game. And it's like, wait. And that's not necessarily true. And it wasn't true when I first heard it. It's like, no, my my partner point puted the black and the foul, which means I won. So, and I only sort of noticed that because I switched the model. So, then I I went had to go then and update the system prompt for this new model. Now, that's that's because I was picking the model as the developer. Now, that's not what's going to happen with the prompt API. The prompt API developer is is writing the system prompt, but they do not know what is going to run it. and they like and so the worry is like even if a a browser comes out with a better model like it's it's a different model but it's and it's maybe wins on certain benchmarks versus the the Google model all of the system prompts out there will be designed for Google's so users will perceive it as worse even though it's better and that's that's kind of and you can ask these models what they are and I think this is what like a smart developer would do you would say to the prompt who are what are you what model are you and then branch your system prompt based on that. It's just user agent sniffing again. Yeah, we're back to that now. And then now Firefox is implementing hacks to make their their their model feel like WebKit model. Well, that's the thing is we would either have to like ship Google's model which is you know everything just merging around a single engine. Um or we would have to try and find a model that is yeah has built-in prompt system prompts that makes it quirks compatible with Google's it's it's a problem we already face just with web APIs in general but just multiplied like exponentially. So but the the other part that we're worried about, and actually this is the one that kind of gets to me the most is if you look at the the Google's docs for this prompt API, it says like if you're going to use this API, you must first acknowledge our terms and conditions. And this is an open this is an open web API, right? Right. But it comes with terms and conditions that go beyond the law of the the country you're in. These are just extra Google laws. Um, and one of them is like, you know, you can't facilitate misleading claims related to a government or democratic process. Like, and there it's sort of vague. So, I guess to give you an example, like if you use the prompt API to summarize an article that says the 2020 US election was rigged against Donald Trump through like the manipulation of voting machines and ballots, that sort of thing. And if you also use the prompt API to summarize an article saying the 2020 US election was not rigged against Donald Trump. Now in one of those cases you are breaking the Google terms and conditions depending on which side Google believe. Yeah. So it it yeah it becomes a Google API at this point. I feel that way as well with a lot of these like I've been I'm doing a talk on like MCP UIs and MCP apps coming up and there's a lot of people in this camp that are simply saying the browser is no more. we will simply be widgets that live inside of a chat. And then they have these these slides come up where there's OpenAI and Anthropic and and Google on one end and the other end there's like Spotify, Airbnb and whatever. And I'm just sitting there looking at that being like I I don't want to live in that world. I don't want to have to pay to use the web. I don't want to I don't want to live in a world where like we we saw it already with the like the Apple iPhone where like they the apps are sort of locked down to what you can do. There's lots of cases and I don't I don't know that I want this like governing body choosing what is able to do and I know that they're not going to do crazy stuff but they might. [laughter] Yeah. Well, so I I use I use AI in my coding and like you I gave a conference talk recently and I I hel I was I designed my slides in HTML and I I was using a bit of claude a bit of uh uh copilot and as I was working around like I I was I did something like you know say width equals blah blah blah blah and I hit enter and I realized like oh I'm I'm now waiting for the for co-pilot to do the height equals cuz I've just become accustomed to that and it didn't and I was like oh what's going on here and it was like copilot are you okay and it's like okay it's you know everything see you know go to the GitHub status page apparently everything fine and then I realized that in my cuz my notes are also in there and I had used the word in my notes and it turns out co c co-pilot just gets all pearl clutchy and just really will co-pilot more than any of them, Wes. Yeah, definitely. Yeah. Oh, wow. Yeah. So, that's the kind of and and it's like well, you know, prettier doesn't do that, you know, like uh Typescript autocomplete doesn't get all pearl clutchy on me. And so, that I do worry about that that sort of stuff that kind of like the the neutrality uh kind of disappearing in in in this kind of stuff. So, what would a better prompt API look like in the eyes of Mosilla? I I think it has to be more of these things that are that are like having these APIs which are powered by AI seems okay uh as long as the scope of nondeterminism is limited like so I I go back to the the translation API the the current Google proposal or the one they shipped uh for translation is just text in text out um and we had like a develop Er, I was, you know, kind of saying, well, we we think this needs to work on DOM, not just text. And we had some, you know, developer come to us saying like, no, no, no, text is fine. I was like, okay, how are you using it? And they were just throwing HTML at it and getting HTML back and inner HTMLing that. And I was like, oh boy, that's oh man, that's that's that's a security. you came up with some cases where you could give it stuff which didn't look like HTML but when you translated it from Chinese to English it created script tags you know um man [laughter] so there's stuff like that but I think I think a translation API could work because people are like it's something that browsers already have and you know if if an implementation wants to use AI to make it hopefully better then I I think that's that's okay. Um, I think this of the free-for-all prompt API is I I mean maybe maybe if things settle a bit between the models in in a in a couple of years, then maybe we were like, okay, so this this issue where the models are going to be wildly different. It would be less of an issue, but we're definitely not there right now. Yeah, I honestly think that I I love this idea of like a a browser shipping a model because like I would love to just use the users's local model on their iPhone or whatever for many of these cases. I think that there's if it's free and fast. I think there's there's lots of great use cases for that. Obviously, you bring up up good points as well, but like I don't know that we know what this API should even look like just yet as well. Like that's another thing is like let's not I don't know if we should be pushing forward with some standard which nobody's going to use in two years because it's it's crappy and limited and doesn't do what we want to do and then everybody just npm installs something that's way better. Yeah, it's possible. I would say that the the API design of it is is actually pretty good. It's so you can just do text in text out and you can like give it example conversations and define the roles of those conversations and it's sort of stuff that you can imagine sort of being still helpful if a completely different paradigm to like came came about like a completely different system. It doesn't say it's a large language model. I think it just calls itself a language model. And so you can imagine in the future like you know maybe that same API could be powered by something completely different under the hood that that part I'm yeah it when when I complained made noises about this in a couple years ago 2024 I was told that this was just going to exist as a um an API in Chrome extensions and I was kind of like yeah fair play that seems okay it's it would be a good place for this stuff to be experimented with the API in a decent shape. Um but that's another thing that we like really objected to at Misilla is like the the reason so you know we objected Misilla objected Microsoft objected um yeah so Misilla WebKit Microsoft and then uh but the reason they gave for sort of plowing on is like the developer sentiment was strongly positive but like you they had a link to the evidence and it was like a couple of social media posts a GitHub thing where they were asking for feedback and two people replied and but But they also had a survey and they didn't they weren't clear about who they surveyed or like what the numbers were, but like developers gave the prompt API an 8.0 um presumably out of 10, but that was for the API existing in um browser extensions, not as an open web API. So we were very like this this seems misrepresentative and misleading and that sort of stuff. So yeah, we we were pretty unhappy about that. Um on like a flip side though, do you not see Like this is just a thought I have, but do you not think that there is a a potential danger to the web right now if we don't have these APIs? Because I if if like you can't do this stuff in a web browser, then people get pushed into like using it right inside of chat GPT and using in an app. And we saw that with with native apps as well. It's just like not a lot of people built progressive web apps cuz there was all these limitations for so many years and I'm worried that will happen to the web as well. So I don't I don't have numbers so this is a this is a madeup fact but people can can judge it like I would say the usage of AI is predominantly through a browser like like when people are chatting to chatbt when they're using Google search and using it like they're doing this through through the browser or even like in a native app it's going it's it's a web view right like it's web it's web tech. Yeah. Um, and and more to the point, it's not using the local model. It's using a model the developer can depend on. And when they want to upgrade the model, there will be a round of testing and tweaking the system prompt before they make that switch on the on the public side. I just I don't see a lot of native apps using the you know because because on Android and iOS like they they give access to these uh local uh models and they don't tend to get used very much certainly not by anything that's making big waves in the native app space. Yeah. I'm just curious like what it looks like. Like I see a lot of pe people pushing the web into the chat, right? A lot of our stuff is being pushed into AI versus adding AI to our apps. You know, that's always the the sort of catch 22. Um, and I I wonder like like what else would be possible if this was now in the browsers if you could do free private hopefully fast uh prompting in via web APIs. I like I wonder what new features would then would then come up. Yeah. Yeah. I guess what I would like to see then is is like could could we have you know local models but the developer selected the user there's some negotiation between the user and the developer on what models are available what models the user is prepared to download and exist on disk that would require like there's a sort of fingerprinting danger right because knowing what models are available tell might tell you where the user has been before and we don't like using 4 GB origin on this stuff is is bad, right? Like so, but I think there might be a way through those those issues. Um, and that that would sort of give us this Yeah. this standard or maybe even just in a couple years, like I said, if the if the kind of difference between models settles down, then maybe that's a maybe that's a path forward as well. Yeah. Yeah, I could see that as well. especially like I don't know if Apple finally gets on their horse with this stuff and like ships like a sick one in the next OS update, you know, that covers a good chunk of it, you know, and then Microsoft will probably ship something um that would be great. But well, it's very telling that that Google like if if you're using Chrome on Mac OS like Google will still like the Chrome will still download that 4 GB model rather than go to the model that is right there already. Um, so you know, I think even the folks at Chrome want some consistency like for themselves maybe not for [laughter] everybody. Yeah, for their own. That's a good point. Can you speak on like how Google is kind of pushing this through and and how they tend to do that with some things that are not fully baked standards? What that what does that process look like? Is it just that they want this in there the way they want it, so they ship it, and then everybody else has to deal with that after the fact? Yeah, it's it's really that I mean, there was I'm pretty sure there's no coincidence that this thing shipped uh sort of fast and loose slightly before Google IO, right? You know, the slides will have been submitted for the conference um that says they shipped it and so they had to go ahead and do it. Well, they didn't have to, you know what I mean? that that would have been that would have been the push especially as you know Google's stock price depends on what they're what they are and are not saying about AI. So yeah, I mean the way they did it was just by going you know get push like release um and not really caring about what everyone else was saying and and sort of making speerious claims about developer sentiment. Um yeah. Yeah. So the best thing well you know the thing we can do about that is is make a noise like sort of you know challenge them about it like tell developers look what is being done in your name right you they they are saying you want this um and that's why they've done it um how do you feel about that um so so that you know even though they they are just sort of doing what they want for the the company interest at least make sure that people know that's what's happening. Yeah, I wonder about like other APIs like um I know Wes we talk about things like web Bluetooth or web MIDI and those are two APIs that are both only in Chrome. Um yes, but we just serial. So there is Firefox did that. Oh, I didn't even see that. Yeah. Yeah. Yeah. We just did. And I I think there's a strong chance that like we shipped web MIDI a while ago. Um and and I I think there's a good chance that web Bluetooth uh and web USB will follow it. We were against that for security reasons. Um but we feel like we we heard a lot from from our developer users. Um, we have a a strong community of tinkerers and you know, so we listened to their feedback on it and we felt like we found a way uh that expressed to the user exactly what they were letting themselves in for. Um, and so, you know, we hope they're sort of like, you know, reading those dialogues and uh, yeah, um, only accepting access to devices when they really want it. But a point that I've heard um the Chrome folks come up with which I think is actually valid is is that having the stuff in the browser is ultimately safer than having to install a native app for it. So like the few devices that that I have which will do like u firmware updates in the browser I'm like yeah do you know I I would rather that than have to download some some app. I use these like uh here I got one right here. These little ESP32s and I flash them all the time with just different little firmwares and whatever for Home Assistant and um like I used to have to download these like sketchy Java applets from Chinese websites to like do stuff or it would only be Windows and now you like you visit a website, you plug it in, you hold a button sometimes and it just flashes a microcontroller from the browser. unbelievably good experience. Yeah, I think I think that's good. Um, and yeah, the the you know, the web serial API can can do that uh with the ESP32s. So, that that bit is now in Firefox. That's sick. I didn't realize that. Do you think like Safari will ever I know you don't work for Safari or whatever, but you maybe have a scoop into the standards process in Safari. Do you think that they'll ever ship this type of stuff or like what's their hangup on the these things? Uh they they I mean they still surprise me every now and then. I was I was surprised when they shipped JPEG XL for example. Um but I I I don't see I don't see this one landing in Safari. I think it's just it's I don't think they have the same community of tinkerers that Firefox does. Um and I think they're kind of like as [snorts] a company generally happy with native apps. So, I I again, yeah, you know, I'd love for them to surprise me on this, but I I don't see it. Yeah, that's the bummer. I I mean, Web MIDI for me is because I'm like a music guy, so Web MIDI for me is one of those ones where I'm just like, please, Safari, come on. But I know their stands on it. And yeah, it's it's frustrating to just kind of know that, like you said, they're happy with their native apps. Yeah, it's a bummer. Uh Firefox DevTools, fantastic. Um, just visually they're the best. Um, and also like for many many years I was using Firefox DevTools cuz they were simply the best. Um, I'm I I don't even know what my question is here, but like like is that a different team as well? Like what's the thoughts on dev tools inside of Firefox? No, that team is is much closer integrated with the I mean it's a different team like like it isn't in well certainly in Chrome as well. uh can't speak for Safari but like it's it's very closely integrated with the the development of of web features. Um again it's a small team you know it's a very small team so like it it's just sort of constrained on resources uh more more than chromes I guess but yeah on that like if any if there's any sort of dev tools things that that you know people see that they think is less useful than it could be or if there's something missing then yeah just throw throw them over to I mean you can either file it on bugzilla which is a bad user experience or you can like send it to me on social media and I'll go through the bad user experience. uh on your behalf. But yeah, I I'm I'm I'm a big fan of it. I like I use um like my sort of daily driver is Firefox Nightly um because you know playing around with sort of new features and uh and and the dev tools there. And I would say like if anyone listening sort of believes like is is kind of want wants to help the Firefox mission I guess is uh one thing you can do is is run nightly um and then sort of file any bugs you see. Firefox nightly is so much more stable than um Chrome Canary and WebKit technical preview um ospario technical preview. And I and that's not a brag. That's just a kind of fact cuz I I mean I used to run uh Canary as as as my sort of daily and and you would go through like periods where it was just it would just crash every tab which I think is fine. It's a can it's a it's a Canary, right? I had to stop using it after all the web GPU was in testing so it kept crashing. Exactly. I think that's a perfectly valid way for a nightly browser to behave, but I just like Firefox nightly does not do that. So like it's there's this kind of much more kind of like focus on stability. Um so so that yeah that's it's a if you want to sort of be playing around with new features or sort of help by filing bugs then that's that's something you can do and you can largely largely run it as your daily driver. That's better than like Firefox developer edition. I guess nightly is updated more frequently. Yeah. So there's there's we're still sort of figuring out what we want to do with developer edition. Uh developer edition is beta. Okay. Now uh originally wasn't uh it originally was was closer to nightly. They used to have another channel called Aurora which is which is what uh developer edition was on. But it's now it's now running better. Um which is fine. But like I I I'm not I don't think we're getting anything useful out of developer edition right now apart from it having a really cool icon. It is cool. Yeah. Yeah, it does have a good great I think I think there's a a problem I have with it is like I think developers particularly web developers are notable by not using an addition of a browser. Like you know I've I've got like five or more browsers open right now and that's because I'm a developer. So that like but yeah I think sometimes like a browser saying we're the addition for developers is like no you're not like all of them are that's [laughter] because I'm all of them are right. Yeah that's yeah I I'm I'm curious about uh an interop you had mentioned uh we had gone over some of the things but you had mentioned one heading offset as an API. I wanted to make sure we hit on that because I had never heard of this. And then two I wanted to talk about some of the things in interop that you're most excited about. So, can you explain what this heading offset API is first and then maybe tell us about what your favorite new interop? Sorry. Heading offset we just landed in in Firefox nightly in the last few days and it's it's something I have wanted for uh uh god when when did HTML 5 come out? Like cuz HTML 5 sort of promised this feature but didn't deliver it. yeah, 2010 2011. So a long time ago. So heading offset lets you offset the level of all headings within the element. So it's it's an attribute heading offset one and that means all H1s in there become H2s and like all H2s become H3s whatever. And the reason I've always wanted this is is like if you were dealing with well sort of way way back when when this use case first hit me I was dealing with SSI includes in like Apache or or or whatever. And so it's like well what heading level do I use in my include and it's like well I don't know and and then you know maybe the the you know the include would be moved around the page and suddenly now the headings within that include are now all wrong uh compared to what they were. A more modern version of that problem is markdown. Right? you'll you'll have your markdown converter like take the H1 headings in the markdown and turn them into what like you you'll have something maybe that offsets them in your build process. Whereas with this, what you can do is just say, well, just offset them by like you when when an H1 when there's an H1 in the markdown, just output an H1 in the HTML. Doesn't matter because then when you put it in the page, you can have like a a parent div or whatever. And you could say offset because you'll know like you know just before that there's an H2 and you can say right offset all the headings in here by two and it will normalize it and that's it just makes that sort of and I guess as well as markdown it's it's components right a react component what heading does a does a react component use and it's like now it doesn't matter because now the the caller of it can wrap it in the thing and like you you just just make sure whenever you use a heading, you you you put a div around all of the child content and offset the the headings and then you can just, you know, in your component use start with H1 and everything will just work because the the offsets are all there. We need that in our own show notes as well. We had our our show notes, we were using an H1 for like the title of the show and then we parsed the markdown into our website and the H1 is syntax. It's the title of the website. So, we had to like offset them all and H1. Yeah. Yeah. Or even Yeah. So that's that's it. And and so if you if you're just in that habit of of offsetting everything, then it will just work. And if if someone then goes and moves that include somewhere else where, you know, you're not having to then go into your markdown build system and correct the the offset because it will be like as part of your HTML. Yeah. And with it, you get like a CSS selector for heading level. So rather than selecting the H1s, you can say, I want to select the level one headings or the level two headings. So it doesn't matter what tag they have. it will be what you know in terms of what is exposed to it like accessibility layers that particular level uh which is really nice. So yeah, I'm looking forward to that. Um you asked about interrupt and now I'm just looking at the interrupt site to remind myself. Um what am I going to say? Um I mean I know cross document view transitions are in there so that's that's a that's an easy one. Um but what I am what I'm going to say oh you see what the the thing I am really excited about which didn't make it into interrupt is custom select but we are working on it but things that were in interop was anchor positioning and popovers which are the building blocks for custom select and so this is this is being part of the process of like deciding what features should have priory priority in in Firefox. And you know when someone comes to me and says like I really want textbox trim and someone else comes to me and says I really want cross document view transitions. One of the things I need to sort of like think about is well hang on if we don't ship or if we're a bit later with cross document view transitions, people can still ship a site. It just means those animations don't happen in Firefox. The experience isn't broken. Whereas if we don't ship textbox trim Yeah. Yeah, either the layout is going to look a bit bad in Firefox or the developer is going to be angry that, you know, they can't use this lovely feature because Firefox is is letting them down. So that's that's so that that's kind of where I'm where I'm thinking there. Like my my heart is with view transitions. Uh total bias there, but I I look at popover and anchor positioning and think like that that's those are the key ones. And we we have we've already shipped both of those. Um which is nice. Yeah, and that's I mean I think that was one of the things I liked most about the transition to view the view transitions API is that simply by including it you weren't breaking the experience for any site that didn't use it and and that that that's such a a great way to be able to implement things and obviously like progressively enhance them as something that you know we've been doing our whole career took five years to persuade Chrome that that was an important feature that should be shipped and I was quite I was quite moody about it afterwards when when we when we sort of like started shipping it in Canary and all the developers were really excited about it. Well, a lot of developers were really excited about it. An email went round and it was a very well-meaning email, but by that stage in my Google career, I was quite grumpy. Like the one said like, "Well, we're it's we're so surprised by the developer reaction to this." And I was like, and I did reply. I was like are you because I am not because I have been telling you for 5 years that this is what you know anyway so does that mean everybody whining online about stuff like that that does make it back to the browser vendors like I I often think like anytime you anytime I post anything about like a new API you get all these replies of people being like this API sucks I was like where were you during like the standard process, you know, but like I guess like that stuff does eventually make it back to them. Yeah, it's [sighs] it's difficult, isn't it? Cuz there's always some recency bias like someone will post like a cool demo or something and then and then so you hear a lot of like you know you know we want that now and and then and we have to sort of filter that through like yeah how much recency bias is there here? What's the what would be the the downside of us like dropping everything and working on that versus like shipping the other stuff we have we have planned for. Um, but yeah, we I mean the whole part of sort of my role at Firefox is to be listening to that stuff. Um, we're very careful with like avoiding um mobs, I guess, because that can happen. So, what we have this uh GitHub repo called developers sentiment or something like that, he says trying to find uh a doc where he might have written it. What was it called? Um, yeah, sort of like we've got a repo for like developer feedback. Let me let me look it up. Developer something. Oh, I'll I'll get a link for Oh, developer signals. There we go. Right. So, and that's somewhere it's got all it's got an issue for all of the web features which aren't across all browsers and developers can go in and like, you know, say what they think. And one of the like before I started um at Misilla, they were just counting thumbs up on the issues. Um and that was something I didn't agree with because it's very easy for well where's someone like yourself like to post on Like social media happens all the time. Why isn't this feature supported and then a bunch of people will go on and click I use that to my advantage all the time. Yes. Exactly. Well, [laughter] so do I. Right. So I know, right? Um, so one of the things I fought for is that like you can still do that. you can still do the thumbs up, but it's a lower signal. And whereas the we we're encouraging developers there to uh you know, we've given a little bit they can copy and paste um little template which is like two headings like what I want to do with this feature and what I'm having to do in the meantime and and because you know that that seems like a nice balance because it's you know for for cross document view transitions say it's like what do I want to do with this feature? Nice transitions between pages. I don't need to make an SPA to to have them. Blah blah blah blah blah. What am I having to do in the meantime? It's just like, well, just not have those animations in Firefox. And we might go, yeah, okay. Well, compared to some of the other ones where people are saying, I'm having to include like a 300 kilobyte library to d or like, all right, okay, that's more interesting and we get a bit more information. Just a thumbs up. I got an API I would like to uh give a thumbs up here in this chat, which is I'm sure you're aware. I I actually saw you respond four months ago on a Mozilla bug thing, but just transition display with a loud discreet. Well, so so here's like I put I put a poll out [laughter] today actually um where because there's I had some discussion with the teams internally uh about like some recent priorities because I was I felt like maybe they were sort of not quite right. And so this used to make me laugh like we used to have project managers um at at at Google who would say like no the feature I'm championing is the most important because I went on to Twitter and asked people are you interested as this feature and everyone replied yes and it's like right yes I as a developer if you ask me if I want something I'll say yes of course so the so one of the things here I did a poll of like you know which of these would you like first uh is it line clamp margin trim or animating display none. And and so Scott, I'm taking you as a vote for display none out of those or or what do you think? Okay, I would vote for display none out of those. Yes, because I have so many use cases for that personally, whether that is drawers or modals or animations. I think that's reasonable like so line clamp like we already support WebKit line clamp and it's just but it's just it's quirky, right? It's it's trying to copy the the WebKit behavior which which is quirky. So my view on that is like well but people are coping pretty well with that in most cases. Um and then you've got the animating display none which is like yeah it it solves a real problem but then the downside is like if Firefox doesn't support it then maybe that in Firefox the model just disappears. Okay. Okay. and then margin trim. It's like right like working around the lack of margin trim is much harder, but then not a lot of people need it. So that's that's the kind of difficult bit is it's getting that balance. But I I think I agree with you that that it's animating display non is the is the one I'm most excited about and that seems to be what people are saying. Yeah. Well, to me that like that's a barrier for people who they reach for React when they could be reaching for, you know, CSS. So what I fought for a part of that feature that animating display non thing and uh the people working on it got pretty annoyed because I think I came in pretty late. So what I wanted is that when the feature is animating when when the element is animating from block to none or whatever to none during that animation it is inert. And the reason for that is I wanted to avoid the problem a lot of people create when they handroll this. And the problem they create when they hand roll it is that period of time where both things are on screen or like you've you've you've hit okay on the model and it closes but it hasn't really closed because it's got to transition away. Um, and then maybe what the user double clicks and the code beneath it is not expecting the ability to double click because you've clicked the button and then the thing's gone. Um, but if if you don't correctly make it inert, then then that becomes a possibility and someone can just go and add one of those transitions and then all of a sudden you you've broken a lot of accessibility. You've broken these like edge cases in UX. So that that that was one of the changes I I had sort of made made to that feature. Um, but it is also one of the reasons it's a little trickier to implement. Sorry. See, for me, it's it's it's really easy to just say, "I want this. Can I have this, please?" Uh, and then not have to think about any of all that stuff. So, thank you for I don't have you I know we're running out of time, but I'm [laughter] curious to ask about HTML and canvas. Have you been following any of that? Yeah. So, this is one where [laughter] um look, I'm I am exactly like Scott on this where I'm like, I like this. Can we ship this right now, please? Um, and I think so we're we're a bit more split about it internally at Misilla. Like there's a there's a sort of worry that a lot of people are going to do um bad things with this or things that are going to like certainly give trouble on uh lower end. I've done some unspeakable things already. I agree. [laughter] Yeah. So the the the developer years that goes into deciding how and when to upload an element or part of an element as a GPU texture like the years of developer hours have gone into that and these people a lot of these people come from gamedev like with that experience to to to implement this in browsers and with HTML and canvas we just give you the keys to the castle on that and hope you get it right and like yeah a couple of people because I I like the API player aren't you the so the videos I do, um, the little feature videos I do, I I build those in the browser and it's HTML and canvas that lets me like capture the frames and pipe it to the video encoder API. Um, so like I I do like the that API for that, but yeah, people were saying like, oh, so does this mean like I can render a page faster because I can do it with web web GPU or WebGL [laughter] and like no, it's going to be slower. it's going to be slower because you're probably not as smart as the years of developer hours that have been spent in in optimizing this stuff. And I like, you know, no insult to them because I that's true of me as well. Like I'll just like throw textures at it and hope it works, you know, but I do I do like I I like again it's another thing that I pushed for when I was at Chrome but was like unsuccessful there. Um so it's it's nice to see it Yeah, it's nice to see it being developed. I don't expect it to be something that lands quickly in um Firefox, but it's one of those ones I'm I'm happy that uh Chrome is pushing on it. Cool. And we've been like even though we're slightly unsure about it as an API, like we've been like helping with the API design around it. Um so I did some research around like text selection, like is there a need for a new API around that? But it like it turns out you can just kind of transform the real element around and even if you've got like an element on a sphere mapped on a sphere, you can just keep transforming the the underlying element and text selection will work on a on a you know on a sphere which is which is really nice. Um we one of the changes we got into the API was that we ensure that the element goes through the normal rendering pipeline in the browser. So they're v1 of it. You could just go like paint this element to this canvas in its current state, but that would be like a bit of a flip of the coin whether things like resize observers or intersection observers would run. Um, so that was one of the things we fought for is like a is a a proper render loop for the API, which they which which they've done. It's good. Yeah, I'm pretty happy with it. Awesome. Um, all right, we're running up on on an hour here. Let's uh move into the last section uh which is sick picks and shameless plugs. Uh I don't know if you came prepared as a sick pick or not. Did you? Yeah, I've got I've got some laying on us. Frantically wrote some down. Also, look, it's it's a heat wave in the UK uh right now. So, I I the first thing I wrote is Japanese sun cream because as a as a as a the whitest man in any room, it's the it's it's the best. Um anything that has sort of aqua in the title. Yeah. What's your uh go-to there? Uh so there's a couple one. There's a Nivea one which I quite like. Uh it tends to be a little cheaper. Um but then yeah, there's there's another one called what is it? Like boy, is it pronounced? UV aquar something something. Yeah. Sun cream is such a nice I do have some of this. You Bretts have such nice words for everything. Sun cream. What do you call the windshield? Windscreen. Yeah, the windscreen. Yeah. Yeah. Yeah. The bonnet. Um, it is the bonnet. The bonnet. Yes, the bonnet. The other one, the things I panic wrote down was like I was just sort of looking around and uh um uh I I really like the the game Track Mania and it's it's it's really Have you ever played it? M I I like go-karting and I have never played a game that gives me as close to the feeling of of go-karting as Track Mania does cuz it it has that sort of um you you know the tracks are really short and as soon as you mess up you'll just press the reset button and go back to the start and try again and so it has that kind of like Celeste or Super Meat Boy sort of feel to it but but in a car game. Um, what I decided to go with is Clues by Sam. Um, which is just it's yeah, daily game. I I still I play it every day. It's it's been fun to see that the guy develop it as well, like and add new ideas, but it's it's of all of those daily games, it's the one I play most uh most religiously, I guess. Oh, man. Uh, folks, if you're if you're not on Clues by Sam, it's it's just it's also I also do this one daily. This is the one I the only one of these I do daily. Um, man, it really teaches you a thing or two about logic. You think you understand it and then you when you're first learning, especially, you're like, I clearly know this person is a criminal or this I clearly know this person is innocent. And then you click it and you're like, what the hell? Like, what what what I what did I miss here? Um, man, it's it's a really great If you play it after a few drinks, it really shows you how incapable you are. [laughter] Like me me me me me me me me me me me me me me me me me me me me me me me me me me me me and um Remy Sharp uh if you know Remy uh inventor of the term polyfill. There you go. But we tried to we had a few drinks and then we tried to solve one of them together and just like was like no no we should probably go home. This is [laughter] we are way more under the influence than we know. Yeah, it's crazy how much of those that you that is like really where you notice those types of things, right? Where your brain just clearly isn't working as as expected, man. Yeah, Clues by Sam, great game. I would love to talk about that more, but I don't really games guy. Yeah. Not into Pokemon clues by Sam. Yes. Oh, that's cool. All right. Uh, last thing, shameless plugs. What would you like to plug to our audience? Where can we find you online, etc., etc. I um like the Firefox webdevs accounts which I set up which I do like well like like these polls and stuff and asking for feedback um and and also post like videos about interesting standard stuff and things that have become recently baseline. So um give give give those a follow. I'll I'll include a link. I try and be unavoidable so I am everywhere. Um there's like you know it and it's YouTube, Tik Tok, Instagram for the video stuff. Um but then I post the video stuff elsewhere as well, like Blue Sky, Macedon threads. I I'm on threads and there's no one Oh, I I find the opposite. I whenever I go on to threads, I'm like, "Wow, there's a lot of people here really." Um and Oh, there's a lot there's a lot of people there. They're just not reading this, though. I think that's [laughter] that's the problem. No, I every now and then I I have something that goes that like pops on threads which is is very bizarre. Same with like Facebook as well. I've been posting my reels on Facebook recently cuz I didn't think there was anybody on Facebook, but there's lots of people on there. Like I posted one of my old reels and it got like like almost a million views on it so far. So there's people there. I am I am not in that ballpark. I am nowhere near a million views. [laughter] Well, neither am I. That's why I was surprised. Yeah. And you get you get paid for it, too. Like some of them made a couple hundred bucks. Yeah, Facebook is huge now. I got to be posting on Facebook. All right. Thank you so much for coming on. Appreciate all your time and insights. This is really fun. And uh we'll catch you later. Peace.

Get daily recaps from
Syntax

AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.