
We Cover Apple's WWDC
JavaScript Jam Live discusses Apple's WWDC announcements for web developers including Web Push limitations, passwordless authentication, and game platforms for coders.
Episode Description
JavaScript Jam Live discusses Apple's WWDC announcements for web developers, including Web Push limitations, passwordless authentication, and how game platforms inspire young coders.
Episode Summary
This episode of JavaScript Jam Live features Maximiliano Firtman, a well-known expert on Safari and web APIs, breaking down Apple's WWDC announcements from a web developer's perspective. The conversation centers on Web Push support, which Apple announced only for macOS Ventura initially, with a promise to bring it to iOS the following year. Max details the significant limitations of Apple's implementation, including ignored custom icons and unresolved questions about how push notifications will interact with installed PWAs on iOS due to the way service workers are independently registered per home screen icon. The discussion broadens into Apple's overall commitment to the web platform, with Max estimating Safari's PWA support at roughly 50% compared to Chrome, citing not just missing APIs but also poor developer tooling and communication. Chris from Everfund adds perspective from the payments space, noting how Apple's walled garden approach creates barriers for web-based Apple Pay integration. The panel also highlights the new passwordless authentication standard using passkeys, which replaces server-stored passwords with public-private key pairs and offers a compelling cross-platform user experience. The second half shifts to a lighter topic — a developer who built a JavaScript game inside Microsoft Word — sparking a conversation about the joy of creative coding and how platforms like Roblox, Minecraft, and Unity serve as entry points for kids to learn programming through game development.
Chapters
00:00:00 - Introduction and WWDC Overview
The episode opens with host Ishan Anand welcoming the panel, including special guest Maximiliano Firtman, who is well known for his detailed annual analysis of new web APIs coming out of Apple's WWDC. Ishan sets the stage by noting that both Google I/O and WWDC surprised him with meaningful announcements for web developers after he had previously expressed skepticism about their relevance.
Max begins his breakdown by noting that Safari and web development received only about three minutes of stage time during the nearly two-hour WWDC keynote. He highlights that the two biggest announcements were a new tab-sharing UI feature and the passwordless login standard, while Web Push was only briefly mentioned on screen without a formal keynote announcement, which initially caused confusion in the developer community.
00:05:38 - Web Push Announcement and Its Limitations
Max explains that the real Web Push details emerged after the keynote through blog posts, release notes, and tweets from the Safari team. Critically, Web Push was announced only for macOS Ventura, not for iOS, though Apple promised iOS and iPadOS support the following year. The implementation follows web standards and does not require a paid Apple developer account, but it comes with notable restrictions — custom notification icons are ignored in favor of the Safari icon, and many additional notification features are unsupported.
The conversation turns to a deeper technical concern: how Web Push will work with installed PWAs on iOS. Max explains that each PWA installed to the home screen creates an independent service worker registration, and the same app can be installed multiple times. This raises unresolved questions about which service worker would handle an incoming push notification, and whether clicking a notification would open the PWA or Safari with a potentially different session. The WebKit team has not provided answers, leaving developers uncertain about practical usability.
00:14:22 - Apple's PWA Support Gap and Developer Frustrations
Ishan asks Max to estimate how Apple's PWA and API support compares to Chrome, and Max places it at roughly 50%, factoring in not just API coverage but also the lack of debugging tools, poor documentation, and limited communication with developers. He notes that many companies decline to invest in PWAs because they lack confidence that their apps will work reliably on iOS, and bug fixes from Apple can take months or years. The panel discusses whether Apple's motivations are resource-driven or strategic, with legal pressure from antitrust cases and the "Safari is the new IE" narrative potentially pushing Apple toward more web support.
Chris from Everfund shares his experience in the nonprofit payments space, noting that Apple Pay integration on the web requires paid developer certificates, creating barriers that don't exist with Google Pay. He argues that Apple is unlikely to fully embrace the open web when the App Store generates significant revenue through its 30% commission. Ishan offers a counterpoint, suggesting that Apple is a large company with competing internal interests, and references a prior episode with the couple who coined the term PWA for deeper context on this tension.
00:25:07 - Passwordless Authentication and Other Safari Updates
Before departing, Max highlights the new passwordless authentication standard using passkeys as one of the most impactful announcements. The system replaces traditional passwords with a public-private key pair, where the private key is stored securely on the user's devices via iCloud and only the public key is sent to servers. This means stolen server data would be useless to attackers. Max emphasizes that while this is a cross-platform effort compatible with Android, Chrome, and Windows Hello, Apple's polished user experience could be the catalyst that drives widespread developer adoption.
Ishan expands on the passkey user experience for the audience, describing how users can share access tokens without revealing passwords and even log into someone else's computer by scanning a QR code with their phone for a temporary session. He also briefly covers other notable Safari updates, including the CSS has pseudo-selector, container queries, a file system API, and new viewport units that adapt to Safari's dynamic UI elements like the disappearing bottom navigation bar and collapsing URL bar.
00:31:13 - JavaScript Game in Microsoft Word and the Joy of Creative Coding
The conversation shifts to a lighter topic: a developer who built a JavaScript-powered game inside Microsoft Word by exploiting its extensibility, using tables for layout, GIF images as sprites, and base64-encoded assets. Anthony reflects on how this project captures the pure joy of programming — the thrill of bending a tool to do something it was never designed for, without any goal of monetization. Ishan connects this to the history of computing, referencing the first computer game built at MIT and a Turing Award winner who described early coding challenges that inadvertently prefigured computer viruses.
The panel agrees that this kind of playful experimentation is what draws many people into programming in the first place, particularly as children. Anthony notes that games are often the gateway that attracts young people to the industry, suggesting that making game development more accessible could broaden the pipeline of future developers.
00:36:38 - Getting Kids into Coding Through Game Platforms
Anthony shares his experience introducing his nine-year-old to Roblox, which uses Lua as its scripting language and offers an open platform where users can build and even monetize their own games. Eric draws parallels to earlier platforms like Starcraft, which spawned major titles like Dota and League of Legends through user-created maps, and discusses using Unity to teach his son game development starting around age eight. Both agree that while parents can create opportunities, the spark of interest has to come from the child, and pushing too hard can backfire.
The discussion touches on practical advice: Eric describes starting his son with Photoshop to design sprites before progressing to animation and game logic, while noting that overly complex projects can cause kids to lose interest. Anthony mentions "The Advanced Roblox Coding" book by Heath Haskins as a resource. The episode wraps with Ishan teasing an upcoming topic about static site generation with React Server Components and thanking the panel and audience for participating in the open mic format.
Transcript
00:00:01 - Ishan Anand
Hello, Anthony. Let me bring you up. Let's see. I don't want to send you an emoji, but I'll do that anyway. There we go. Invite to speak. Hey, Hampton. We'll bring you up. Chris. Hey. Welcome, everyone. There we go. Dad. Dad's out of town.
00:00:31 - Anthony Campolo
And now it's Uncle Ishan.
00:00:33 - Ishan Anand
Yeah. Oh, it looks like you're here early. I'm always used to calling you Firt from your Twitter handle, but it looks like you were able to make it. You're busy, but welcome.
00:00:44 - Anthony Campolo
So, who watched WWDC?
00:00:46 - Ishan Anand
Maximiliano Firtman has been. I've been following you for years as you blog repeatedly about every year, you know, what comes out on new APIs from WWDC for web developers. So I invited him to join us today to talk specifically about WWDC.
00:01:03 - Maximiliano Firtman
So it's not my fault. It's not my fault.
00:01:06 - Ishan Anand
There are a number of new APIs that Apple announced that were really exciting. But before we jump into that, let me just do what I call the station break. I do it here at the beginning, and then I'll do it halfway through, and then I'll do it at the end.
00:01:19 - Ishan Anand
Welcome to JavaScript Jam Live. JavaScript Jam is a podcast for front end and full stack web developers. JavaScript Jam Live is actually a continuation of something we've been doing for over a year previously on Clubhouse, where it was an open mic night for anybody to raise their hand and say, hey, I want to talk about this. Anything JavaScript or web development is on topic, and we try to be as much listener-driven as we are invited-speaker-and-panelist-driven. So anyone's always free to raise their hand and we'll bring them to the stage and they can speak. But the topic today and the reason we invited you was WWDC. I think about three episodes ago, I bemoaned the lack of relevance for web developers of Google I/O and WWDC. And Google I/O proved me wrong with a bunch of exciting new updates, and WWDC proved me wrong with a bunch of new updates, including Web Push. So with that, why don't I turn it over to you? And actually, do you prefer Max or Maxi? How do you prefer it?
00:02:18 - Maximiliano Firtman
Max is fine. I know it's long, so Max is fine.
00:02:22 - Ishan Anand
Okay.
00:02:22 - Maximiliano Firtman
And Maxi, actually. In Spanish, it's typically Maxi, but in English it's typically Max. Yeah.
00:02:28 - Ishan Anand
And we met in person finally at JS Mobile Conf a couple years ago where we were both speaking.
00:02:34 - Maximiliano Firtman
That was in Chicago.
00:02:37 - Ishan Anand
It was in Boston in 2017, or 2018. You're certainly well known in terms of every time there's a new beta, you look at the APIs in detail. You look for bugs and not just what they claim they support. And so you've got a lot of extensive expertise and history here. So what were your immediate reactions coming out of WWDC? I've looked at a few videos, looked at some of the announcements, and I looked at some of your coverage. But why don't we just start with you telling us what you thought and WWDC as it relates to web developers.
00:03:07 - Maximiliano Firtman
Okay, so let's see. First we have expectations, so we can talk about expectations. It's difficult to say what we were expecting as web developers, because typically WWDC is not for web developers. And the amount of time that they spend talking about the web is typically short. And this year, the keynote in particular was actually, I think, even shorter than previous years in terms of Safari and web development. In fact, I think I measured that. It's, what, 3 minutes and 11 seconds from the 1 hour and 50 minutes, which is less than other WWDCs. So from that point of view, it was short. And in terms of what they said there, we had maybe two big pieces of news. One that has to do with Safari and the user interface, so not for developers, that has to do with sharing tabs with different people when you are in a shared session. But yeah, that's not a JavaScript API. So it's something on the user interface. From a mobile developer's point of view, maybe the biggest news was not actually push, and I will get into push in a minute, but this new idea of replacing passwords with a new standard, where if you have a login page you can make small changes in your website and start accepting the new idea of not using passwords.
00:04:38 - Maximiliano Firtman
But anyway, that was the news. But before that news there were like 20 seconds where they said the browser was implementing more APIs. They were talking about HTML5 video, that they were the first one supporting that because of the lack of Flash. If you remember the fight between Steve Jobs and Adobe at the time, with the iPhone not supporting Flash. But anyway, in the list they even said that they were supporting a lot of standards in the past year. And they mentioned a couple, and they mentioned Web Push. And on the screen we saw Web Push standards as part of one of the technologies they were supporting. And the first reaction to that was weird, because that's a lie. We know that push is not there yet, and they didn't announce push actually during the keynote. So it was just that mention saying that, yeah, we did that.
00:05:37 - Ishan Anand
Right.
00:05:38 - Maximiliano Firtman
Anyway, the good news is that after the keynote, for the first time, I could say that we had over the next hour a blog post, Safari release notes, and also the Safari team tweeting about this and interacting on Twitch, which is new. And if you take all those actions, we did have some announcements, including Web Push, but there is a big caveat. So Web Push was not announced for iOS yet. Web Push was announced only for macOS Ventura, not even from Big Sur and beyond, so only for Ventura. And then yesterday, at one of the WWDC sessions that's available now for free, they explained why, in terms of why you will need to have Ventura for having Web Push. But anyway, the only thing about iOS, and that's what we were actually expecting from the PWA world, is that they promised next year. So they actually confirmed that Web Push will be available on iOS and iPadOS, but next year. We don't know exactly when, if that's iOS 17 or even further away. Okay. After that, what I can say to maybe close the Web Push situation and see if you have any questions.
00:07:06 - Maximiliano Firtman
The Web Push implementation is the standard one, so you don't need to pay for the Apple Developer Program. If you are using Web Push on your website, it should work, but it's a little limited. For example, notifications that you receive from websites will ignore your icon. Your custom icon, it will be the Safari icon. Okay, so compared with notifications in Chrome or Firefox, it's a more limited specification, at least in this version. And that information is coming from tweets. Actually, I was asking about this and I got replies, maybe for the first time, from the WebKit team about these situations. And they confirmed that, for example, the icon is ignored and many of the additional custom things that you can add to a notification are being ignored. So you can just put a title message and it's going to be the Safari icon, at least as of today. And macOS Ventura only. Wow.
00:08:09 - Ishan Anand
Okay, I didn't notice that thing about the icon. I did watch the session, but that's yet another way that the web feels like it plays second fiddle against native applications on the device in the ecosystem. So we should get to the passwords thing, because there was a bunch of stuff they announced that I thought was really exciting. Even things like CSS, things like container query support, things like inert elements. And I was like, I don't even touch CSS normally. I'm terrible at it. And I was like, oh, I can see how this is useful. But before we get to that, Web Push has been the headline feature. But I agree, login without passwords is useful. Why do you think they finally have caved to supporting it? I mean, caved's not the right word, but why are they supporting Web Push now? Why not earlier? Do you have a sense of what's driving that, maybe?
00:08:56 - Maximiliano Firtman
Yeah, it's difficult to have the real reason. We can talk about a couple of reasons. Everything is speculation here. But you know that in many countries Apple is receiving a lot of legal pressure. And even Apple itself, last year in, I think it was in Australia, in court, they actually mentioned PWAs for the first time. Apple lawyers at least showing that they're not a monopoly, or the App Store is not actually a monopoly, because you have PWAs. And I think there is pressure on that side, legal pressure on that side. And also we've seen lately, in the past probably six months, how the Safari team is trying to fight against the idea that Safari is the new IE. They're making efforts on that side, and I think it's part of the same situation. They are hiring more people as well for Safari. I'm not sure if Apple wants this or not, but anyway, it seems like it's happening slowly, but it's happening. So we are seeing some changes on that side. It's true that Safari is releasing more versions over the year. In fact, the CSS updates, or many of the updates that you mentioned, such as inert, were actually shipped not with 16, but with 15.x.
00:10:13 - Maximiliano Firtman
So we actually had 15.1, 15.2, 15.3, 15.4, and 15.5 the past year. And many of the new CSS things that you saw maybe in the session, or in the What's New in Safari and WebKit session, many of those new HTML things and CSS things were actually already shipped. So they're not for 16. They are already there.
00:10:37 - Ishan Anand
Oh really?
00:10:38 - Maximiliano Firtman
In iOS 15.4, 15.5.
00:10:41 - Ishan Anand
I remember seeing lazy-loading images and I remember being like, yeah, hasn't that shipped yet? I thought they already supported it. Okay, so that makes sense then. So if their hand is being forced here or if they really want it, I know you've been really good about categorizing what I'd call incomplete support. Like, officially the API is there. Officially you can use it. But pragmatically and practically, as a developer, there's a gap. The icon is a good example that you brought up with push notifications, not the favicon for your website. There are things where you could install the same PWA multiple times and you get 40 instances of the service worker. They're all independent of each other, and they don't really fully behave like apps. Is that still the case now with PWA API support in general, or do you feel better in that dimension?
00:11:33 - Maximiliano Firtman
On iOS it's still the case. The thing is that I'm not saying that that's bad per se. It's different from the other browsers. The first situation that we have is that Apple never documented that. So that means that they can change that on every version. In fact, they have already changed that many times without actually saying a word about that. But that situation, that a PWA in iOS is just an icon, I'm not sure the audience will know the internals of iOS, but I actually dug into that, and there is an XML in the OS with all the icons on the home screen, and a web app or a PWA is just mentioned there, pointing to another XML, and the XML has the URL. Actually that's all. And there is also a random ID that is generated inside. But yeah, you can add the same PWA multiple times because from an Apple point of view there is a UX issue there, because I think it's just a web clip. It's just like a bookmark to a website, but then it's an app at the same time. And I think that's a problem for push because, yeah, Apple promised push for iOS and iPadOS next year, but I'm not sure that will work with installed PWAs.
00:12:51 - Maximiliano Firtman
And in fact we asked that of the WebKit team, and the answer was that we need to wait for next year. So they don't have a public answer for us at this point. The thing is that if they don't change the PWA implementation in the operating system, it might be actually really challenging to implement Web Push for PWAs. Because think about this. So you are in Safari, you grant permission for push. Right now, at the Safari level, the permission goes to the origin, right, to your domain. And when you receive a push message, actually the OS will wake up the service worker registered for that origin. When you install a PWA on the home screen on iOS and iPadOS, you will have a different service worker registration. And if you install the same PWA a couple of times, you will end up with several service worker registrations. So meaning that when you receive a push message from one origin, what's the service worker that is going to be executed? All of them? One of them? Will Apple allow developers to send multiple messages to the same device? I don't think that makes sense.
00:14:04 - Maximiliano Firtman
I think that the options here are that iOS will support push only on Safari and the other option is that maybe they invest in actually upgrading or making the PWA implementation better. I don't know. So we need to wait.
00:14:22 - Ishan Anand
So I just want to underscore for the audience the importance of what you're describing and the importance of the work you do. You actually go and try the APIs and document how they're sometimes not usable, or they are usable, but in ways that actually matter for you to incorporate them into your app. So what you're describing right now is a situation where you might install a PWA and get a push notification from that site, and then when you click on it, rather than going to the PWA you just installed, it opens a web browser. It's like if I installed the Facebook app and I got a notification that somebody sent me a message and I click on it and it took me to Facebook in Safari rather than Facebook the app.
00:15:01 - Maximiliano Firtman
Yeah, with another problem. In the browser you might have a different session.
00:15:07 - Ishan Anand
Oh yeah, absolutely. Yeah, great point.
00:15:08 - Maximiliano Firtman
And so the notification doesn't make any sense.
00:15:12 - Ishan Anand
Yeah, so it's like an example of, on paper, the API support is there, but is it actually usable pragmatically for developers to build an experience around? Maybe limited. So with that in mind, before we leave, I'll open up to other folks on the panel or folks to raise their hand, and feel free to raise your hand and we'll bring you up to the stage to speak. But the question I just want to ask you before we do that is, if you take Chrome on mobile devices, let's call it 100%, where do you think Apple's coverage of PWAs and APIs that matter, weighing more heavily the ones that are more important or have more demand, like Web Push, against maybe some of the more esoteric ones that don't rate as highly, what percentage comparable coverage of PWAs does Apple have with what they've at least promised us in iOS 16? Are they at 20%? Are they at 50%? Are they three-quarters of the way? What does that gap feel like to you? It's a very subjective question.
00:16:10 - Maximiliano Firtman
Yeah, but are you talking about API support or market share?
00:16:14 - Ishan Anand
I'm talking about API support. If I'm a developer, and PWA is a viable route for me, how good is Apple support compared to Chrome?
00:16:23 - Maximiliano Firtman
Yeah, it's probably 50%, I would say, because it's not just supporting the API. It's also, for example, the ability to debug and see what's going on. For example, service workers, debugging service workers, and the lifecycle on iOS is almost impossible. You don't have a web inspector on Safari. It doesn't have a way to inspect your assets, for example, like the application cache library. You don't have that. So they didn't invest in adding that. Even if they have that tool for Web SQL, even though that is currently deprecated, it's like, yeah, we added the service worker. Okay. And it's your problem. So they're not helping the developer to actually find bugs or even submit bugs to them because you don't know what's going on. Also, another quick example on that is that it seems like they are supporting the persistent storage API, where you can actually request persistent storage so then the browser will not clear the data that you store. But is it working or not? The API is there. We don't know if it's working. There is no way to tell if it's working or not. And yeah, they didn't say a word about that.
00:17:38 - Maximiliano Firtman
So it's like, maybe the API isn't there, but there is a lack of communication with developers. Maybe it's a lack of resources or lack of interest, I don't know. But I think that the gap is big. In fact, talking with lots of developers and companies, that lack of support from Apple is probably the biggest challenge today in the PWA world. A lot of companies, from a business point of view, typically say no to the PWA platform because they think they're going to invest in a platform where then on iOS they don't know if it's going to work. They don't feel a commitment from Apple to make it work. We find bugs many times, and then it takes months, if not years, to get those bugs solved. Maybe this is changing. Okay, I'm not there yet. I'm not seeing the big change yet, but we'll see. I think that Web Push will definitely help in that business situation. Most companies will say, okay, we have Web Push, then okay, let's see if we can implement this. But it's still a promise, and we are not sure if it's going to be fulfilled or not.
00:18:51 - Ishan Anand
Chris, I think you have your hand up. I'll open up. I know I've been asking a lot of questions, but anybody in the audience, feel free to raise your hand. Happy to bring you to the stage, or any of the speakers. Chris, go ahead.
00:19:00 - Chris (Everfund)
Yeah, I have not a strong opinion about this, but an opinion that I don't think it's ever really going to change. And if it does change, it's only going to get more hostile to the open web. And I bring up this example of payment requests. A payment request is basically that fancy button where you click it when you go to checkout. It says, do you want to pay with Apple Pay or Google Pay? And Google Pay is super easy. They just accept it. Any browser, any Chromium browser, they go, you can do Google Pay no matter what, no problem. But then with Apple you have to install a third-party file onto your website, meaning that there's an extra layer of security there. But the worst thing about that security is that they say this is good for the people. Okay, sure. But the worst thing about it is that you have to have an Apple account that is a paid developer. You've gone through that certification and you've got this certificate. Most people actually just get around this by using an authenticated certificate. But it's one of these things where if they really want to open up the full potential of really good notifications, I think they'll just block it behind certificates and all these other things.
00:20:17 - Chris (Everfund)
Meaning the walled garden is all very hard to get out of. And my final point is not really hot take, but why would they do it when they can take a 30% cut of everything that goes through that?
00:20:29 - Ishan Anand
So we should just give folks some background on your background in the payment space. Chris, why don't you just tell people about Everfund and what you do, just for context?
00:20:39 - Chris (Everfund)
Yeah, I work in nonprofit donations, so we're helping nonprofits take payments easier online. And the biggest thing about it is that most payment platforms out there right now for nonprofits don't have things like Apple Pay, Google Pay, and the latest standards in terms of technology. So actually adding them in is a really big deal to our customers. And it just shows that the barrier is so big to the normal person. It's like, how do I get Apple Pay on my website? In the nonprofit industry, it's quite a big barrier.
00:21:16 - Ishan Anand
So I'm going to defend them a little bit here in that they have said you do not need an Apple developer account. You probably need to register in some form or another for Web Push, but they have said it won't be charged for and you don't need the developer account for it. We should move on and talk about the passwordless authentication. By the way, the claim is you need to talk to what they call an issuer, but that can be multiple third parties like your hosting provider or your CDN, at least potentially. But I hear what you're saying on payments. Yeah.
00:21:48 - Chris (Everfund)
I think the only thing I can add about the push notifications is that they could purposefully have you not get shown all the information, so they could say, oh look, we're going to enable it for everybody where you don't need an Apple account. But if we want that rich text presence that looks like a default iOS app, for example, that's when you need an Apple account. So I think there's still ways around it. And obviously the main use case is security. I totally get that. But I think that Apple's never going to commit to the free web when they take a 30% cut. Hot takes done.
00:22:29 - Ishan Anand
There's an episode of JavaScript Jam where we had the husband-and-wife team who coined the term PWA, and we talked a little bit about this. I'd recommend you guys go to that episode. One of the things they said was Apple is a large company. Maybe we shouldn't describe a single motivation when there are probably multiple competing interests within the company that they're trying to settle and figure out. There are probably some folks inside who are committed to the open web and some folks inside who are like, it's a resourcing thing. And from a shareholder perspective, why should we invest in something that will potentially hurt our revenue? So that makes sense. That was episode number 12, actually, where we had Alex and Francis on the future of PWAs. Oh, looks like we had somebody else. Eric, let's bring you up. Eric, what did you want to chime in on this about? I'll give you another second to come off mute. Otherwise I'll keep going. So before we move off of Web Push, I do wonder, Max, what do you think it says that we've noticed over the couple years.
00:23:29 - Ishan Anand
As noted, we don't get proper announcements about Safari, really. We get change logs, but it's not on stage. We do get video. So there are dedicated sessions, and sometimes these things are communicated in side channels, in tweets, and so they don't get full billing. What should we interpret from that? Is that, again, the sense that the web plays second fiddle, or how should folks interpret that?
00:23:55 - Maximiliano Firtman
Right.
00:23:55 - Ishan Anand
Have you seen improvement over the last.
00:23:58 - Maximiliano Firtman
Yeah, absolute improvement. It's still not 100%. If you compare that with what Firefox is doing or Google is doing, it's still far away. They say it has to do with resources. But yeah, Firefox is not a big company, and they're doing a better job. Even today, they have a blog post, and the WebKit blog post, another technical note, when you get deep into that note, they don't have all the details there. So, for example, the icon. And when you see a web.dev article from Google or an MDN article from many people over there, they are trying to go deep on every question that developers may have. And here we are answering a couple of questions, not all of them. I'm not sure if they think that's enough or, again, they don't have more resources and it's what they can do and they're waiting for more resources. I don't have the answer there. We are seeing an improvement. Finally, after years and years of complaining, they listened and they are trying to make a change. Yeah, that's my take on that. Just to let you know, I will need to leave in two minutes, folks.
00:25:07 - Maximiliano Firtman
Okay.
00:25:08 - Ishan Anand
Okay. I will say I've noted that Jen Simmons is very active asking for input. What are the big things that you would highlight besides web push that folks should check out?
00:25:17 - Maximiliano Firtman
No, I think the password thing is a new paradigm for the web that will increase security, and it's not actually a big deal from an implementation point of view. You need to make changes, but not really huge changes. But it will improve phishing and also logins, and it will actually be faster, and I think that's pretty cool. It's also multi-platform, so actually you implement that and it will work also with security keys on Android or Chrome or Windows Hello on Windows. It's a multi-platform effort, and I think that Apple pushing it in a very nice way and with a very simple UX, I'm not sure if you saw the video, but actually, when you get into a website supporting this, you will just, of course, log in with Face ID or Touch ID. We have that today. But anyway, when you are doing that, there is like a token that we are sending. It's like a standard login with something on top of that. With this new idea, we are not going to save a password server-side. So we are replacing the password with a public key. So your iCloud will store the private key.
00:26:29 - Maximiliano Firtman
So on every device that you have with Apple's security system, you have the private key, and then the public key will be sent to your server, so you can actually check that. So even if someone is stealing data from your servers, the public key by itself is completely useless. So I think that's a new paradigm. But again, it's not Apple only. But it's something I think that Apple making a nice UX for will push developers into implementing that change, and that will be good for the future of the web.
00:27:01 - Ishan Anand
Very cool. Thank you for taking the time to join us and, you know, keep being active online on Twitter, letting us know the new stuff coming out of WWDC and for PWAs in general.
00:27:13 - Eric
Sure.
00:27:14 - Maximiliano Firtman
Thank you. Thank you.
00:27:15 - Ishan Anand
I don't know how many people had seen the video he's referring to in terms of private access tokens and passkeys, but basically, just for the audience, the new feature they're allowing is this ability to log in with your Apple ID. And it's got some really cool user experience benefits. So you get this thing like a passkey. So think of it like if you book a flight, you get a pass that goes into your wallet that you can use when you board for your boarding pass. Imagine if that stored not just your passwords, but something that was more secure. It was a token or a placeholder for your password without actually being the password. And it's got some nice affordances. So for example, you can share it with somebody else. So you can share it without actually sharing the password. You can share that token. You can actually go to a friend's computer and you can log in with your token without typing in your password, give it your ID, and then your phone gets pinged and then you scan a QR code and then it lets you in without ever having to give up your password and then temporarily log in.
00:28:15 - Ishan Anand
It's really cool from an authentication perspective, and I was really impressed at how thought-through the user experience was with that. Let me pause and see if anybody else paid attention to WWDC and had some thoughts coming out of it. Oh, it looks like Hampton, I know you were talking about WWDC. I'll pull you back, push back to listener, and I'll bring you back up. There we go. Those are the things that I thought were really interesting coming out of WWDC. There are a couple things, as he mentioned, that were highlighted that had already shipped, like lazy-loading of images, container queries. I don't play around with CSS, but the :has() pseudo-selector, I think, was one where I can totally think of plenty of times where I've wanted to use that. Basically it lets you check parents and siblings and children for certain properties on a particular element rather than having to get to that element directly. So I'd find that definitely more productive. There's file system API support, where each domain effectively gets its own private file system. And then one that makes a lot of sense, but I wouldn't have thought of it, is you get a system of viewport units in CSS that are relative to and change as the viewport changes in Safari.
00:29:29 - Ishan Anand
So as you use Safari, sometimes the bottom tab bar that has your navigation disappears and the top URL bar sometimes decreases, and so the viewport size is actually not fixed. It's actually changing a lot. So they have viewport units that accommodate for that and you can lay out your CSS with those things in mind to make sure critical things are not obscured or hidden. I know this happens to me a lot with some of the sites I use. I go to tap on a button, that button's at the bottom of the page, and I actually just bring up the navigation bar. And I've come back to that page a few hours later and been like, I thought I could submit, and it turns out I had not. I had actually just brought up the bottom bar and then a context change happened. I moved on. So I think that's potentially helpful for a lot of folks. We are at the halfway point. Sorry, we'll do my station break. Welcome, folks, to JavaScript Jam Live. If it's your first time here, JavaScript Jam is a podcast for front end and full stack developers. JavaScript Jam Live is our open mic that we hold every week for everything JavaScript or web dev related.
00:30:28 - Ishan Anand
It is entirely audience-driven, so feel free to raise your hand and say, hey, here's something I want to talk about. It doesn't have to be something on the agenda. We love it when we're audience-driven as much as possible, and if you're getting value out of anybody here, feel free to follow them online on Twitter very easily right here from within the Twitter interface. And whether you're a beginner or an expert, we want to hear from you. So don't feel intimidated that you have to be an expert on something. In fact, we like when beginners come and ask questions or jump in or pause this and say, wait, wait, that thing you said, I don't know what that is, because very often if you've got a question, somebody else does as well. Okay, with that, if nobody else wants to chat about WWDC, there are a few other things that happened over the course of this week that were really interesting.
00:31:13 - Maximiliano Firtman
So, the one that caught my eye.
00:31:15 - Ishan Anand
I don't know if other folks saw this. Somebody made a JavaScript-powered game, but they did it inside Microsoft Word. I don't know if folks have seen that. Let me see if I can get the YouTube video for that and see if I can share it here. And let's see, how do I do that? Yeah, I know. I can see your reaction, Brad. I think there's a way that I can add a link here in Settings. I'll have to find that. But basically it turns out, and I didn't realize this, Microsoft Word is extensible. And I think if you just Google the title, "I Made a Game in Microsoft Word," the user's Devlog. And it turns out that you can automate a lot of things in Microsoft Word and you can lay things out in a table because Microsoft Word has tables. And then he used that to move a GIF image around the screen, and then he was able to put a background image on the document, and then he could move these GIFs around in these documents, and he could get keyboard input with the arrow keys working, and he was actually able to build a very simple JavaScript-powered game.
00:32:16 - Ishan Anand
And the fun part of the video is him going through, and it's only four minutes long, but you get the time-lapse view of him building it because he recorded, I guess, the entire process. And you can see him being like, okay, what's this? Oh, it turns out it has to be base64-encoded. But he's doing all these hacks just to get this to work, and he powered through and delivered it. So it's a really interesting testament to a determined developer. Eric, what were you going to say?
00:32:40 - Anthony Campolo
No, I only saw that because you put that in the potential notes for this episode, or whatever this is. And I loved how much it reminded me of when I was first learning to program, to put a sprite at these X and Y coordinates and then move it when the key is pressed over these X and Y coordinates. And it was just going all the way back to when I was a kid and learning how to program. And I thought that was really cool. And also I have to love people who figure out, oh, there's this way that I can modify this thing to do a thing that it was never supposed to do. I'm going to spend eight hours bending it to my will to make this silly little thing that no one's ever going to play. But it's just that cool of a... it goes to the core of what it means to be a developer, in my opinion.
00:33:39 - Ishan Anand
Well, I think you really put your finger on it. I had not reflected on it in that way, but that's exactly why it resonates with me. It's again that fun of, I remember at the beginning building something, and that fun of actually saying, oh, here's a weird way I can contort this and see, would this be cool? Yeah, go ahead. And not to.
00:34:01 - Anthony Campolo
Not with the goal of monetization or anything like that. It's just, what can I do with this to entertain myself? Like these days now you.
00:34:11 - Ishan Anand
I'm.
00:34:12 - Anthony Campolo
Presumably that YouTube video is monetized or whatever. But he wasn't doing it for that. I think even if he didn't record himself, he probably would have wanted to scratch that itch anyway. And I think that's what's cool about what it is that we do. It's just fun to be able to manipulate the world.
00:34:32 - Ishan Anand
Yeah. I'm reminded that he did it for the intellectual curiosity. And it reminds me of the very first computer game that was built, I forgot the name of it, but it was built by a bunch of folks at MIT and they were just bored and they're like, hey, could we make a game? And that was like one of the first computer games ever built. Another example I'm reminded of is one of the creators of Unix, I believe, and in his Turing Award, which is the computer science equivalent of the Nobel Prize, he talked about how, as young programmers, they would give each other coding challenges. And one of the challenges was, could you write a program whose output is its own source code, which in a sense is actually a precursor for, sadly, a computer virus. It was for the thrill or the intellectual interest and not for any particular end goal. And so it was very exciting to watch and interesting.
00:35:30 - Anthony Campolo
Yeah. I imagine those of us that came to this as children, I think we all probably built some kind of a stupid little game, even if it was just like that old Nokia phone game with a snake that eats pebbles and gets bigger or whatever. But games are what attract kids to this industry. So I think we should keep that in mind, that the easier we make it to build games, the more people we're going to attract.
00:36:03 - Ishan Anand
And it's a really good insight. Sorry, go ahead.
00:36:06 - Anthony Campolo
No, what comes to mind is Roblox is currently doing really freaking well. They just IPO'd or whatever, and my nine-year-old son is super into that. And the fact that they have this sort of open API slash app store where you can build your own game and other people will play it is, I think, in 15 years, a lot of the people leading our industry are going to refer back to: oh yeah, I started with Roblox.
00:36:38 - Ishan Anand
Oh wow. Okay, now I want to double-click on this for a second because it's personally relevant. I remember as a kid coding a game on my TI calculator, and I know Roblox exists, and I have a 10-year-old and they've been interested in downloading games. We're maybe a little too strict. What is that coding environment like? And what age do you think people can get their kids potentially interested at, and at what level? Just give us the three-minute overview of what it's like.
00:37:09 - Anthony Campolo
Sure.
00:37:09 - Ishan Anand
That's it.
00:37:10 - Anthony Campolo
So I started with... My son got a coding-in-Roblox book for Christmas or whatever.
00:37:18 - Ishan Anand
Oh, I think I locked up. Nope, I can still hear.
00:37:23 - Anthony Campolo
No, okay. And I went through it with him, with the first chapter or two, and it was all about this is what strings are and this is what arrays are and this is the whole... okay, so the language is Lua, which I had never used, but it.
00:37:40 - Ishan Anand
Okay.
00:37:41 - Anthony Campolo
But to any professional programmer, it reads super easily. And it was just like console logs at the beginning, but it was explaining how to concatenate strings and how to... this is a variable, and now you can add to that variable. And to be honest, my nine-year-old, who is, I'm biased, but he's pretty good at math and clever in most things, just wasn't attracted to that yet. He hasn't been bitten by whatever it is that pulls you into wanting to build a thing, but apparently you can. It's a pretty sophisticated system. And the idea behind Roblox is they figured out a way to have this open sort of API system where anyone can build a game and then you can publish this game on basically what is an app store. I haven't used it that much, but my son is constantly playing different games and it's all online multiplayer by default. And I don't know, it's like Minecraft if it was open to... I know Minecraft has mods and stuff, but Roblox, I think, is just embracing that culture of remixing and whatnot to make new games.
00:39:01 - Anthony Campolo
And apparently Apple's super strict on what can be... like, you can't have your own app store, but apparently Roblox snuck under their radar and is deemed acceptable. And at this point I think if Apple shut Roblox down, Roblox has enough fans that Apple would... in the same way that when they were fighting with Facebook and Facebook was like, oh, we can just pull our apps off your platform, and Apple was like, okay, I see that we can't compete with that. So many people have iPhones to use Facebook. But anyway, I think Roblox is this open platform that people can make games for. And I think you can actually monetize a game that's interesting enough, and you have this 3D environment built in. If you can be creative and make a thing that enough people like, if enough people want to play digital cornhole or whatever you want to invent, I think you can make money on that platform, which is pretty darn cool.
00:40:08 - Eric
Yeah, Use Map Settings games have really led the way for a lot of development progression. It started really back with StarCraft. StarCraft was one of the original ones that actually spawned into a ton of other games. When TensorFlow released, StarCraft 2 was one of the first to allow deploying TensorFlow algorithms to allow you to essentially graphically interface TensorFlow with StarCraft 2. Minecraft had a big push in this. I actually did that with games, implementing different Web3 tokens using Minecraft. Same thing with Unity. The kids have definitely taken that approach of, if they can get started and there's someone to help them walk through the early stages, these game development platforms are really leading the way in education and keeping people entertained. Unity has excellent ways for kids to get started with C# and start to build out a game and upload your sprites and animate them and go through the whole process of creating logic. Minecraft did a really good job with this as well. And Roblox, they're taking the user map-setting approach, and I think that's really interesting that they allow you to monetize it. Definitely, definitely. It's cool to see it happen.
00:41:16 - Eric
But it's funny how more seasoned engineers not really paying as much attention to the games, they've lost their interest in that area. Whereas these early kids are getting into it and they're actually making pretty good money. They're making unique applications inside of other apps and getting a lot of great exposure to concepts that would be very difficult to achieve without a platform to start with.
00:41:37 - Anthony Campolo
I'm glad that there's a name for that thing. Thank you. You know more than I do.
00:41:42 - Eric
Yeah, that's how I got started. I got started with StarCraft back in the day, and that was one of the big things. I don't know if you guys have ever heard of Dota or League of Legends. Those both came from StarCraft. Those were user map-setting games that originally were on the StarCraft platform that branched into their own games that are now on Unreal Engine and Unity and so on and so forth. So they had spawned some big all-time hits.
00:42:04 - Ishan Anand
But what would you guys say for Roblox, for StarCraft, or you mentioned Unity? What's the age at which you could start somebody on it? Could you give it to an eight-year-old, or.
00:42:16 - Eric
Yeah, I started with Colin when he was around eight, doing Unity. We've also done games on Oculus. I'm always willing to branch into it. I showed him how to port games from Unity to Nintendo Switch. We built characters for Smash Brothers before. So it's really the attention span. The parent definitely has to do a lot of heavy lifting the earlier they are, but once they get into it they're usually pretty hooked.
00:42:39 - Anthony Campolo
Yeah, it's a matter of how much time and passion you want to show for this in order to encourage that. But also, in my parenting experience, if the kid doesn't have that spark that makes them want to create a thing, no matter how much energy you put into it, it's not going to go anywhere. It has to come from inside them somehow. And I've heard stories of people that didn't get into that until they were 18 or 25 or whatever. But for some people it's like at age seven they're trying to build little board games or whatever. So I don't think you can force that on anyone.
00:43:32 - Eric
Yeah, yeah. With my oldest son, I had to start him with Photoshop actually. He wanted to make things for games. I got him designing sprites in Photoshop and teaching him that, and then he was like, how do I actually get it to move? And then showing him how to use sprite generators and animation, and then it started to get into, okay, now I want to actually put some stuff together. And I feel like as time has gone on it's hit him in the face. It's, wow, this is so overwhelming, what's involved to create from scratch. But when it came to Minecraft, creating items, creating monetary systems inside of there, he's had [unclear] before that specifically interface with Minecraft, and he likes doing those things. But when the project gets too involved, they lose attention very quickly. If it's too much for an eight- or nine- or ten-year-old, then as an engineer, when you've hit that point and you have to walk them through it and keep going back to it or trying to resurface the interest, because they will just
00:44:27 - Anthony Campolo
fall out of it. And also it can backfire if you push really hard, then they can reject it. And oh yeah, I'm a big fan of... I don't have any results to report, but I know some anecdotes of, if you want your kid to be a developer like you are, it's best to just wait until it occurs to them to be like, so what is it that you do all day? Or whatever, and then you can start explaining. But if you try and force it on them, I think that might.
00:44:55 - Eric
It definitely does. I've had points where he's dropped out for a whole year. He's just, nope, not interested. It's overwhelming. And then he'll come back to it. But it's interesting because I'm not an engineer anymore. By trade, I'm on the marketing side. So he doesn't ever hear me talk about engineering except for when I'm interested in a concept and when I started to get into how they use it in games or how I use it really for anything, or when I'm explaining a movie to him or whatever it might be, he really connects to it. And now that he understands the concept of creating logic, like it doesn't just exist. And I think that's a fundamental thing that all kids should really learn, is that this stuff doesn't just happen. You have to create it. It's abstract thinking and creative, and there's more to it than just numbers and digits.
00:45:41 - Ishan Anand
Yeah, that's a really good point. It's a basic skill to at least have that awareness. It reminds me of Scratch, which is one of those precursors to what you described with Roblox. If they've built a full community around it and the whole system, a whole platform, so to speak, would you recommend that book you mentioned? And if so, what's the title of it?
00:46:01 - Eric
I didn't mention a book.
00:46:03 - Ishan Anand
Oh no, I'm talking.
00:46:04 - Anthony Campolo
No, I did, I did. Let me find that and I will mention it shortly.
00:46:07 - Ishan Anand
Okay. Yeah, but it definitely needs to be something intrinsic to the kid, or at least self-motivation. I know in my own experience I don't think my parents pushing me would have helped, but you never know. I remember when my dad was, well, not a software engineer, he was an electrical engineer. We asked him what he did and he thought he couldn't explain it. So he just said, I go to work. And so that was the answer. And I didn't find out till years later, oh, he was actually an engineer. But I'm always curious about ways I can get them potentially interested or connected.
00:46:38 - Anthony Campolo
So I've.
00:46:39 - Ishan Anand
I'm feeling like I'm pushing.
00:46:40 - Anthony Campolo
I found the book in.
00:46:41 - Ishan Anand
In one direction or the other, because I also want them to do whatever comes natural to them. But I would like them to have that life skill that you're referring to, of just understanding that.
00:46:51 - Anthony Campolo
So the book is called we are.
00:46:53 - Ishan Anand
We've got basically just a few minutes left and I have a hard stop.
00:46:56 - Eric
I hear you, Ishan. [unclear]
00:46:59 - Anthony Campolo
Okay.
00:47:00 - Ishan Anand
There are a couple other things I did want to chat about, but I don't think we have time to fit them in. Probably the next most interesting thing to me was that somebody tweeted from Next that you'll be able to use static site generation with React Server Components. So I'm really curious to see what they do with that. Maybe we'll have more details next week when we can talk about it then. In the meantime, this has been JavaScript Jam Live. This is the open mic.
00:47:23 - Anthony Campolo
Hello.
00:47:25 - Eric
Okay, everyone quiet. What was the book, Anthony?
00:47:28 - Anthony Campolo
Yeah, for those of you that can hear me, it's called The Advanced Roblox Coding Book: An Unofficial Guide by Heath Haskins. Perfect.
00:47:38 - Eric
I'll send it over to Ishan in case he can't hear you.
00:47:42 - Anthony Campolo
Yeah, I tweeted once about it, but I just did a Google image search and typed in Roblox. And of course, the photo that I took of the book, like it had already OCR'd and could find it, which is amazing.
00:47:56 - Eric
Yeah, it's really cool. I didn't realize they had opened it up, so that's awesome. I'm definitely gonna check it out.
00:48:02 - Anthony Campolo
Okay. I guess I'll close this out for Ishan on his behalf. It's been fun.
00:48:10 - Eric
All right, take care, everybody.
00:48:12 - Anthony Campolo
Okay, bye, everybody.