June 15th, 2026 ×
Who Decides What Ships on the Web?
Transcript
Guest 0
Tell you a story and whether you wanna put it in the podcast. I know it's up to you. So we we did an episode of well, we did a series of HDB two zero three, like, forever ago, and we filmed it out in, in California because we would they're they're for Google IO at the same time. And one of the first episodes we filmed, because 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, at, like, a wine place, up a mountain thing, near San Francisco.
Guest 0
And most of the the shot was just us sitting there waiting for the light to be right because it just the cloud cloud you know, they they hit it. But but because we just sat outside, and and my skin, even though it was overcast, I got horrendously sunburned.
Guest 0
I 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 this feeling is. And then within an hour, I was bright red. But this was the first day of a week of shooting.
Guest 0
Like Oh, no. Day for a week. So I I had an absolute panic. Like, I didn't sleep that night because every hour, I set my alarm every hour to then go and dip my head in the sink of cold water because I thought that's smart. That's that's that's something that's gonna solve it. I really used the information. Solve it. So at, like, four in the morning, I panicked and just, like, went on to YouTube, and I was like, right. What what do I do? What what makeup solves this? And Yeah. There was this just really young girl kind of, like, going, you know, I'm gonna show you how to sort out, sunburn. First thing you're gonna do is you're gonna moisturize. And I'm like, lady, I've been moisturizing all night. I don't know. But and then but then she was like, and first, we're gonna apply the green makeup. And I was like, tell me all of your secrets. Let me go ahead and put this on this. Yeah. And it and it's sort it's sort of worked. You could tell me. I sort of look a little bit like mister David in the next episode.
Guest 0
That's funny. Absolute nightmare.
Wes Bos
Oh, that's you know what the move is? It's put more sunscreen on. It has zinc in it, and it it it cools the skin. I've been sunburned many times.
Guest 0
I have I have been applying after sun. And and for this recording, I put some matte makeup because I am I am a shiny boy. Like, I am a really shiny boy. Just like, at the best of times, if I put, like, an after sun on, I look like it looks like something's gone wrong with, like, a WebGL demo. Right? The the highlights are all sort of off. I look like a cue ball. You know? There's our intro. Scott, take it from there. I think that's a beautiful way to open this up.
Scott Tolinski
Yes. Welcome to Zendesk. Today, we have Jake Archibald here, and we're gonna be talking about web standards. We're gonna be talking about Mozilla. We're gonna be talking about Chrome, the prompt API, and a whole lot more.
Scott Tolinski
I'm really stoked. Jake, I've been a fan of yours for a long time. I, was a SpriteCal user back in the day.
Scott Tolinski
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 Mozilla. So, Jake, do you wanna give the audience who isn't familiar with you a little bit of background and then Node what you're doing at Mozilla?
Guest 0
Yeah. Sure. I, I Wes, the the short story, I I started my career at the BBC. I was there for four Yarn, and then I was you know, you know, I worked at a web agency for a year, Scott up for a year, and then I went to Google where I I was a Chrome dev rel for, a solid decade.
Guest 0
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 Wes the short story is I missed web standard stuff a Scott, so I'm I am now I am now at Firefox doing the the Vercel thing again.
Guest 0
I guess ESLint terms of, like, you're, what what what are the the the big hitters, I suppose. Like, I did a lot of the work around service worker stuff, fetch, and then sort of more recently, like, view transitions.
Guest 0
And the, the the linear easing thing in CSS where you can do, like, bounce easings and stuff Yeah. That was a kind of when 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 that was that was that. So So many of the things that I I love and use, man, that linear API
Scott Tolinski
rips.
Guest 0
Big fan of that. Weird name. Yeah. Weird name, but it works.
Guest 0
Yes.
Scott Tolinski
Yeah. Weird name, but it works.
Scott Tolinski
So after a decade at at Google, what's it like to leave Google in because, you know, there was a time Brilliant. 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
Guest 0
I keep a I keep a meticulous work diary. So the 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 Wes, had to sort of essentially sort of justify your reason for having the job still.
Guest 0
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'd I would always keep a diary and then I'd, you know, end up going back through it and, and go, oh, no. Okay. I 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. Like, of a job's always like, you don't need to be doing this. It's like, I Wes it's it's in me now. I can't That's not a bad idea, though. Like, you hit the end of the year and go, like, what did I do this year? And you start kinda, like, going through and, like, oh, I actually did quite a bit of stuff. I just forgot about
Wes Bos
all the stuff we shipped or all the projects we worked
Guest 0
on. Yeah. Yeah. Exactly. That's great.
Scott Tolinski
And if you want to see all of the errors in your application, you'll want to check out Sanity at century.io/syntax.
Scott Tolinski
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 century.io/syntax.
Scott Tolinski
Again, we've been using this tool for a long time, and it totally rules. Alright.
Guest 0
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 DevRel 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,
Wes Bos
and the budget that we have. You know? So that's Yeah. Let's talk about that. Like like, where is Mozilla? Where is Firefox at right now?
Guest 0
Yeah.
Guest 0
Well, I don't know. It's a big question. I, like Yeah. I I am still shocked by how quickly they move we move given the resources.
Guest 0
Right? Like, that's Mhmm. I actually, I'd I'd say they because I'm it's not me implementing the features.
Guest 0
And every time, like, you know, because I do these little videos about, you know, new features, and it's like, it's it's not often that we're last to ship.
Guest 0
And given the, like, relative budgets, you know, it's it's it's not a browser owned by a billionaire, which the others are.
Guest 0
The others which have their own engine on. 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 are using an engine from a a from another.
Guest 0
And yeah. So the the amount that we're able to ship given that, sometimes we Yarn 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 Wes, recently, things like the, the sanitizer API, we were first to ship that.
Guest 0
Heading offset just landed, which I would love to 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, Scott container queries recently, and we were last there. That's going to happen. Wes, you know, we're a a big part of this role compared to Google is is finding the priorities.
Guest 0
Because, like, that that's I'm supposed to be the connection between my developers and the the browser engineers. And so, yeah, like, different to when I was at Google, I I'm on the hook a lot for trying to to find out what we should be working on, like, what's going to
Wes Bos
annoy people the least, like, which order. Yeah. That was my Wes. It's 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.
Wes Bos
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
Guest 0
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.
Guest 0
Like and and it's, you know, it 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. Yeah. So that's really number one priority.
Guest 0
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?
Scott Tolinski
Yeah. The 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 or, yeah, is it just doing a better job of communicating? About a year. So if you're saying that, then I'm gonna put that on my See? On my little work diary. 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, 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.
Guest 0
But one of the things I did last year is, I I got a bit involved in the interop project, and we shipped a little web form thing, Wes where it listed all of the things that were proposed for interop, and there was, like, like, a 150 of them, and let developers, like, pick as many as they want and rank them.
Guest 0
And we use that to to decide what we were gonna push for, you know, in in the meetings of the other browsers, and and because because that gave us a, like, a a ranking of all of the features, which JS great. But we are still using that as a, like, okay, there's a bunch of stuff that didn't make it interop, 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.
Guest 0
Unfortunately, couldn't couldn't get agreement in the interop group to publish the results, but, but, you know, I could Wes, 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 Yarn, and so it was just For 2026? Yeah.
Guest 0
Yeah. And we we got people to we use, like, an algorithm on the ranking and, like, we got, you know, Scott a the the thing that sort of most consistently in the algorithm sort of came out top.
Scott Tolinski
Yeah. What what because we we covered interop 2026.
Scott Tolinski
I don't know. I
Guest 0
I I Oh, I I I'll give you a clue. The number one thing did not make it into interop.
Scott Tolinski
Did not make it into interop. Okay. Oh. That's a great question because I feel like I have such a different, radar for what I want. I don't I don't know our timeline, timeline animation, scroll scroll animations.
Guest 0
That did make it into interrupt. That was number seven in in our in our ranking. Was it
Wes Bos
not haptics? Haptics would be an interesting one. No. ESLint terms of the gamepad API or, like No. That was more of like a like a navigator.
Wes Bos
What's the the thing you can make the phone buzz?
Guest 0
Oh, that's oh, yes. The right that is an API. Yeah. Do you know what? I don't think that was even on the on on the ESLint, but, yeah, that is an API. It's that is Chrome only, I I I think. Node. Okay. Number one, temporal.
Scott Tolinski
Yeah. Okay. Yeah.
Guest 0
Yeah.
Guest 0
By by a long stretch.
Guest 0
Maybe there was some recency bias there. I don't know. But what the the, an interesting way I cut the data Wes, like, okay. Like, what if Wes reduce the the the analysis down to people who made only really because you could you could rank as many as you wanted.
Guest 0
Mhmm. And it was like, if we make the 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? Because I just wanted to be sure, is anyone trying to meddle with the data here? Yeah. Yeah. Yeah. Right. Yeah. Wes compat. Yeah. Yeah. One thing jumps up when you do that, when you analyze that, and it is JPEG XL. Oh. Yeah. That's the thing that people came out to, like, I'm gonna put this top of my list and throw some other stuff in. Just couple of other items.
Wes Bos
Can you tell us what JPEG XL is, for the audience? Because I think it's kind of exciting thing.
Guest 0
Yeah. It's a it's a new image codec, that is, I think, not as good as what we already have. Like, it it has I think it's really good at low compression.
Guest 0
Like, I I think it it preserves detail if you're happy with high file sizes.
Guest 0
In my opinion, it's people should be pushing compression more, and and in those cases, JPEG XL doesn't do so well.
Guest 0
But we have we have, you know, an implementation almost ready to land, and and Chrome's working on it as well. The implementation's a Wes implementation, and that was kind of our requirements. Like, we kind of pushed them to say, like, alright. We'll support it if as long as it's a a memory safe implementation, and that that that was our requirement. JPEG XL has a really like, it it pushes okay. A lot of the image formats we have are kinda hand me downs from a video format. Right? That's that's true for WebP.
Guest 0
That's true for AVIF. Like, a WebP, it's it's VP eight. It's a VP eight key frame. AVIF is an AV one key frame, whereas JPEG XL is an image format, which is great. And one of the things we get through that is, progressive rendering, because progressive rendering doesn't matter for a video format. Right? So 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.
Guest 0
But and and it yeah. It's kind of like every few bytes you get, it it will kinda give you, like, a a new square of the the image and, yeah, that kinda thing. But the AVIF folks have started to figure out progressive rendering as Wes, 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.
Guest 0
So you provide the progressive passes as frames.
Guest 0
So that means you can decide what those frames are.
Guest 0
So you can provide an initial frame for your image, which is a low resolution blurry version. Like, it doesn't have to be the same image.
Guest 0
Okay. Yeah. So it will 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 AVI, if you can usually get a render much sooner and you're in control of what that render is.
Guest 0
Mhmm. Cool. That was thing. Yeah. I I it's it's kinda 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 gonna release it, like, soon, because it works with existing decoders. But, yeah, they like, you can just generate a blurry version. Like, if your image is, like, a 150 k, like, it's a really high detailed image Yeah. You can get, like, a blurry version where you can tell exactly what the image is in less than 10 k. And so ADF is supported in
Scott Tolinski
all major browsers currently?
Guest 0
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 XL is terrible, so no one ever should use it because it's it's kind of like GIF in its
Wes Bos
compression ratio.
Wes Bos
Better to ship a video if you want animation? Is that is that the move? Percent. Yeah. 100%. Mhmm. Yeah.
Wes Bos
Man.
Wes Bos
But, yes, we'll see we'll see a 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 m three u eight Wes you have, like, a four twenty and a seven twenty and a ten eighty, and it it kind of adapts. I think the problem there is it's, like, you you you you're still
Guest 0
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 gonna have
Scott Tolinski
to split that all out into one. Right? I see. Yeah. Yeah. Right. UI. It's like a playlist, essentially. Yeah.
Scott Tolinski
Okay.
Scott Tolinski
Yeah. Man, that's inter I had no idea AVIF was this well supported.
Guest 0
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, right, I'm gonna encode everything at quality 50, it will occasionally, like, make something look a bit over compressed.
Guest 0
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 that JPEG XL people came up with.
Guest 0
And it does improve stuff a lot there. It seems to come up with it becomes much more consistent.
Guest 0
I mean, it's it's great to see the competition there. Right? Because that's we're getting better stuff thanks to competition.
Wes Bos
Yeah. I I wanna ask about Firefox and, like, just, like, end user features versus, like like, web features. Because I I often think about Firefox needing to get more people using it. And often you hear from web developers being like, well, they should be implementing this obscure thing. And I think, like, yeah. 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 warp 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, end user features and web? No. It's totally like, engine people are in a in a different room.
Guest 0
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, Scott 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.
Guest 0
But, yeah, I and the the end user features of Firefox, like, if people wanna send me, like, requests and stuff, they can. It's not it's not the area I work in.
Guest 0
I dipped into it dipped into it very briefly because of the, the AI controls, the AI kill switch, it was originally sort of being floated JS. And because I really wanted that to land right.
Guest 0
And there there was there was a lot of, like internally, we weren't sure what to do with translation, because we warp like, is translation AI? Because no one knows AI. Mhmm. Right? Yeah. It's just a term people throw around. And so we were like, if we because if Wes put these controls in and it doesn't block translation, then people will say you're cheating. Right? You're sneaking AI in because it's it's a machine learning local model.
Guest 0
You know? In 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 server.
Guest 0
And so, yeah, I ended up doing, like, a 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 re enable it. And that was that was useful for me because the initial mocks internally didn't have that second Sanity. They didn't have that ability to to block everything but turn one thing back on.
Guest 0
So yeah. But, I especially on, like, the Fediverse, if you if you mention AI, people get really angry. So that kind of retired from that. That's pretty good.
Scott Tolinski
You just mentioned it. Yeah. And people people go nuts.
Scott Tolinski
I Wes that that's a good lead in to this whole prompt API business. Mhmm.
Scott Tolinski
So Chrome has been I'll let you kind of really get into the details here, but Chrome has been pushing through what is this prompt API.
Scott Tolinski
And there's been some disagreement, so to say, in the in the, GitHub issues, in the comments, and, basically, their their entire, process for for what is this prompt API. Can can you give our audience a high level overview of what the heck is going on with this thing?
Guest 0
Yeah. So, like, the you know, Chrome has been looking at this API or developing this API since 2024.
Guest 0
And I did a bit on a a podcast, one 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.
Guest 0
And we took a look at this this API, and we were kinda like, oh, this doesn't this doesn't feel great. You know? Some of I I guess I wanted to say that because I all of the points that I've been pushing on, recently are concerns I had in 2024, like, pre pre Mozilla.
Guest 0
So prompt API is a it's an API where you create a language Node, you can give it a system prompt, and then you prompt it and you get the response.
Guest 0
And it's, like, down to the implementation, whether it's how it does that, like, whether it gets the the stuff from a cloud service or whether it gets it from a local model. Chrome uses a local Node. And so when you first request it, it will download this this four gigabyte model.
Guest 0
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.
Guest 0
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 four gigabytes? Right? That's a capability that we just give
Wes Bos
at every website. A browser could step in, I guess. Yeah. You you transformers JS. You can download a four gig model and and run it right in your user's browser without any any permissions.
Guest 0
And you can store it locally. You can put it in the the file system API or or, you know, IndexedDB if it will if it will cope. But, yeah, there 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, JS far as I understand, purge it if it's not. But, yeah, it gives you this this LLM in in the browser.
Guest 0
The bit that we are worried about is, like, it is a just a nondeterministic API in the browser. And we've had we've had this before. We've got math.random. Right? We've we've had Node determinism before.
Guest 0
There's there's also the the translation API, which we don't like the current API, the the way the translation API is currently designed. But the idea of a translation API, we're we're kind of warp to even though there's it's sort of nondeterministic, but it's nondeterministic within a lane. You know? There's, like, there's a kind of, whereas this is just, like, a black box you throw text out and get text back. Mhmm. And I and I'm sure I mean, folks listening and and new folks will know this, like, 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, 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. It's like, Deno. Don't be like that or be more like this. Be less like this. But you're designing around one model.
Guest 0
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.
Guest 0
Mhmm.
Guest 0
And, like so I I guess to give you an example, I've got this, me and my half, we've we've got a pool table. We play pool quite a Scott, and I created, like, little thing, little home assistant thing where when one of us wins, I have a a language model which I keep you know, the system keeps the Scott, 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. That roast.
Guest 0
Yeah. Did this Like, I was I would use OpenAI. And, firstly, it was it used a lot of Americanisms.
Guest 0
And so I was like and it 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'd so I'm like, alright. You remember that this is a British voice that will be spoken out of. And then, like, it was the voice coming out was like, blimey, mateys. Jake's only gone and won again. And, like, oh, what? Like, bloody hell, governor. That's how you sound to us. Yeah. Yeah. That JS a little bit how you sound to us. I'm sorry. Yep.
Guest 0
So it Wes, like, more and more iteration, but I got it right.
Guest 0
And then I switched to Gemini kinda just because I was playing with it and also because it was cheaper.
Guest 0
And it they it started doing things like it would say, oh, you know, Jake potted the black and won the game. And it's like, wait.
Guest 0
And that's not necessarily true. And it wasn't true when I first heard it. It's like, no. My my partner point put the black in a foul, which means I won.
Guest 0
So and I only sort of noticed that because I switched the Node. So then I I Wes had to go then and and update the system prompt for this new model. Now that's that's because I was picking the model as the developer.
Guest 0
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.
Guest 0
And they, like and so the worry is, like, even if a a browser comes out with a better Node, like, it's a 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.
Guest 0
So users will perceive it as worse even though it's better. And that's that's Sanity 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
Wes Bos
their their model feel like WebKit model.
Guest 0
Well, that's the thing JS we would either have to, like, ship Google's model, which is, you know, everything just merging around a single engine.
Guest 0
Yeah.
Guest 0
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 it's multiplied, like, exponentially. So Yeah. Yeah. But the the other part that we're worried about and, actually, this is the one that kind of gets to me the most JS if you look at the the Google Docs for this prompt API, it says, like, if you're going to use this API, you must first acknowledge our terms and conditions.
Guest 0
And this is an open this is an open web API. Right? Right. Yeah.
Guest 0
Terms and conditions that go beyond the law of the the country you're in. These are just extra Google laws.
Guest 0
And one of them is, like, you know, you can't facilitate misleading claims related to a government or democratic process. Like and it's it's sort of vague.
Guest 0
So, I guess, to give you an example, like, if you use the prompt API to summarize an article that says the twenty twenty US election was rigged against Donald Trump through the 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 twenty twenty US election was not rigged against Donald Trump. Mhmm. Now in one of those cases, you are breaking the Google terms and conditions depending on which side Google believe. Yeah.
Scott Tolinski
Yeah. So it it yeah. It becomes a Google
Wes Bos
API. Yeah. Yeah. I 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 wanna live in that world. I don't wanna have to pay to use the web.
Wes Bos
I don't wanna I don't wanna live in a world where like, we we saw it already with the, like, the Apple iPhone where, like, the the apps are Scott locked down to what you can do. There's lots of cases.
Wes Bos
And I don't I don't know that I want this, like, governing body choosing what it's able to do. And I know that they're not gonna do crazy stuff, but they might.
Wes Bos
Yeah.
Guest 0
Wes, so I I use I use AI in my coding and, like, you know, I gave a conference talk recently, and I I held I was, you know, I designed my slides in HTML, and I I was using a bit of Claude, a bit of, a co pilot.
Guest 0
And JS I was working around, like, I I was I did something, like, you know, say width equals blah blah blah Bos, and I hit enter and I realized, like, oh, I'm I'm I'm now waiting for the for Copilot to do the height equals because I I 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's you know, go to the GitHub status page. Apparently, everything fine. And then I realized that in my because my notes are also in there.
Guest 0
And I had used the word in my notes.
Guest 0
And it turns out co Copilot just gets all pearl clutchy and just Really? Will Co Copilot more than any of them, Wes. Yeah. Definitely. Yeah. Oh, wow. Yeah. So So that's the kind of and and it's like, well, you know, Prettier doesn't do that. You know? Like, TypeScript auto complete doesn't get all pearl glitchy on me. And so that I do worry about that that sort of stuff, that kind of, like, the the neutrality, kind of disappearing in in in this kind of stuff.
Scott Tolinski
So what would a better prompt API look like in the eyes of Mozilla?
Guest 0
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, as long as the scope of non determinism is limited. Like so I I I go back to the the translation API.
Guest 0
The the current Google proposal of the one they shipped, for translation is just text in, text out.
Guest 0
And we had, like, a developer I was, you know, kinda saying, well, we we think this needs to work on DOM, not just text. And we 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.
Guest 0
That's Oh, man. That's that's that's a security Sanity I came up with some cases where you could give it stuff which didn't look like HTML, but when you try translated it from Chinese to English, it created script tags, you know.
Guest 0
Oh, man.
Guest 0
So 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.
Guest 0
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.
Guest 0
I think this 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
Wes Bos
the models are gonna be wildly different, it it would be less of an issue, but we were 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 user'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. It's like, let's not I don't know if we should be pushing forward with some standard, which nobody's gonna use in two years because it's it's crappy and limited and doesn't do what we wanna do, and then everybody just Npm installs something that's way better.
Guest 0
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. Yeah. You can, like, give it example conversations and define the roles of those conversations.
Guest 0
And it's sort of stuff that you can imagine Scott of being still helpful if a completely different paradigm to like, came came about, like, a completely different system. It it doesn't say it's a large language model. It I think it's called 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 well, when when I complained made noises about this in a couple of years ago, 2024, I was told that this was just going to exist as a, an API in Chrome extensions. And I was kinda like, yeah. Fair play. That seems okay. It's it would be a good place for this stuff to be experimented with. The API ESLint a decent shape. Mhmm. But that's another thing that we, like, really objected to at Mozilla JS, like, the the reason so, you know, we objected. Mozilla objected.
Guest 0
Microsoft objected.
Guest 0
Yeah. So Mozilla WebKit, Microsoft. And then, but the reason they gave for Scott of plowing on is, like, the developer sentiment was strongly positive.
Guest 0
But, like, you they they had a link to the evidence, and it was, like, a couple of social media posts, a a GitHub thing where they were asking for feedback and two people replied.
Guest 0
And 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 eight point zero, presumably at a 10. But that was for the API existing in, browser extensions, not as an open web API. So we were very like, this that seems misrepresentative and misleading and that sort of stuff. So, yeah, we we were pretty unhappy about that. On on, like, a flip side, though, do you not see
Wes Bos
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 if if, like, you can't do this stuff in a web browser, then people get pushed into, like, using it right inside of ChatGPT 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
Guest 0
progressive web apps because 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 made up fact, but people can can judge it. Like, I would say the usage of AI is predominantly through a browser.
Guest 0
Like like, when people are chatting to ChatJPG, when they're using Google search and using it, like, they're they're doing this through through the browser.
Guest 0
Yeah. 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.
Guest 0
Yeah.
Guest 0
And and most of the point, it's not using a 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, local, 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.
Wes Bos
Yeah. I'm just curious, like, what it looks like. Like, I see a lot of peep 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.
Wes Bos
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,
Guest 0
fast,
Wes Bos
prompting in via web APIs, I I wonder what new features would then would then come up. Yeah. I guess what I would like to see then is is, like,
Guest 0
could could we have, you know, local models, but the developer selected Yeah. 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 and exist on disk, that would require like, there's a sort of fingerprinting danger, right, because knowing what models are available to might tell me why we've used the theme before. And we don't like, using four gigabytes per origin on this stuff is is bad. Right? Like so but I think there might be a way through those those issues, and that that would sort of give us this,
Wes Bos
yeah, the standard. Wes maybe even just in a couple of 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 Wes. 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, that would be great.
Guest 0
But Well, it's storytelling that that Google like, if if you're using Chrome on macOS, like, Google will still like, the Chrome will still download that four gigabyte model rather than go to the model that is right there already.
Guest 0
Yeah. So, you know, I think even the folks at Chrome want some consistency, like, for themselves, maybe. Not not for everyone. Yeah. For their fucking I think that's a good point. Can you speak on, like, how Google is
Scott Tolinski
kind of pushing this through and and how they tend to do that with some things that are not fully baked standards? What the 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
Guest 0
I'm pretty sure there's no coincidence that this thing shipped, sort of fast and loose slightly before Google IO. Right? You Node? The slides will have been submitted for the conference, 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. Yeah. Especially as, you know, Google Scott price depends on what their what they are and are are not saying about AI. So, yeah, I mean, the way they did it was just by going, you know, git push, like, release, and not really caring about what everyone else was saying and and sort of making spurious claims about developer sentiment.
Guest 0
Yeah. So the best thing well, you know, the thing we can do about that is is make a Node. Like, sort of, you know, challenge them about it. Like, tell developers, look what is being done in your name. Right? You you're you they they they are saying you want this, and that's why they've done it.
Guest 0
How do you feel about that? 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.
Scott Tolinski
Yeah. I wonder about, like, other APIs like, I know Wes we talk about things like Wes Bluetooth or web MIDI, and those are two APIs that are both only in Chrome.
Guest 0
Yes. But we just showed both serial.
Guest 0
Yeah. So there is a 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, Wes shipped WebMIDI, a while ago.
Guest 0
And I I think there's a good chance that Wes Bluetooth, and WebUSB will follow.
Guest 0
Wes were against that for security reasons, but we feel like we we heard a lot from from our developer users.
Guest 0
We we have a a strong community of tinkerers.
Guest 0
And, you know, we so we listened to their feedback on it, and we felt like we found a way, that expressed to the user exactly what they were letting themselves in for.
Guest 0
And so, you know, we hope they're sort of, like, you know, reading those dialogues and, yeah. Yeah.
Guest 0
Only accepting access to devices when they really want it. But a a point that I've heard, 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.
Guest 0
So, like, the few devices that I have which will do, like, firmware updates in the browser, I'm like, yeah. Do you know what? I I would rather that than have to download some
Wes Bos
some app. I use these, like, here. I got one right here. These little ESP 30 twos, and I flash them all the time with just different little firmwares and whatever for Node Assistant. And, 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 then it just flashes a microcontroller from the browser.
Wes Bos
Unbelievably good experience.
Guest 0
Yeah. I think I think that's good.
Guest 0
And yeah, the the, you know, the the web serial API can can do that, with the Wes 30 twos. So that that bit is now in Firefox. That's sick. I didn't realize that. Do you think, like, Safari
Wes Bos
will ever I know you don't work for Safari or whatever, but you maybe have a 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 hang up on these things?
Guest 0
They they I mean, they still surprise me every now and then. I was I was surprised when they shipped JPEG XL, for example.
Guest 0
But I have 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.
Guest 0
And I think they're kind of, like, as a company, generally happy with native apps.
Guest 0
So
Scott Tolinski
I'd I'd I'd again Yeah. Like, 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, WebMini for me is because I I'm like a music guy. So WebMini 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.
Scott Tolinski
Yeah. That's a bummer.
Wes Bos
Firefox dev tools, fantastic.
Wes Bos
Just visually, they're the best.
Wes Bos
And, also, like, for many, many years, I was using Firefox dev tools because they were simply the best.
Wes Bos
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?
Guest 0
No. So that team is is much closer integrated with the I mean, it's it's a different team. Like like, it isn't in well, certainly in Chrome as well. I can't speak for Safari. But, like, it's it's very closely integrated with the the development of of web features.
Guest 0
Again, it's a small team.
Guest 0
You Node? It's a very small team. So, like, it it's just sort of constrained on resources, 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 to a bad user experience, on your behalf. But yeah. I'd I'm I'm a I'm a big fan of it. I'd like, I use, like, my sort of daily driver is Firefox Nightly, because, you know, playing around with sort of new features and, and and the dev tools there. And I would say, like, if anyone listening sort of believes like, it's it's kinda want wants to help fire the Firefox mission, I guess, is, one thing you can do is is run nightly, and then sort of file any bugs you see. Firefox nightly is so much more stable than, Chrome Canary and WebKit technical preview, as far as technical preview. And I and that's not a brag. That's just a kind of fact. Because I I mean, I used to run, Sanity as as as my sort of daily, and and you would go through, like, periods where it was just it would just crash at the tab, which I think is fine. It's a it's a it's a canary. Right? I had to stop using it after all the WebGPU. The canary. Right. Yeah. It was in testing, so it kept crashing.
Guest 0
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.
Guest 0
So, like, it it's this is kind of much more kind of, like, focus on stability.
Guest 0
So so that yeah. That's it it's a if you wanna Scott of be playing around with new features or sort of help by filing bugs, then that's that's something you can Node. And you can largely
Wes Bos
largely run it as your daily driver. That's better than, like, Firefox developer edition? I Wes, nightly is updated more frequently.
Guest 0
Yeah. So there's there's we're still sort of figuring out what we wanna do with developer edition.
Guest 0
Developer edition is beta Okay. Now.
Guest 0
Originally wasn't.
Guest 0
It originally was was closer to Nightly. Mhmm. They used to have another channel called Aurora, which is which is what, developer edition was on. But it's Node it's now running Okay.
Guest 0
Which is fine. But, like, I 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 great icon. I think I think it's there's a a problem I have with it JS, 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 they, like, spoke Yeah. I think sometimes, like, a browser saying, worthy edition for developers JS like, no. You're not. Like, all of them are. Yeah. That's that's because I'm a developer. All of them are right. Yeah.
Scott Tolinski
That's yeah. I I'm I'm curious about, ESLint interop. You had mentioned, we'd 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'd 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
Guest 0
API is first, and then maybe tell us about what your favorite new interop API is? Wes just landed in in Firefox nightly in the last few days, and it's it's something I have wanted for, Wes god. When when did HTML five come out? Like because HTML five sort of promised this feature but didn't deliver it. Yeah.
Scott Tolinski
'2 Yeah. 2010. Node. Long time ago. So
Guest 0
a long time ago.
Guest 0
So heading offset lets you offset the level of all headings within the element. So it's it's an attribute.
Guest 0
Heading offset, one.
Guest 0
And that means all h ones in there become h twos.
Guest 0
And, like, all h twos become h threes.
Guest 0
Whatever.
Guest 0
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, 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 h one headings in the markdown and turn them into what? Like, you you'll you'll have something maybe that offsets them in your build process.
Guest 0
Whereas with this, what you can do is just say, well, just offset them by like, you know, Wes when an h one when there's an h one in the markdown, just output an h one in in the HTML.
Guest 0
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 h two, and you can say, right, offset all the headings in here by two, and it will normalize it. And then it it just makes that sort of and and, yeah, I guess, as well as markdown, it's it's components. Right? A React component. What heading does a does does a React component use? Right. It's like Node 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 a div around all of the child content and offset the headings. And then you can just, you know, in your component, use Scott with h one, 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 are using an h one for, like, the title Yeah. Of the show. And then we parse the markdown
Wes Bos
into our website, and h one is
Guest 0
syntax. It's the title of the website. So we had to, like, offset them all and And h Node. Yeah. Yeah. 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 you're not having to then go into your markdown build system and correct the the the offset because it will be, like, as part of your HTML.
Guest 0
Yeah. And with it, you get, like, a a CSS selector for heading level. So rather than selecting h ones, 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, like, accessibility layers, that particular level, which is really nice. So, yeah, I'm I'm looking forward to that.
Guest 0
But, yeah, so interop, and now I'm just looking at the interop site to remind myself.
Guest 0
Wes am I gonna say? I mean, I know cross document view transitions are in there, so that's that's a that's a an easy one.
Guest 0
But what I'm what I'm going to say no. You see, what the the thing I am really excited about which didn't make it into interop 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 part being part of the process of, like, deciding what features should have priority in in Firefox. And, you know, when someone comes to me and says, like, I really want text Bos 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.
Guest 0
If we don't ship but if 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.
Guest 0
The experience isn't broken.
Guest 0
Whereas if we don't ship text Bos Right. Yeah. Yeah.
Guest 0
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 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 few transitions, 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,
Scott Tolinski
which is nice. Yeah. That's I mean, I think that was one of the things I like most about the transition to view the view transitions API JS 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 careers. Five years to persuade
Guest 0
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 Vercel all the developers were really excited about it. Oh, well, a lot of developers were really excited about it. Pnpm 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 the the one said it was 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.
Wes Bos
Because I have been telling you for five years that this is what you know? Anyway, that's, like So does that mean It does show whining online about stuff? Like, that that does make it back to the browser vendors. Like, I I often think, like, anytime you anytime you 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 standards process? You know? But, like, I guess, like, that stuff does eventually make it back to them. Yeah. It's
Guest 0
it's difficult, isn't it? Because there's always some recency bias. Like, someone will post, like, a cool demo or something, and then and then see you hear a lot of, like, you know you know, we want that Node, and it and it and we have to sort of filter that through, like, yeah, how much recency bias is there here? What's the what 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? But, yeah, we I mean, the whole part of sort of my role at Firefox is to be listening to that stuff.
Guest 0
We're very careful with, like, avoiding, mobs, I guess, because that can happen. What so what the we have this, GitHub repo called developers sentiment or something like that.
Guest 0
He says trying to find, a doc where he might have written it. What was it called? Yeah. Scott of like we we've got a repo for, like, developer feedback.
Guest 0
Let me let me look it up. Developer something. Oh, I'll I'll get a link for it. Oh, developer signals. There we go. Right. So and that's Scott 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.
Guest 0
And one of the like, before I started, at Mozilla, they were just counting thumbs up on the issues.
Guest 0
And that was something I didn't agree with because it's very easy for well, Wes, someone like yourself, like, to post on Yeah. Like, social media That was all time. Like, why isn't this feature supported? And there's a bunch of people will go on and click on it. That to my advantage all time. Yes.
Guest 0
Exactly. Well, so do I. Right? So I know. Right? 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 and whereas the we we we're encouraging developers there to, you know, we've given a little bit they can copy and paste, a little template, which JS, like, two headings, like, what I want to do with this feature and what I'm having to do in the meantime.
Guest 0
And and because, you know, that that seems like a nice balance because it's, you know, for for cross cross document view transitions, say, it's like, what do I wanna do for this feature? Nice transitions between pages. I I don't need to make an SPA to to to have them 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 the the the or, like, alright. Okay. That's more interesting. And we get a bit more information, just a a thumbs up. I've got an API I would like to,
Scott Tolinski
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 the Mozilla bug thing, but just transition display
Guest 0
with a a loud discreet. Wes, so here's Yes, please. Like, I put a I put a poll out, today, actually, where because it does I had some discussion with the teams internally, about, like, some recent priorities because I was I I felt like maybe they were sort of not quite right. And so this JS to maybe laugh. Like, you you we used to have project managers, at at Google who would say, like, Deno. The feature I'm championing is the most important. Because I went on to Twitter and asked people, are you interested in this feature? And everyone replied Wes. And it's like, right.
Guest 0
Yes. JS a developer, if you ask me if I want something, I'll say Wes. Right? Like, this is of course. So the so the one of the things here, I did a poll of, like, you know, which of these would you like first? Is it line clamp, margin trim, or animating display none? And and so, Scott, I'm I'm taking you as a vote for display none out of those, or or or what do you think? Okay.
Scott Tolinski
I would vote for display none out of those. Yes. Because I have so many use cases for Yeah. That.
Scott Tolinski
Personally, whether that is drawers or Node or animations Yeah. I I think that's reasonable. Like,
Guest 0
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.
Guest 0
So my view on that JS, like, well but people are coping pretty well with that in most cases.
Guest 0
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 the in Firefox, the Node just disappears. Okay.
Guest 0
Okay. And then margin trim JS, 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 JS it's getting that balance. But I I think I agree with you that that it's animate and display Node is the is the one I'm most excited about, and that seems to be what people are saying. Yeah. What? To be that, like, that's a barrier for people who they reach for React when they could be reaching for,
Scott Tolinski
you know, CSS.
Guest 0
So what I fought for the part of that feature, that animating display Node thing, and, the people working on it got pretty annoyed because I think I came in pretty late.
Guest 0
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 the animation, it is inert. And the reason for that is I wanted to avoid the problem a lot of people create when they hand roll 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 Node and it closes, but it hasn't really closed because it's got a transition away.
Guest 0
And then maybe what the 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.
Guest 0
But if if you don't correctly make it inert, then Yeah. Then that becomes a possibility. And someone can just go and add one of those transitions, and then all of a sudden, you've 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, but it is also one of the reasons it's a little trickier to implement. Sorry.
Scott Tolinski
See, for me, it's it's it's really easy to just say, oh, I want this. Can I have this, please? And then not have to think about any of all that stuff. So thank you for I don't inform you. But I get too excited. It's fine. Have you I know we're on that time. I'm curious to ask about HTML and Canvas. Have you been, following any of that?
Guest 0
Yeah. So this is one where, look, I'm I'm I am exactly like Scott on this Wes I'm like, I like this. Can we ship this Yeah. Right now, please? And I think so we're we're a bit more split about it internally at Mozilla. Like, there's a there's a sort of worry that a lot of people are going to do, bad things with this or things that are going to, like, certainly give trouble on, lower end points. Unspeakable things already. I agree.
Guest 0
Yeah. So the the the developer Yarn that goes into deciding how and when to upload an element or part of an element as a GPU texture. Like, Yarn of developer hours have gone into that. And these people a lot of these people come from game dev, like, with that experience to to to implement this in browsers.
Guest 0
And with HTML and Canvas, we just give you the key to the castle on that and hope you get it right. And, like, yeah, a couple of people because I I like the API. I play around. You know, the so the the videos I do, the little feature videos, I do, I I build those in the browser, and it's HTML in Canvas that lets me, like, capture the frames and pipe it to the video encoder API. Oh, what? So, like, I I do like the the the 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? And, like, no. It's gonna be slower. It's gonna be slower because you're probably not as smart as the years of developer hours I've been ESLint in in optimizing this stuff. And I'd 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 Yeah. I I like again, it's another thing that I pushed for when I was at Chrome, but was, like, unsuccessful there.
Guest 0
So it's it's nice to see it.
Guest 0
Yeah. It's nice to see it being developed. I don't expect it to be something that lands quickly in, Firefox, but it's one of those ones I'm I'm happy that, Chrome is putting 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. So I did some research around, like, text selection. Like, is there a need for a new API around that? But it, like, it 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, maps on a sphere, you can just keep transforming the the underlying elements and text selection will work on a on a, you know, on a sphere, which is which is really nice.
Guest 0
We've one of the changes we got into the API was that we ensured that the element goes through the normal rendering pipeline in the browser. So that v one of it, you could just go, like, paint this element to this canvas in its current state.
Guest 0
But that would be, like, a bit of a flip of the coin whether things like resize observers or intersection observers have run.
Guest 0
So that was one of the things we fought for is, like, a is a a proper render loop. Oh, that's good. API, which they which which they've done. It's good. Yeah. I'm I'm pretty happy with it.
Wes Bos
Awesome.
Wes Bos
Alright. We're running up on on an hour here. Let's, move into the last section, which is sick picks and shameless plugs.
Wes Bos
I don't know if you came prepared a Sick Pick or not, did you? Yeah. I've got I've got some heat waves.
Guest 0
Lay it on us. Frantically wrote some down. It's also like, it's it's a heat wave in The UK, right Node. So I I the first thing I wrote is Japanese sun cream because as a as a as a the the whitest man in any room Oh, yeah. It's the it's it's the best.
Guest 0
Anything that has sort of aqua in the title. Yeah. What what what's your, go to there? So there's a couple of ones. There's a Nivea one, which I quite like. It tends to be a little cheaper.
Guest 0
But then, yeah, there's there's another one called what is it? Like,
Wes Bos
Boyer? Is it pronounced UV? Aqua rich something something? Yes. Yes. Sun cream JS such a nice I do have some of this. Yeah. You Brits have such nice words for everything. Sun cream, Wes what do you call the windshield? Wes windscreen? Yeah. Windscreen. Yeah. Yeah. Yeah. The bonnet.
Guest 0
It is. The bonnet. The bonnet. Yes. The bonnet. The the the other one the other things I panic wrote down Wes, like, I was just sort of looking around and, I I really like the the game TrackMania, and it's it's it's really have you ever played it's I I like go karting, and I have never played a game that gives me a closer the feeling of of go karting as Trackmania does. Because it it has that sort of, you you you know, the tracks are really Scott. And as soon as you mess up, you'll just press the reset button and go back to start and and try again. And so it has that kind of, like, Celeste or Super Meat Boy sort of feel to it, but but in the car game.
Guest 0
But what I decided to go with is Clues by Sam, which is just it's yeah. Daily game. I I still I play it every day. It's it's been fun to see the the guy develop it, as Wes. Like, I can add new ideas, but it's it's of all of those daily games, it's the one I play most, most religiously, I guess. Oh, man.
Scott Tolinski
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. That's the one I the only one of these I do daily.
Scott Tolinski
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 I miss here?
Guest 0
Man, it's it's it's a really great game. After a few drinks, it really shows you how incapable you are.
Guest 0
Like, me me and, Remy Sharp, if you know Remy, inventor of the term, polyfill. There you go. Yeah. But we tried to we we had a few drinks, and then we tried to solve one of them together and just, like it was like, Node. No. We should probably go home. This is we're
Scott Tolinski
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.
Scott Tolinski
Man, yeah, Clues by Sam, great game. I would love to talk about that more about it on the West. Games guy. Uh-huh. Yeah. Not into Pokemon and all that stuff. Clues by Sam. Yes.
Wes Bos
That's cool. Oh, yeah. Alright. Last thing, shameless plugs. What would you like to plug to our audience, work when we find you online, etcetera, etcetera?
Guest 0
I, like, the Firefox Wes devs accounts, which I set up, which I do, like well, like like these polls and stuff and asking for feedback, and and also post, like, videos about interesting standard stuff and things that have become recently baseline. So, give give give those a follow. I'll I'll include a link. I try and be unavoidable, so I am everywhere.
Guest 0
There's, like, you know, it the I'm it's YouTube, TikTok, Instagram for the video stuff, but then I post the video stuff elsewhere as Wes, like blue sky, Macedon X,
Wes Bos
Threads. I I'm on Threads, and there's no one there. 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?
Guest 0
And Oh, there's a lot there's a lot of people there. They're just not reading as well. That's that's the problem.
Wes Bos
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 because I didn't think there's anybody on Facebook. But Wow. 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.
Guest 0
So there's people there. I am I am not in the ballpark. I am nowhere near a million views.
Wes Bos
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 $100.
Scott Tolinski
Yeah. Facebook is huge. I gotta be posting on Facebook, Wes.
Wes Bos
Alright. Thank you so much for coming on. Appreciate all your time and insights. This was really fun, and, we'll catch you later.
Wes Bos
Peace.
