Hey there and welcome to the foot or a podcast. This is episode number 30 we're going to be talking about fedora silver blue and immutable desktops and why Our guests are currently upset at me for saying it's an immutable desktop. I There I'm Eric the IT guy Hendricks. I'm really excited to be with you It's another Tuesday afternoon and it is like 20 degrees cooler here than it has been So I'm really excited about today's episode and joining me is is one of my favorite co-host mr Joseph welcome to welcome to the foot or a podcast Thanks so much Eric. Thanks for having me. Yeah, this will be great And I'm happy to say that we are one minor tweak away from having the beautiful Animation to kick off the show. So we've got some music with it. We've got an animation. There's just one more tweak We're waiting on so I'm really really looking forward to that Now I'm all about not talking meta about the podcast on the podcast So why don't we dive into our topic today? Joseph? You want to tell us what we're what we're going to discuss and then we'll bring in our guests? So we can't talk about it without ruffling a few feathers, but this is a very exciting episode because it's all about Immutable distros mutable distributions now that's something that's been getting talked about a lot Not just because of there being a few distros out there But because there are a lot of different approaches to immutability There is a debate going on on what does it mean? Is that the best term and and really there's a lot of depth to this topic almost on a distro by distro Level so a part of today is going to talk about not just immutability at a high level but try to tackle some misconceptions and and See if we can change the language a little bit So I'll let our guests chime in with how we should be pivoting going forward and try to clear things up There's already a flame war going on in the chat. So why don't we bring in our guests and we'll we'll get this episode kicked off So we've got not one but two guests today, so I'd like to introduce George and Timothy George, why don't you go first and introduce yourself tell us what you do for a living if you'd like What do you do for what do you do for fedora and what do you do for fun? Yeah, so I'm George Castro. I Started this project when I was actually on sabbatical I currently work for the cloud native computing foundation the cncf.io and I don't do anything from fedora other than consumments and Try to you know get get some of the feedback back in fedora. I've been using fedora Full time for maybe four years now and it was kind of time for me to start playing and What I do for fun currently right now working on universal blue and getting ready for cube con so Raising the kiddo upstairs and doing the best trying to be the best person I could be I guess Awesome as a fellow tech dad Really excited. Hopefully it won't be too long before they're on the show with you Yeah, he's gonna be my maintainer that way I could just retire perfect That's one way to recruit to get contributors you raise them young and then they contribute for a long time That's a stability there. I think Love it. Love it. Timothy. Welcome to the fedora podcast. Same questions. What do you do for a living? What do you do for fedora and what do you do for fun? Hey, thanks for having me. I'm I'm currently I'm a chorus engineer at Red Hat working on Red Hat Chorus as part of OpenShift and in Fedora I work on a lot of different things mainly on Fedora Chorus and also I'm maintaining Fedora Silver Blue and Fedora Kenoite as part of the kiddie-seek awesome and for fun I Dance Lindy hop which is a swing dance from the 20s on the US very old dance, but which is back in popularity right now You know, I've hosted a lot of podcasts that's on a lot of different networks and that was probably a first Do I dare challenge you to after the show dance for us on on live stream? I May try I'm not sure how much is going to work with the camera I see my dance moves All right, so I wanted to start out this episode zoomed way out so before we before we Adjust all of our terminology. Why don't we start with a very basic question of What is the goal of an immutable desktop and then we'll kind of talk about why that's that's fallen into? Disrepute maybe so what what's the goal? Why why would I want an immutable desktop? Okay, mine is gonna be the most controversial. So all of you have to go first alright All right, Timothy. He he threw the gauntlet back to you. So what is the goal of an immutable desktop? Why why would we want one? So I I think for me the main thing is that it makes it really hard to break my system It makes it super reliable Which is why I've completely fell into this. I I'm gonna be like diving a little bit of history like I I came from March Linux I was a huge arch Linux fan. I was tweaking everything to my liking. I was building my custom packages everything was fully custom but every time I had to change the things that are I had to Plan ahead to take time because if I made a mistake if I made a mistake during upgrades and I had to to make sure I'd get time to fix things etc was Our permission with immutable distribution with silver poo is tonight. I just don't have that fear anymore if Whatever happens in the next update is there's a bug There's a problem is that I just roll back to the previous version and I keep on with my life until I have time to Even like even for me a developer like sometimes it's not the right time and I just want to go back and I can give my perspective as is more of an end user where my first exposure to the term immutable actually comes from Chrome OS Where I was I was a big fan. I was an early adopter For those who know I got the Samsung series 5 Chromebook, which is like literally one of the two first Chromebooks you could buy And at the time I was attracted to just the whole living in the browser piece But as I learned more about what immutable meant I was attracted to not just the stability but security aspect as well So just knowing that things are very locked down and that it's a lot of the system important system components They're read-only so I even if I wanted to mess something up I'd I'd really have to know what I was doing before I could mess something up and Especially once I transitioned to using Linux It makes it even harder right where obviously I try to sell the terminal So I think it's very unlikely. I'll mess something up, but if I knew a little more I could do more damage than I wanted and so the the benefit of immutability to me is knowing that from a security standpoint Things should be very stable. It should just be harder. It should be harder for anyone to get into my system Now to what degree that's a misconception depending on what I'm using. I hope to learn a little bit I think I'm on the right track with Keenolite, but that's my take So my my first experience with with silver blue was was very negative and not Because of anything wrong with the project or with with the spin It was my expectations were not where they needed to be so I I went in and I installed it It's like, okay, this is supposed to make upgrades. It's supposed to make my life easier And so I went to go and start installing packages. It's just like This doesn't work. Oh wait, no, maybe it's me But when I when I think about this this whole immutability topic the thing that comes to mind is what we've carried around in our pockets for years is the ability to to do upgrades in place to For the operating system to be encapsulated away from all the apps So you have the apps that download on their own they update in place It's easy to fall back to an older version Maybe maybe not on a cell phone, but when we get to say desktop scale or in my line of work We talk a lot about the the edge of of your it network So we talk about systems that may not get and a stable internet connection so when they have that ability to connect to the internet they download slowly the The updated code and until that code has been completely downloaded and validated It stays on a running known good condition. So when I think about this whole topic, that's that's where my brain goes Now George, I had to cut you short in the pre-show because we were talking about this before we went live So I really really want to know what are your thoughts on this topic? Not the technology specifically, but what what is the goal in this space? I'll tell you exactly why I started this I was growing frustrated with the lack of the Linux desktop to keep up with literally everything else right like out of Like that youtuber broke his desktop that famous guy what three years ago two years ago and the major distros have really Done nothing about it other than pretend that the Linux desktop is reliable right and instead people flame The operator for make a mistake and I think I think it's absurd that I can spend $5,000 on a thalia and it's not as reliable as a $200 chromebook. So I wanted to really fix this problem. It was It doesn't make sense to me like just doesn't compute and fedora was the furthest long But I did run into the same issues that you were having with silver blue And I had to wait until the oci pattern was made available So I can bring the known good cloud patterns that we know do work In scalability and usability and all that kind of stuff. So for me, this is more about We know we have a thing that can get us there Right and it's more about getting good base images and teaching people That this is the way forward and the way to go And like I said, this is going to be controversial. There are a lot of parts of the traditional desktop linux model that are really unsustainable and They're just not going to work. Um, but a lot of people don't want to hear that so Here I am I go here coming from it and that's definitely a complaint that I've heard as well from like Some security minded spaces where you hear linux compared to chrome or s or even mac os and immutability is one of those One of those things So I'm I'm here for it. You know, I'll be in your corner I'm done. I'm picking up what you're putting down Now that's that's really great. I I love that perspective and I love your passion to fix this issue Because when people ask a lot of times I tell them that my my primary operating system is ipad os Because no matter where I'm at I can pull out my ipad. I can pull out my keyboard and I know it's going to work I don't have to worry about did I download the the latest packages and this is coming from a recovering arch user So I mean I I feel that pain. I know what that looks like so Let's dive into it. I think we strung the audience along So what what is the issue around immutability? There's there's a talk of like atomic in the chat and that kind of thing So what are the terms that play here and what are the differences and why is immutable not really what we're striving for? I can start. I think the main thing is As much as we would like it to be immutable. It's it's not like You can still modify a lot of things on the system The only thing that is really only is the actual system files the files from that's usually the application the binaries The icons etc But everything else is mutable like on a regular system So when we call the entire system immutable we make it sound like You can't do anything with it We're essentially the whole point of what we're doing is to enable you to control How it is changed how it evolves how it is updated like and do it on your own pace instead of being being driven We like being overwhelmed by it like you you control you're in control of your operating system. And so The immutable term in a sense it feels backward for us at this point George you get more to add there. Yeah, I feel it like takes away from the actual features of the operating system Because everyone is kind of obsessed around the immutability and that's just really stamping out a final image at the end And they forget the composability part, which is the important Thing that we do which is declaring what you want the system to look like And then having a thing that builds it for you and then when you make changes You know, it like generates a new image. So every day you're getting like a fresh built from scratch. Oh, wow so it's not like a People conflated with fossils of snapshots. Sometimes we should probably talk about but You know, the the entire point is that composability because that gives us the ability To share using the same common patterns with like get up you lose just get ops You know For your operating system And and by just reusing those patterns it gives us that stuff It's like you get a new super car and you want to talk about the engine and the performance and everyone's like But the seatbelts are uncomfortable And you're just like, what are we talking about the seatbelts? So You know, just that the fact that you can layer things now And you can get that customization But if someone if you share a config with someone that solves a problem that you have you can integrate that into your system You know and then kind of stamp out a final image Instead of the old days you would just copy and paste a script from a forum Right, you would say You know, you blew is basically one of those operating system fixer scripts, right? Remember these used to come out and it would be like fix your Fix your os right adds the codex and all that stuff that you want And then people run it and then sometimes it runs all the way or sometimes the packages used to get updated There's always some there's always something right and you can't guarantee That anyone can run that script and get the same result Right and these kind of systems kind of remove that problem entirely Because either the image either finishes and builds correctly Or it errors out and then the bad image never gets to the device Which is So awesome Because you can you can actually save yourself from a lot of bugs There's been issues in fedora where we've been able to hold the package back You know with that rpm os tree override command and you know our images were able to save regressions from the flat pack regression There was a recent regression in podman that we were able to mitigate by just holding back the version Because our community was able to kind of work on the composability part And get that to what the community wanted it to be and then it gets stamped out at the end and I think a lot of people They get bent around the axle about being able to modify the final product right it's like when When your relatives ask you to modify a pdf and you tell them you don't modify pds You modify the form and then you print out a new pdf So that you don't have to deal with editing pds because that's awful Right, but people do it Um, so that's that's kind of where I'm coming from. I think I hope that answers that question I think so if If if I'm understanding correctly You're telling me I don't have to go out and write a pile of ansible playbooks to manage my rpm based desktop It's even better other than there's some limitations there You could take those existing ansible playbooks and we need to enforce this pattern more So far, I think jim cambell is the only one really like that was actively doing research in the area Is you can use your ansible playbooks? inside the container file And ideally stamp out an image. However, there's limitations timothy. I don't know if you know Yeah, this is some modules that don't work This is yeah, definitely. We're part of working progress where we So there's to give you a bit more context. There's the shift right now All of the distribution we're speaking about here silver blue kinwide and in the family chorus and friends They they are based on rpm history and oyster right now and we progressively shifting to container images. So the oci standard format and so it's still an in progress transition But the main idea is that you would be able using this format to essentially Take out the base image the image that we produce has fedora the the base desktops And then you would have your own custom changes Which is what unisos universal blue is doing right now They take our images and they tweak things install packages. They remove ones. They had proprietary drivers for example that we cannot Sheep or lego reasons in fedora et cetera and all those things and so This here you could do the same thing because it's an insoluble paybook For example, you could run your insoluble paybook to tweak your customization Your system set up your settings and you get then a new container image that you would deploy on your systems So there was an article that I read I think last week that the evil skeleton Put out called misconceptions about immutable distributions And it it sounds very similar to what george what you're getting at where a lot of the benefit of Supposed immutability is for saying is actually from the maintainer and development side Where there's efficiencies going on there in those processes helping things be More consistent more stable. So I now I understand your analogy of like fix sitting on seatbelts It's like it's almost like folks who are on the end user side We're consuming immutable distros. We're trying to get almost like our The bang for the buck of immutability like what I've I got to do something with this immutability aspect And it's like no, no, that's not for you necessarily to worry about so much That's us so that we can deliver a better distro to you. So the benefit is indirect which which I think evil skeleton also mentions Does that kind of sum up a lot of of your feeling where it's primarily a benefit to developers that then You know, you feel as an end user because the distro comes up more more stable or more consistent Yeah, because you could do what you want Right if it's a container file and yeah, we talked about ansible, but anything you can put in a container file slash docker file We use those terms interchangeably Bash python doesn't matter as long as the the build finishes at the end, you know, you just You drag entire files. Well, try obviously you can drag entire file systems in there because that's what we're booting Uh, but yeah, you can you can basically Figure out how to build it and as long as it gets on the image And that kind of allows One of the things I think is interesting is that get ops aspect is it lets people like me who are kind of sre Like ops background and then you have your distribution work, right? It's like this new layer. That's on top that allows us to You know, we make new desktops all the time Sometimes people want to try a new version canone with different You know default options So we work with castity james blade to make a separate canone image That was like his little vision or whatever and bazzite is just kino white with a bunch of gaming stuff added Right, so you're kind of constantly building on previous blocks of the thing that came before you but you can like Choose what you want and what you don't want which is really nice because that's the pattern That's the pattern that we got from cloud, right? Like when you're when you're building your app containers and stuff like that You start with from You know centos five or whatever What's the latest version six? Sorry, um, you know, and then you say okay now copy my note app into the container, you know And then you do that thing it's that pattern Linux went through this 10 years ago. It's just the desktop is going through now I think that is something maybe we should I'm definitely being louder about it You know, it's the the pattern is kind of proven itself. I feel Because a lot of people that are Contributing to universal blue have an ops background and they don't have a distro background So it kind of it's like, oh, this is neat. This is that this is how I manage my clusters at work and it's it is Like Yeah, I think that could be a good opportunity to transition into so what are the Ideal the preferred terms that we have in george Maybe you can start with that since you've already mentioned cloud and operations go for you know fedora invented it So I say you name it call it atomic But have it cover a bunch of things that are major transitions because you have to you kind of have to format your machine to do this Right. So like the user has to make a I am transitioning from one thing to the other So I say anything that you feel needs to be in a transition put under the atomic brand because we need there's uk Uh, you that uk i kernel thing is coming Compose a fast like I don't know how any of that fits right and then you could sit like X sessions are going away as soon as possible in the atomic brand like basically Acknowledge that it's a different set of criteria than what fedora workstation is And then you just future aligned to everything because you're going to get people that want to opt in Like I don't want to argue about X sessions. I want to get rid of that thing as soon as possible and get my software fixed That's what I want to do You know and and I feel like there's fedora has this Opportunity because it is very unique in that composability You know, one of the areas I could see really working this in is I'm trying to build out a homeland because I also work for red hat and I work as a red hat enterprise linux a technical marker So I spend a lot of time talking to sys admins showing off new features Uh, so being able to spin something up quickly to give a presentation and tear it back down Is really important and so one of the things that I could see this working out is I usually have a bastion host something that only has like a single port open to the internet and only from certain IP addresses so that I can get back into my network no matter where I'm at And right now that's just a fedora workstation that very closely mirrors the the tower I have over here off camera And my thought is I need to replace that as quickly as possible with say silver blue That way I can define what that thing looks like because my hope is at some point If my home network goes down if the house loses power I want certain systems to spin up somewhere else like digital ocean And having that identical system because it uses the exact same the exact same file That way I can get in I'll have all my tools. I'll have my ssh keys. All those things are ready No matter whether it's in my home lab or spun up somewhere else And I I really think this is the way to go Especially when you think about its scale if if I were maintaining a lab or a classroom This is the way to do it Not going in and managing 20 Low end systems all by hand. No one image set it on a server somewhere Deploy it every day and you've got a clean ready to go system wherever you're at I mean this this really I mean I was already sold on the idea But this conversation really has me wanting to to jump into the terminal and and start building this I I really underestimated silver blue a few years ago And just it's one of those things I've never gotten back to but this this conversation is really driving this need to I think so little about upgrades on my devices on my mobile devices Why not my desktop?  I don't need to I have other things to do Can you believe this is controversial I still don't understand I got the new framework not the new new framework I got the framework 13 the intel one because I was starting a new job I put I put my image on I was I was done in three minutes Like as fast as it could basically be the disc that was it all my machines run off the same image. So You're always on You're always on the right stuff. It's It's fantastic and then This is something that should be in the atomic definition It includes a container runtime and I think we're not being explicit enough to saying that the linux desktop A container runtime is now a critical component of the linux desktop I know people will think that's controversial, but it does allow you to run anything from everywhere. So Any distro any package Like I could kind of you know, like there is no I'm kind of into this post distro thing where like I left fedora handle my host I left fedora handle my host and if I feel like having a fedora user space that day I have one and if not I use Ubuntu if not I use homebrew Whatever the default fedora one will be like toolbox and fedora, right a fedora container I'm not Like no surprises there, right?  It's it kind of gives people a lot of a lot of a lot of that flexibility. I think You know, especially if they have an older package that doesn't really it doesn't come in a flat pack or You know, or it might be troublesome or it's an older package that's just continued and you need a feature Just toss it in an older container and then go to town at least is isolated a little bit So I did have a question because we mentioned atomic a few times here So I don't want to go over and I think you guys I think everyone out here can correct me wrong regarding the history of the term but as I understand it a lot of The rise of what is now silver blue and and similar variants started off as project atomic So silver blue was originally project atomic That went through a rebranding that landed on silver blue then other the other Fedora spins that we have they thought we would like to have An immutable variant or an atomic variant we should start saying And so they got their own branch and now Which is what Timothy where I'd like you to share Why is it that we're interested in coming back to the atomic not only as a term to describe the the technical aspect but also as a brand for These these issues that have have this what I have rpm fusion than rpm fusion rpm os tree in common Yeah, definitely the Atomic brand the project that makes been there for a while and it's been shut down And we're not kind of trying to revive it in this revive the brand the the idea is that Like we now we know that at the beginning I also was on full-on immutable immutable immutable But now we know that it's it's not a right word to use to describe those projects and it's confusing to a lot of people so we want to use something else and This we're trying to revive the atomic brand and refocus all of the re regroup of those projects all of those desktop variants in fedora that are using api mystery as a base technology to To be regrouped under the atomic umbrella. So this is a change in progress. It's going to be submitted to The fedora console for approval But hopefully soon they'll be saying fedora atomic desktops instead of saying immutable Variants and we would be rebranding regrouping all of those. So right now we have fedora silver blue fedora akinite So silver blue is the gnome desktop right here. I'd be the key desktop we have serious era with this way environment and With fedora that nine they will be fedora onyx with the budgie desktop and so Some of those I've already already planning to rename themselves to be more explicit. So be like fedora budgie atomic or fedora sway atomic instead of keeping their own names. And so this is Yeah, a change in progress to move away from this mutable term that nobody really likes anymore essentially and to something that we could that we can both Embrace and use as as a regrouping mechanisms and Secret or secret projects, of course is to make this a default in fedora. So that we drop the atomic term at some point To call fedora. Yeah. Yeah, and just go Yes So we've got we've got fedora silver blue, which is this atomic approach to desktops with the gnome desktop at its core We've got kina whites, which is kde same same atomic build, but it's kde under the at the core and then cericia's I've probably just butchered that That's that's one of the tiling desktop managers if I remember correctly sway. Thank you. And then onyx We just mentioned is coming Just a few weeks a few weeks from data for recording Few may be a little little short-sighted, but soon soon We'll have budgie. In fact, we we talked about fedora budgie About a month ago on this show. So if you missed it go check that episode But the other thing we've talked about a little bit is is this universal blue this this term has come up a few times so for Wow, I speak for a living So universal blue, why don't you explain to us what that is and and And what some of the project goals are for for universal blue or you blue is it's been called a few times Yeah, so I was using fedora for a long time actually Josh burkus reminded me about the project and I ran into calling walters at a at a cube con There's this whole kubernetes story here in the background, but you don't have to deal with that right now um And as I started to dog food it I found the pain points of things That were annoying to me and things like that and once I realized How the oci container thing was going someone not me on the fedora discussion forums Posted hey, you know, I'm having a problem getting the automatic oce the oci thing working And I didn't know that it was live and landed in the distro So I went that weekend with some friends and we kind of hacked something together And then we looked up all the videos on youtube things everyone hates about silver blue or whatever And then it we fixed the top five things their codex didn't work because if you over if you add rpm fusion Tim if they don't do timothy's extra step to unversion them Like you tell people it's more reliable they add rpm fusion and it's like the same error They get a normal fedora so I wanted to fix that and I knew fedora couldn't fix that so we we You know, we kind of find our place there And then we just we fixed that we had a distro box because everybody just kept wanting distro box In the default images we keep the fedora flat packs. We don't try to do editorialized decisions We do try to add hardware enablement in our main images And then we have two images basite and bluefin which are kind of More opinionated. They're like george's george's vision of the desktop or whatever Um and in there I use like the flat have flat packs instead I should docker docker alongside podman and we I make a lot more editorial Decisions around that based on the things that I feel Well, it started off with me and then a bunch of us, you know got together and it's like All right, what are the top 10 things we can fix in fedora that we can actually just like you would write a script for Uh, so codex finding the thumb nailer programs for each desktop is hard. There isn't one There isn't one binary. So some of them use a different one. So we had to figure that out Um, and then the big one was invidia drivers Hmm Because we build that in ci and the the user's computer never has to build the invidia driver Um, and despite Some of the issues that we do have with it. Sometimes I still think it's one of the most reliable I mean, you don't have to build them the kernel module at all. It just comes on the image Um, which is my question for timothy. Can we make it so uh, we can get KRs in the container file working so we don't have to do that as an extra step I brought this laundry list of stuff for you to do if you want to Oh, I was wondering if they're yeah, because ideally what you want to do is be able to like work up You know denialist novo and all that kind of stuff right now the user has to do that extra Step after they boot So, you know And that's all we're gonna do, you know, they're product eyes silver blue and in kina white Let let me get my notebook. So like I Visually stood out to to the container stuff. Uh, yeah, I just wanted to say like I'm I really love the universal blue project because It's fixing essentially the stuff that we cannot fix like we have to get a constraints in fedora They are what they are. We have to live with them and that's that what it is at the same time. We're also Trying to be upstream first Full open source and all of those and so sometimes this clashes with the fact that you have an NP track Yeah cards in your new machine. And so that's that's life But so we stick by our principles and at the same time the universal blue projects it just Let us fix all of this stuff that we cannot fix in fedora. So I really like uh, the this work here. It's it's awesome For the carogues, I don't know. I would have to look it up very mystery if that's possible It's lucky that that it's doable. It just needs to be Plumbed in into the to the code Yeah, and and your I want to point out that we wouldn't exist without your ci test repo because fedora itself does not publish oci images of all those desktops You yes doing it Do you want to tell that that quick little story because it's it's pretty cool Yeah, we started so Right now we're still in fedora. I'm building only the os3 ones and and so the classic os3 ones That's what you use if you install server booking right by default If you go to universal blue you're switching to the container net it once so to the oci ones Right now in fedora, we don't build the oci ones But it's it's coming. We're working on it for fedora 40. So hopefully we'll get there And so it will be fully built by fedora. So In the meantime because we kind of need to get things started I I made a project on on gitlab we get up ci to get those images started And this is what most of you blue uses to to get the the images. It's still fedora. It's still 99% fedora It's just built somewhere else nice I love to see it from a from like a higher level standpoint The fact that it seems well correct me if i'm wrong, but a lot of the work that's happening With the atomic spin specifically is enabling a project like you blue I just get to be excited to think that fedora can be more of a platform because there are a few other fedora basis Result there and of course look i'm the fedora marketing guy. I'm always going to say Maybe try fedora fresh, you know, I'll say that but To see that other other projects are considering, you know, they have a niche that they're wanting to fulfill And fedora is the base that they want to use for for whatever they want to do We see that with the boon too where where sometimes the change that they're going to make to a boon too Sometimes it's a little more under the hood but sometimes it's more related to the desktop environment or adding something else or for what have you there we go It's uh, it's just a slight difference that is it's not necessarily a neg on On a boon too and what it is originally but just hey, we like using it We want to do something else and heck if customization isn't at the heart of Linux I don't know what what is so uh, it's it's it's cool and exciting to see it develop and it's not just Even though we do have a lot of spins. It's not just fedora and our spins But now people are taking extra steps and going in different directions When we can it it is nice to see things fall under the fedora a project umbrella But and we do want to like like enable and support that type of thing But the the power of the open source community and the desires and interests Can can easily go way outside that so i'm excited and I also think it's really cool Just all the stuff that's happening on top of fedora. It's it's great Yeah, exactly like the the cool thing with you So blue is like it's it's really fedora inside of it It's it's not like you making a new distribution based on another one No, it's like you're using fedora. Then you sure you had a twix on top, etc But it's it's fedora inside of it and and so you're not Maintaining and then to a new distribution rebuilding all the packages.   That's just not sustainable That's a good verification things I want to add to that because people say you say it's not a distro But they think it's like marketing it totally is marketing, you know I've been around the block is you can throw away the you blew customization and rebase back to a stock fedora image like you can't That's not a distro That's something else and you could do it atomically now We're starting to find out that the stuff in dot files that programs are Conflicting over which those issues should be fixed anyway Irregardless of whether you're swapping out the system image or not, but I also think it Offers fedora a new opportunity and I brought numbers for you. We have over 2 million image polls. That's not a Indication of users, but we know that there's been at least 2 million successful upgrades. That's pretty cool over 50 percent of our images Are kde slash kina white? right Like and they have always dominated which is very interesting to me because it is We don't really say there's a default. It's like a grid and we just like list them out Right, so people I feel Neil's gonna be happy in the chat. Yeah, I'm just waiting for it Yeah, I know that there's there it is we use kde who love kina white We know that the steam deck device is basically you know a kde thing So I think there's a different opportunity here when you look at what's a distro. What isn't a distro Fedora has this unique position where you have something like kina white and you have a upstream Right, and then there's not this The lines are kind of blurred right you can kind of I would love to see kde and fedora kind of figure out this Because before there was like distro work and then there's like user work now. We're we're entirely that kind of uncharted territory And I think a distribution has to be the one to do that like kde and Fedora can make kina white and things around kina white including including bazae to To be a new it's it's a new kind of adaptation of the distro model and I think that is what That's what I really want to be talking about. I think With fedora because bazae we have it working on the steam deck Right, and that's because of the help of these patches that we get from nobara and then there's chimera os. There's a whole another adjacent Gamer community that are enabling Us to get and all these packages and stuff all the coppers are all available for all fedora users You can slap together Your own thing and I just think it's very cool that we can get the model allows us to Have a device where valve paid red hat to work on kernel stuff They do it properly so it goes upstream And then your community distro fedora and then a bunch of nerds like us put it together And can get a newer version of the kernel to that hardware device faster than valve can That's kind of cool You know and it feels like and every The rogue ally these new devices are coming out and fedora like we can now this model allows us to Slurp in all that stuff, but we still need the distributions to Gather all the patches those need to be upstream We we automate coppers so much that it's kind of becoming a bad habit that we have all these right like but you know like I feel like this is like where the the discussion about the distribution's role in all of this is Is crucial and I know i'm over talking but I feel like that was like an important thing that we wanted to say is like Fedora is the only one that you know like the only one that has this Um, you know, it feels like we've been on this expedition to figure out what's cool and things like that and I think the numbers show And you know, I think the numbers show that you could you could see When kde people talk about these systems like they're they really have bought into it and i'm Hell yeah Yeah, the more you're talking the more I understand how like wow We really are fixating on the fact that I can't touch system vials And there does seem to be a bigger conversation here about how we change what distributions are Like you're saying You know, we're not locked into you know, oh, you can't commit today you're wearing your distribution hat not your upstream hat like That's not how we You know, so I I think it is interesting and that's that's why I think the atomic concept as a name could help because it kind of Moves everyone past the thing right and then just we we you know fedora should actually you know, hey, let's Policies or I'm not I'm not saying you shouldn't follow policies But like, you know, there are certain things that don't make sense In in this kind in the atomic model that make total sense in workstation And it'd be great if the conversations were around that kind of adaptability And things and we should be bringing in cloud folks open shift folks kubernetes folks who have Now we have a place to contribute which is also great because i'm trying to align I'm trying to align those folks to get excited about the linux desktop because they're all mac people And that really frustrates me. That's the problem So two uh two quick questions First off, where can people go to get universal blue? So you can get a universal dash blue dot org and then I'll be rebranding slash relaunching bluefin for cube con with new artwork and He's gonna have a mission and all this kind of stuff. I've shown some fedora people getting Trying to get that marketing uh going on and then uh, we have a discord and then I joined There's a new sig actually timothy. We should talk about the sig so that we get people to show up Yeah, definitely, uh hijacking your questionnaire. Sorry Oh, you're fine We we're making we starting a new state So we're starting the atomic rebranding at the same time we starting the fedora atomic desktop sig And so sig it's it's a term that means special interest group Essentially is just a way to regroup us folks into the same room virtual room And have meetings from time to time to talk about things and make things happen And so the goal of this sig has to make fedora atomic desktops the default in fedora So we're looking at so first change of the sig is the renaming but then we're looking at doing things like fixing bootloader updates Moving to oci containers as a default fixing the way we have did some flatbacks across major versions, etc out of those things Looking potentially at removing faro fox from the base image, which is a very common request All right, and we're doing this like in the gathering passion We gather people from all the people all the other things all the other desktops and like Which is the cool thing here is that we're all working on the same base on the same tech And the desktop here is just a small part of it like with the you're using you don't kill you or whatever The whole stack it's still the same for everybody. And so we're fixing the bits in the stack here That's awesome. So, yeah, if you're interested go check out the the atomic desktop sig special interest group and then my second question was this is all open source and upstream so We're what what help is needed? Where can people go and start contributing? So Yeah, the cool thing is that so we call ourselves fedora to make we like we have like special names, etc But we're fedora. So like everything you do in fedora. It's already helping us So essentially all the we're packaging all the we're testing running fedora All the work you could do in all the things or only work you would do upstream We benefit from it. So and yeah, as we follow upstream usually closely We you get it very very quickly. So If you get involved in the federal projects, you're already getting involved if you want to get involved specifically into into atomic Desktop then yeah reaching out to the thing look joining our magic channels and looking at our issue tracker would be Good places to get started Awesome. So we are getting close to the top of the hour. So uh, joseph Why don't you kick us off with uh, we'll go around the horn here and get some closing thoughts and uh, and we'll wrap up for the day cool, so uh Yeah, to be honest my closing thought is uh, we need a part two because they did have a lot of other questions I could go on for hours. Yeah, exactly. Yeah, just quick. I mean there are questions like, you know Uh, what how similar are The the atomic variants. I'm seeing I'm changing how similar are the atomic variants to Their traditional counterparts. How does it work behind the scenes? Questions on why are we letting chromebooks eat our lunch? Uh questions on the differences between Um, the other which I don't know. I mean, I guess it's on on the other dishes how they want to approach the term but you know nixos ar I know it's not micro os now, but opens users implementation how those things are different And the pros and cons of different use cases for it. So yeah, my I just would love to have a part two dive deeper and and uh Just keep on talking about it because I do think like everyone is saying I think there is a trend in within fedora that this is the direction for the distro in the long term And so that's it's baby steps right under like the weeks that we're talking about these things But when we can imagine how things can change In the future that's when we start doing something more exciting than just You know, maybe my lesson is Joseph there's more to be excited about than just that you can't mess up your system George you can still mess it up.  Just reminder. I had someone do that. They like No George close it closing. Yeah, I'm gonna close up. But first my call for help Our biggest problem right now universal blue is our installer the OCI support in anaconda is like brand new And trying to get that to work is beyond most of our skills.  It can drink so You know, like we've been struggling with that We've been trying to get we we're finally getting in contact with the right people on the coro s teams to do that But if you have that expertise to help us out right now our installation experience is not very good Actually, when people give up, we just have them install Silver blue or kinawai and then rebase to one of our images But like we we want to make that nice and clean so people can switch Swip back and forth. And then the last thing I want to tell people is try it like, you know There's there's no golden rule of what the linux desktop is supposed to be so You know, um, 3% usage After 30 years, I'm ready to try something new, you know, so And and we know the model works. It's worked in cloud. It's worked in mobile You know, and it's just a pattern using the common tools is great. Sorry about the bug Thanks for listening All right, Timothy Yeah, as as George said try it I give it a try as it's uh, you you'll get hooked and uh And yeah, if it doesn't work, then try your blue first before giving up Like to start with fedora because like, you know Start with upstream, but if for whatever result was a book, you have a native jacquard or something Go ahead and and try your blue. You'll you'll see it. It's likely fixing The issues you you will have And yeah, I'm really glad to be You have been here on the show. It's it's great to success Awesome. Well, thank you both for joining us and joseph. Thanks for for hopping on and asking asking some questions Um, so as we wrap up today, uh, really really really big shout out to uh, everyone in the chat It's it's been scrolling by like crazy.  It looks like get excited people Chat has been going nuts, uh at peak. I think we had 32 people watching live So that is awesome. Thank you all so so much for joining us and helping make the uh, the fedora podcast success Um, we are Usually live every other tuesday Um, so we've got a great list of topics coming up. We've got episodes planned from now through the end of the year and So I won't spoil all the topics, but uh, actually, I just saw a question go by about twitch We're currently live only on youtube, but there is a uh, there is a proposal floating around To start a fedora twitch channel. So if you'd be interested in that, please put that in the comments below Also, if you have any questions about today's topic or if you want to get involved, please Comment as well. There's a group of us that watch the comments almost daily Uh, so if you have any questions, we'll be sure to get those routed to either george or timothy Thank you all very much for showing up. Thank you for being a part of the fedora podcast part of the fedora community It is an amazing piece of technology or series of pieces of technologies, but Truth be told the the the real power of fedora is the community. So really appreciate each and every one of you That said Don't tell joseph because he works in fedora marketing and he'll kill me if I say this but I want to tell you anyway I can't say who I've been sworn to secrecy and I can't say what but watch the fedora youtube channel over the next 48 to Whatever three days is 72 hours Over the next few days. We're going to be scheduling a special event a special fedora podcast episode I can't say who I can't say what but I can say that there's going to be an extra episode next week Don't tell joseph. I was sworn to secrecy But And if you haven't please subscribe to the channel and hit that notification icon that way when we do have special episodes You will get notified and in fact, you'll get notified when we go About 30 minutes before we go live. Sometimes that notification reminds me that oh, yeah, I'm supposed to prep for a show but Awesome to have all of you in the audience george timothy. Thank you both for being our guest My co-host today was joseph and I am eric the it guy hindricks and until next week Have an awesome awesome time. Thank you all for being a part of the fedora podcast. We'll see you soon Thank you Thanks joseph. Nice day. Are you gonna tell us now? No


