 So service workers are powerful for offline caching, but they're also really good for giving you Instant loading performance benefits when it comes to repeat visits. Yep, right? And you can achieve that using an application shell architecture. Yeah, no, that's kind of the idea of It's kind of separating content from the actual visual UI. So in my head, it's kind of like native apps You always have the banner you've got the navigation drawer at the side. You might have some other bits That could be common through like 90% of your app. Yeah, you always want it there So when we talk about the shell, we're talking about the HTML the CSS and the JavaScript that's making up the bulk of your UI Yeah, stuff that you know if you cash that you can still just like load up content in the very middle Yeah, and save yourself having to constantly reload that stuff, right? Yeah, and it's super nice when it comes to like Let's say they're visiting a page They've never been to before if you know the layouts always going to be the same You can still load that while you go and get the content in the background And it just makes sure that your user has like really good perceived performance. Yeah So the first time you're uploads you might show you might like you're gonna have to render the shell itself You'll cash that in your service worker and you might show like a toast just to let them know Hey, this application now works offline. Yep And that means that when they come back another time like let's say they're you know in airplane mode That shell will load up really really quickly And then it might go to the network to fetch the rest of the content You can then cash that content so that you know that entire view is then available whenever they try Accessing it without a network connection. Yeah, exactly It's about on we've got some performance testing. We've done with the application shell model This is using web page tests. So on first visit. We've got a relatively fast Time-to-first meaningful paint and this is super important because I think that there can be scenarios where someone might take advantage Of service worker to be like, ah, don't worry about your first load I'm just gonna serve up like megabytes of stuff that I'm gonna cash Afterwards, you'll be super fast But that first load if that takes so long to the point where the service worker doesn't even get registered That's pointless and plus for other browsers that don't support service worker You're then kind of just damaging yourself. Let's make your users go and cry in a corner Exactly. So you still want to be serving up just that static render of your site Just so then it just loads up as fast as humanly possible And then progressively enhance with service worker to then use the app show model And if you are using the app show model as you can see here, we've got really good We've actually slashed our load times for first meaningful paints on repeat visits Speaking of like actually taking a look at what impact server-side rendering has on this You don't have to use service worker You know to actually be able to get good gains if you're building with the app show model in mind with server-side rendering in mind You will get like a really good first paint even in like Safari and like mobile Safari on iOS Yep, all the other browser. They just don't have service worker. Yeah, now if you're wondering, okay Well, should I be using the application show model on all of my applications? They're gonna be types of apps like super simple apps. This this might be overkill Yeah, but if you're building something that's you know, a little bit more complex a little bit more dynamic This type of model makes a ton of sense I Google we're using it for things like inbox. It's working really well there. Yeah I think it's one of those things you end up falling into the Sit there and figure out whether it makes sense for your site or not But I think it's a good overall model that works for a lot of different scenarios There's a whole ton behind this model that you know We way too much to explain in just one video, but we wrote up Pretty amazing article on this if we do say so ourselves. Well, you wrote it up and I just read it You just added your name to the end of it. Yeah, that's how I was much impact That's worth checking out the format It's a mediocre article at best, but it's got pretty graphics. Yes People should go check that out. Yeah and more about AppShell And then there's also the getting started guide for your first progressive web app where it actually talks about The application show model how you can make like take advantage of it as well as how it applies to the demo app that you can Build in this lovely code lab and in that article. We also link out to tools that can help you get started with the application model Like really quickly But we're working on so check that out. Yeah