Got another package. Hello people of the internet. My name is Johnny and welcome back to Unboxing the FNAF security breach merchandise before the games even out heck before the trailer is even out heck before we have any Gameplay screenshots. Yeah, so yesterday if you missed it, I reviewed the FNAF security breach action figures by Funko And today I will be unboxing and reviewing get this the official FNAF security breach poster by trends By the way, I saw a few people saying oh, but you're betraying Scott by purchasing the Merchandise before the games even out yet. It's not my fault that I have these things It's the third-party merchandise companies and a little bit of Scotland's do all because maybe there was some delay with the game And it was supposed to at least around this time, but they delayed it for an unknown reason I don't know what's going on over there, but it's not my fault that I have these things Okay, plus this channel is a news and update channel So I kind of have to review these things, you know as far as I'm aware not many people have the posters So I'm gonna be doing a very very thorough job of reviewing this thing and of course we can't review it without first Unboxing it. So just like yesterday. I have my trusty knife right here and let's open this thing Let's all smash the like at the same time three two one go go go Also smash the subscribe button because Johnny blocks is reviewing the five nights at Freddy's security breach Funker mystery minis and five nights at Freddy's a our special delivery arcade mayhem Merch very soon Okay, so the box has been emptied out and the poster is right here boys I am super super excited for this right off the bat I can already see five minutes at Freddy's security breach on it So boys, let's let's let's get it open. Let's get this thing out of its package not package the plastic whatever Did it look at this. Oh, it's about to unfold. Oh my god. This is so cool. This is so cool. All right I'm gonna open this up Unfold it whatever I can already see some characters. Oh, this is so this is so cool So just let you all know this is a 22.3 75 inch by 34 inch poster So it is a pretty decently sized poster as you can see already and I haven't even opened it up fully yet So I'm gonna try and get that done. Oh, I can see security go. All right. Oh my god. This is so big Look at that. You can't see much of it, but oh my god. That's so cool. Oh This is so cool. I probably should have said this sooner But if you've already clicked on this video and you've gone this far I'm guessing you do want to see the full designs of these characters I managed to lay out the poster completely flat I'm using the Fazbear Fright books to hold it in place But just in case for some reason you clicked on this video and you don't want to see the poster and you don't want to see The full designs of the characters on the poster. I highly recommend clicking away right now if you haven't already So this is your final warning three two one. I'm about to show the poster here we go So this is the official poster again I managed to lie it out completely flat on my carpet floor It's being held down by the four Fazbear Fright books we have so far and wow I mean, it's so weird to finally see this poster because it is the background for my phone and my desktop So just having it in real life at this moment. It's kind of crazy. So, okay, let's focus on the characters We have security girl front and center. She has her flashlight. She for some reason has lost her cat I don't know if we will ever figure out why she's not wearing her hat in this poster But she is wearing it in her teaser. It's a little bit weird Then we have the four glam rock characters behind her We have glam rock Freddy Roxanne Montgomery and glam rock Chica. So before this poster came out We didn't really know what glam rock Chica looked like besides her Funko action figure Which again, I did unbox in review yesterday So this was our first good look at what she looks like besides again the Funko action figure and she looks really cool And I can say that about all of glam rock characters again I talked about this in my video yesterday, but I personally really really love the designs of these new characters I love the face paint. I love the colors that they're going for I love the instruments that they all have the only complaint I have about this poster and really Everything that we've seen about the glam rock animatronics up until this point in time is that they don't really seem like animatronics and I know that sounds a bit weird because you know, these are the fnaf animatronics They are robots in the game, but I don't know. It's just something about this game in the way that they've been shown It just it doesn't give me a good animatronic vibe. Now, of course, I'm sure that's going to change in the game I'm sure they will definitely have a more robotic appearance in the game They are just turning them into more human-like characters for Medias, you know to have on posters and calendars and other stuff like that and then of course in the top left We have Vanessa herself wielding of course her stabby stabby knife that she will most likely use to murder kids So because we have already done kind of a deep insight on this poster There's not really much to talk about now that we have it in real life, you know Like we've talked about the character designs We've talked about what location they could be and obviously they are most likely in the mall in this poster But where in the mall they could be on the show stage. They could be in an arcade. They could be in the cinema There are so many rooms. They could be in the 40,000 beer's pizza. That's in the mall But most likely I think they are on the main stage that is in the center of the mall We can see in the background some neon stars and lights So I think it's pretty safe to say that they are on the stage in the center of the mall again I love the designs of these characters Especially on this poster and just having it in real life right now is really really fucking cool. Freddie is holding his microphone He has this fist in the air. He's ready to rock and roll Roxanne has her keytor, which I remember the name of it this time and then Glamrock Chica and Monty have their guitars So now that we've had a look at the poster itself I'm gonna hang them on my wall right there if you've seen my FNAF AR videos Usually that's where my FNAF group poster is but I moved it to over there. Maybe I'll show it I moved it to right over there near the TV So yeah, that's where that is now and I'm gonna put the new poster where that poster used to be right there So I'm gonna do that and I'll get back to you when it's done. Okay, so instead of just popping up a picture on the screen I'm gonna do a recording for you all so we can actually get up and close with the characters So this is the whole poster and I mentioned the length and width earlier But I believe it's 22 inches by 34 inches. So again, it's a decently sized poster I tried pointing my lights over to the poster so we could get a very very good shot of it And I think I worked pretty well as you can see there's no glare on it And this is the poster in full. So again, we have Vanny up in the top left next to her Glamrock Chica Montgomery the alligator over near the top right Below him we got Roxanne the wolf Security girl front and center again And then the man himself Glamrock Freddy details are incredible on this poster and also it's very Smooth, I don't think I mentioned that but this poster is really smooth for some reason and I love it a lot I'm just getting a good panning zoom of the poster right here for everyone who wants to see it Almost at the bottom. There's all the copyright stuff down there and then the name if I'm shaking during this video It's because it's actually very very hot in here because I was recording a video before this So my lights have been on For a very very long time. So sorry about that. I just noticed this but is that What what is that water? Is that is that cut anyways? Yeah, this is the entirety of the poster again very very detailed Look at Chica's face right there Montgomery's face right here. You can see his red eyes below his glasses fanny as well Glamrock Freddy, I know I'm taking a long time on this video But I think it's very important That I do this because again, I didn't see many videos on the poster At least not many people have the poster at this moment in time. So I thought you know what I'm gonna take my time I'm gonna show every bit in peace Just so everyone has a chance to fully view this poster As a whole and there it is. So that is the security breach poster again Don't get mad at me that I have it as well as the action figures It's not my fault that I have these products I mentioned this earlier But if Scott and stairwell as well as the third party merchandise companies funko and trends did a better job You know with release dates for everything. I think you know these wouldn't have been released as early as they were I'm not trying to be mean to anyone. Scott stairwell funko trends I think if Scott and stairwell did a better job of organizing the release date for this game This probably wouldn't have happened But at the same time, I don't think trends and funko should have leaked All this stuff and at the same time released it as early as they did But then again, they were given a release date by Scott and stairwell And they kind of do have to stick by that release date So poetically it's kind of everyone's fault and no one's fault at the same time I think the release date for this game and the release date for all this merch Has been very confusing for everyone including us, Scott, stairwell, trends, funko, everyone So I think there are a lot of people at fault But at the same time there was really nothing that anyone could do to prevent this. Yeah, that was the poster Thank you everyone so much for watching this video And if you missed it again, I did review and unbox the funko action figures yesterday So if you missed that it's linked down below. It's also probably going to be a pinned comment So go check it out if you missed that But thank you all so much for watching and I'll see you on the flip side. Goodbye


Hi everyone! I am Matteo Collina and today I'm going to talk to you about Fastify. You know, Fastify is a project that I started a few years back with with Thomas and it has been one of the most amazing, you know, journey of my life, to be honest. So I hope you would like this intro and you would, you know, give it a shot and try it out in your next project. So, let's start. First of all, take a moment to follow me on Twitter at Matteo Collina. I repeat about a lot of things. So, hey, Mollie Javascript. So I also work for a company called NearForm. So if you are interested, please check us out. We are a professional services company based in Ireland but working worldwide to, that can help you in any sort of problems. Anyway, let's get started on Fastify and why it matters. So Fastify is, you can find everything for rated to Fastify on www.fastify.io. It's our main domain. You can find all the docs there. It's pretty good and it's, you know, it should be a lot of docs. As usual, everything can be improved. So please, please, please check it out. And if you see something that it does not, you know, that you don't find clear, please open an issue and maybe send out a PR to improve it. Anyway, and this is actually a good segue for the very first important part of this talk, which is, you know, a genetic principle that is based, that underpins all of OpenJS project, but, you know, specifically Fastify. An open source project is as good as its community is. This, it's extremely important. So in fact, Fastify, we believe that, you know, building and maintaining a web framework for Node.js is too much of a work for a single individual or even a single company to some extent. And we, you know, we encourage everybody, everybody that is using Fastify that is finding values Fastify to contribute back. Also, Fastify was born when I met Thomas and I tried to convince him to help me, to convince somebody helping in his journey. And, you know, I found Thomas and, you know, we started working on this together. So it's quite a nice story. I talk about it in the latest in last year of OpenJS. So check it out. Anyway, Fastify. Fastify is one of the fastest web framework for Node.js. And you can, you can just, you know, require it or import it does work both ways. And you can call it with logger or other options. And then you can declare your routes and, you know, async await, you can use async await to just return an object it will convert to JSON. Very simple. Now, Fastify has been under massive growth in the last year, in the last few years. It has now reached 900,000 downloads per month. And it's probably on the track to reach a million downloads per month at the end of the year. So finger crossed. And it has now, it has 15 collaborators working on it. And it has reached version three. And it has a very big ecosystem of 185 plugins. We are going to ship V4 soon. So we're going to, to storm with a lot of, with a lot of news about it. As I said, the core values as Fastify are all about open collaboration and collaboration across multiple individuals. We always welcome first time contributors. So if you're using Fastify, there's a very good chance that you are, that you will be asked a very, very simple question. Would you like to send up a request to fix your bug, your issue or implement a new feature? It's always important that you contribute back in this ecosystem. We don't, that's what we do here. Okay. It's, it's too complex to build this thing alone. So we ask everybody to contribute back. We also seek open, we also approach with an open governance fashion, which means that we ask if people objects and if not we are lending them. Typically, if there are ties or things that are too complex or that require that the community is on shore, one of the lead maintainers or creators, whatever, step in and try to fix it. Okay. And, or maybe try to break the tie, essentially, and provide some guidance. And this person is Thomas and myself. The fund, as I said, the key part of Fastify was built, Fastify was a community of two people before it was, before any code was committed. So, you know, the fact that it's a meld of different companies, different people, different individuals working together, it's, it's a key, a fundamental issue part of Fastify. It's the problem that we have seen, why is this? Well, the reason is because we have seen that, especially in other frameworks, in other initiatives that it's very hard to, for a single company or person, justify the investment that is needed to build and maintain a web framework for Node.js. And what we have chosen is to, the job that we have chosen is to spread this effort across the companies using it. So, you know, the typical request that I ask everybody, that we ask everybody is, when there is a bug, I said, would you like to send a PR? And remember to add unit tests. So, Fastify is pretty unique in that sense. And we create this culture of ownership that is a key, a fundamental part of the Fastify experience. You can check it out. We also have a nice governance document. So, please check it out to see how our community works. By the way, we just can make, if you contribute to, if you contribute to Fastify, it's very likely that you will get the commit bit.  Let's go into tech, because, you know, still Fastify is a web framework, right, for Node.js. So, it's a tech. We need to talk about tech. The first principle is about overhead. We don't want to add additional overhead in production. Why? That is not truly possible. So, it's aspirational and we want to reduce the overhead that the web framework have. We want to provide a good developer experience. That's a key fundamental part of it. And it needs to work great for both small and big projects. So, it needs to work for a very simple, hello world, but also, you should also work well for a company that is 100 developers working on several microservices and so on and so forth. It's not simple to build something to design a web framework that can easily grow and increase the amount of complexity. Because of this, we wanted to be able to migrate to microservices and serverless and back. It needs to have a very good security and more importantly, data validation. It has a plugin system. Again, we don't believe to scope creep. So, to avoid scope creep, we created a plugin system. So, if something could be a plugin, it likely should. It needs to be testable and we do not want to monkey patch core. To be honest, this was one of the part that, one of the critical part, the node core. So, this one, a critical part that led me to create Fastify in the first place, because a lot of the other frameworks actually had a huge focus on monkey patching node core. Also, we want to follow semantic versioning and long-term support. So, more or less, we ship one new major version per year. And last, but not least, HTTP 1.1 spec adherence. So, we want to follow HTTP 1.1. So, one of the very nice bits, one nice thing to chat about is, how fast is Fastify? Because it's one of, you know, it's cool in this way and it's, I wanted to clarify that Fastify is fast enough. So, it does not provide a significant slowdown compared to node core. In certain cases, actually slightly faster than node core, because it can avoid certain, you know, path that are not great. It's probably faster than whatever you are using. And at this level, it's, you know, comparable to you just to use node core. This is critical because we don't want a significant drop in throughput and performance. So, if there is a significant drop in throughput and performance, we are in, you know, you don't want, your web framework should not be your main bottom, right? It, I'll talk a little bit more about later on why this is fast, why it's fast. So, Fastify is also very much loved by devs. And, you know, it was part of the latest state of JS, which might not be representative, but it's still a good number that, you know, a few people are loving Fastify. So, pretty good, right? I am pretty, pretty happy about about this result. So, it's pretty good. Anyway, Fastify is also have another library called Mercurius that you can use on top. It provides support for GraphQL on top of it. And it's also, it's as well very fast. As I said, one of the key part of Fastify is its plugins. And we have both core plugins and ecosystem plugins. What is the difference? Well, the difference is that core plugins are maintained by the Fastify organization. So, we typically guarantee that they work on every new major. So, we typically update all of them when we do a Sanver major. Now, consider it, we are releasing essentially to do a Sanver major Fastify. We are probably using 4045 modules.  So, when that's happened, it's a little bit of a shift in major versions. Anyway, they also tend to solve the problem in the most idiomatic way. So, there's a few examples like Fastify to load, Fastify static and the under pressure module. The project in the ecosystem are maintained by members of the community. For example, I wrote some of them that are very opinionated and think that I would not want to include in the org. So, it's, you know, there are plenty. So, hey, and we have a few, we have 141 of those. So, you can just write one, to be honest. There is a good guide on the website. So, what is the target architecture of a Fastify application? Well, historically, you have, we have been deploying Node.js with MVC pattern. MVC, however, as a significant problem. You know, once the complexity of the application grows over time, you are either moving, you're either putting the complexity in the models, the views, or the controllers. So, that's quite of a big, quite of a big problem, for me at least. Because, you know, it's very hard to scale. So, how can we improve this? Well, yeah, here we go. So, how can we improve this? Well, what we can do is we can, you know, start structuring our application instead of using the MVC concept, using just horizontal modules that are, you know, aligned with the features of your app. So, instead of having like these big three boxes where you need to fit everything, you can have just a few independent modules as many as the domain of your application are. And this system actually scale way better in complexity. Because the moment you start doing this, you can, you know, you can have, you have segregated the complexity into and tracking the pieces that you need to reuse in some other module, essentially. So, you can now track what is the interrelationship between the things. In fact, it's also the stepping stone for moving into a microservice, into a microservice architecture. Microservices are actually a fundamental part of how we develop system as well as lambdas and so on. But the key part is that with Fastify, you could essentially move from a monolith to a microservice ward very easily, because it's all built on a console of plugins. So, you will see that in a moment, but it's like super easy. So, let's go a little bit in depth. So, Fastify is built on various levels. So, at the bottom of it, we have two libraries, Avio, which is the loader of Fastify and provide, it also provides the plugin system. And Pino, which is the fastest logger for Node.js. I'm not going to talk about Pino.  There's a lot of talks. One of my favorite one is the cost of logging. It's been around for a while. It has now reached version six and it's going to have version seven. We're talking a little bit about it later maybe. Anyway, Avio, which is the loader, it's what, you know, load the plugin system. And it provides the extensibility that is needed by your app. Avio guarantees to have the plugin system, the hook system and the decorators. So, it's essentially provide the basics in which all these other features are built upon. On top of that, we have like the router, which is Find My Way, AJV, which is the validation, validator, and Fastify, which is the signalizer. We'll talk about those in a second. So, the plugin system. This is a key part of Fastify. With the plugin system, you have an entry point at the very top. And then the entry point can, you know, load plugins. And plugins can load other plugins re-enter in a re-entrant way. Now, each one of those plugins creates an encapsulation context. So, essentially, whatever they do, it won't influence, it won't influence like sibling plugins, only descendants. This is critical, because then we can say, for example, we can pack an app and reuse it. We'll see how to do that. In fact, if I want to expose a functionality from one plugin to the other, I can use the concept of decoration. So, I can decorate the request, the response, or the server to expose some things to my descendant plugins. Now, this is really nice, because, you know, it's a simple way of providing dependency injection or, I don't know, inversion of control, if you want to call it whatever. So, it's actually pretty nice. Sorry. You can also break the encapsulation if you want, because you can use a utility called Fastify plugin so that you can actually expose the decoration to your parent as well as your siblings. This allows us to build, I don't know, reusable modules. So, we can use this utility to build reusable modules. The request lifecycle of Fastify is different than the one of Express, for example. With other stuff, with other Express or CoA, you have middlewares that are run everywhere. With Fastify, you have a predefined lifecycle that clearly defines that you can clearly use to specify when things are run. And this is key, because in this way, we can actually, you know, avoid monkey patching Nodecore. So, we have all sorts of hooks. So, typically, the most important ones are the on-request hook. That's the first one that is executed. We have prehandler, which is executed before the user handler. And then we have onSend, which is executed before sending the actual response out. We also provide a recommended project structure, which provides an app.js file that contains your app, a plugins folder for reusable behavior, a routes folder for all your routes with a nested pattern. We'll see how to do that, and then a test folder with your code. Fastify provides this concept of encapsulation, as we have seen. Now, with Fastify, you've seen the target architecture on the left.  Here you go. So, it's, with Fastify, you have, you can see that you have your target architecture on the left.  Now, you can actually port this to Fastify very easily, because you can have, you know, your major application that is composed, your major app that is composed of three subapps or four or five or how many you want, which have their own plugins and dependencies and everything. So, it's completely, they are completely separated between themselves. It's pretty neat. So, because of all this stuff, you can also use Fastify to fully embed and express app. So, you know, it's pretty good. As I said, logging, it's one of the key part of Fastify. And you can just use Pino. So, it's probably the fastest logger for Mochias. So, take a look at the, take a look at Pino. It's great. So, it's, we are versioning on version seven. How do you use it? Well, you just call logger.info. Pretty neat as everything you will use in the past. Some more important bits, Fastify provides out-of-the-box serialization. So, it allows you to specify the type, the schema of the object going out. This is pretty important, because then we can create a faster-than-json.stringify method function that, you know, can give you a nice speed bump. We also written this utility called Fluent JSON Schema to help you write in JSON Schema in a nicer syntax. I like it a lot. I'd never used JSON Schema, by the way. We also use AJV, which is, and by the way, this is the plugin system syntax. So, you need to export a function with app and apps. And AJV is one of the fastest validator for Node.js. So, it's pretty great also for embedding. So, that's why we use it. And hey, it's also another OpenJS project. So, testing. Fastify embed an inject method for fast testing. It's really fast, even this method. And, in fact, that method is so fast that it has the basis of the integration for AWS Lambda. So, you can, with this utility, AWS Lambda Fastify, you can just create a very simple proxy for your Fastify app, which is essentially just the app as you would normally use. And it just works. It's pretty neat. And it's really fast. Like, this is actually way better than embedding and express app inside Lambda. So, you can check it out. You can use the close method for graceful shutdown in normal Node app in case you want to do. Okay. So, I just want to thank you for your time before we go into the, we do a little bit of a live coding example and see how it is. So, I'm going to switch to my terminal that you can all see. So, you know, we can start developing things on Fastify. So, we can do eapp.js and we can do import Fastify from Fastify. And what we do is that we do close app. We do Fastify. Okay. And then we do app.listen, 3000. Here we go.  So, we now do, we can do node app. And then I can call it. And we are calling it. And you see, it's just not found. So, hey, not super nice, right? But we can add it out. And we add it out. And function. I don't need anything here. So, I'm just going to return hello. We're running my app. As you see now, it's returning a lowered. Cool. Oh, I can also see that if there are old HTTP headers that I would expect and they are all there. Okay. So, pretty nice. Okay. What do we do next? Well, this app is not really, really reusable. So, what we want to do is we want to make, well, this is fresh. Okay. Let's test this. Okay. So, we want to create another server, another file called server.js. Now, I want to split my app. Because, for example, I want to build them and we're using for unit tests. So, what I do in app is that I do export default async function. And I typically do this return. Then I move this into server. And here, I do import build from .js. And then I do const app await build. Okay. So, let's see if, node app, it does nothing now. So, if I do node server instead, and then I curl, it's still working as expected. Cool. Okay. Pretty neat. So, this is actually pretty nice. I can also use, for example, passing some ops here and, you know, include them here. And then in server, I can say, for example, logger true. So, I can do node server and then I can curl. Oh, I didn't do something here. So, we'll, did I say this? I probably didn't. Okay. So, now, you see it's printed something and we see some stuff being printed out. This is new light and limited JSON. If I am in, if I want some nicer output for development, I can use Pino Pretty. And as you can see, I can see the request coming in and the request that is completed out. And we can see some usual things about response time and so on and so forth. So, here we go. Pretty neat. Cool. Okay. So, this is some good example. However, this is not really scalable as we saw. So, we can use the routes. We can create a routes folder. And in routes, I can create a load.js. In a load.js, what I am doing is that I'm going to copy this. And here I'm doing to export default async function, app, ops. And then I'm going to pass this in. And then in my app.js, I am just going to app.register. Oh, I need a tiny utility because otherwise it won't work on Windows. So, this is for dealing with DSM. So, it's called DSM. And I'm just going to join import. Well, I want to import join import meta URL, the current file. Well, I don't need this right now. So, I can just do routes and hello.js. Okay. Then I cancel this and see if it works. Okay. So, it did load. And then it's still working. Cool. Okay. So, now one of the things that I want to use is instead, I don't want to load all the files manually. So, what I'm going to do is I'm going to use autoload, the autoload module. So, called fastify autoload. And I'm going to use this with this utility called DSM. And the reason for this it's because unfortunately, you know, in DSM, you don't have an discord.score dename or discord.score file name. So, you need a little bit, you need to work with file URLs and it's a bit convoluted. So, I don't really, I make mistakes all the time, especially stuff that doesn't work on Windows. So, I tend to prefer to use my utility that has this thing called that.  And then you say import meta URL, which is the current file. And you put, and then you say routes. So, you basically you tell load, load everything that is defined into that folder. So, you would then know run this and then I can curl it. As you can see, it's still work as expected as before. Pretty nice, pretty, pretty nice indeed. Cool folks. Oh, one of the nicest things that I can actually create a folder nested structure. So, I can say nested and then say route.js. And then I can copy this and put it in here and says alone nested. Note that I still use slash here to define this, that the pattern is defined in the folder. And so, let's see if I can launch this stuff. So, this is still working. Okay, cool. And then if I do slash nested, it's still, it goes into the nested folder. So, yeah, I just wanted to say to conclude this by saying thank you. And if you have any question, please reach out to me at Matteo Colina on Twitter or via email. There is also an at Fastify.js account. So, thank you. Thank you very much. And bye bye.