Svelte in 2023 with Simon H === Paul: ~Test, test, test.~ Simon: ~Test, test, test.~ Paul: ~Okay. ~[00:00:00] Hi there and welcome to Pod Rocket, a podcast brought to you by Log Rocket. Log Rocket helps software teams improve user experience with session replay, error tracking and product analytics. Tried for free@logrocket.com today. ~My name Paul and~ joined with us is Simon Holden. ~So~ Simon is a core dev over at spelt and we're gonna be talking about spelt kit and the recent updates coming from four to five. Welcome to the podcast Simon. It's great to have you. Simon: Thank you. Paul: So Simon, People might know of you because ~you're,~ you're very influential in this felt community. ~Um,~ really unique GitHub handle. ~Um,~ dumb de dumb, right? ~That's, that's,~ Simon: Yeah. Yeah. Right. Paul: How'd you come up with that handle? Simon: Yeah, so my, my, my first panel, ~uh,~ which I picked when I was in puberty, and I thought that was a. ~Uh,~ that the handle back then was hitman, faker, ~uh,~ and it, I thought it was cool back then. And then I got out of puberty and I thought, okay, this, that's not so cool anymore. [00:01:00] And so I, I was in a search of an, a different handle and then I was like humming along while thinking of a, something like, and I thought, Hey, why not use doom? And then ~like,~ this became the handle. So, Paul: it ~kind of~ rolls off the tongue. ~It's,~ it's unique. ~I mean,~ when you see it, you're like, oh, that's, that's fun. Simon: Yeah, Paul: And sometimes they get how vans are a bit confusing. So it definitely stood out. ~Um,~ but yeah. So Simon, you've been in the spelt community for, ~uh,~ Quite a while now. ~Um,~ how many years has it been since you really first started to get enamored? The ecosystem. Simon: I think it's a bit over three years by now, man. Time flies. Paul: ~Wow. Yeah.~ Simon: ~Yeah, I,~ I first got in contact with it, ~uh,~ at my previous company, ~uh,~ where they do a yearly hackathon. And, ~uh,~ I tried out salt, ~uh,~ for the front end part of the hackathon project, and I immediately fell in love with it. But I also knew that I couldn't, ~uh,~ use it at work because like we, we mainly did angular, et cetera there.[00:02:00] ~Um,~ so I thought, okay, how else can I stay in contact with it? And so I started contributing to it, ~uh,~ first to the, ~uh,~ IDE extension, ~like, uh,~ these code extension, et cetera, which was a bit rough at the time. ~Uh,~ and so I started, ~uh,~ contributing to that. ~Uh,~ and then, Yeah, ~at the,~ at the start of last year, then, ~uh,~ like when I was, ~uh,~ part of the maintainer team for a while, ~uh,~ already Rich, ~uh, who,~ who, ~uh,~ then ~had,~ had joined Vall, ~uh,~ since a few months, said that Vall wanted to hire one more person to, to work on salt full-time. And so I thought, ~uh, why,~ why not give it a shot? ~And, um, so yeah.~ In July last year, I then joined the cell and since then I'm working on spell full-time. Paul: So you've been in the ecosystem now, like you said, for three years, and we're at an exciting time coming from four to five. ~Right.~ And we're gonna get into a few details about this, such as custom elements and the images and stuff like this. But do you think that this [00:03:00] is, ~You know, a~ a, a big paradigm shift time in this version shift that's coming out right now. Is it a major, is it a minor for people that are just trying to figure out what's going on with spelt news Simon: ~So I think,~ Paul: ~of the years?~ Simon: yeah, I, so salt free has been out more than four years now, ~which is like, A like,~ I dunno, hundreds of years in ~uh,~ JS framework, ~uh,~ times.~ And so, uh, like.~ The cracks show under the hood. ~Uh, so,~ so to speak. ~So, uh,~ we just ~like~ have some things we would like to get rid of and ~like~ move on to newer note versions so we can use, ~uh,~ things that, ~uh,~ were added in those, ~uh, stuff like that.~ ~So, uh,~ this is like the main focus on first felt four that we. So to speak, clean the deck and, ~uh,~ like ~the, the,~ the main work happens there under the hood. So I'd say that Spel four is, ~uh,~ mostly a maintenance release, uh, bumping like the minimum required note version, which will be note 16. If you're using tight script, then the minimum required type script version will [00:04:00] be five. Though it may work with all the versions, but no guarantees. And,~ um,~ we will remove the, ~uh,~ common JS compiler output because n no one's using that anymore with bundlers, like V and so on, ~uh,~ which understand E S M and ~uh,~ et cetera, that's no longer needed. ~So,~ so basically maintenance stuff like this. ~Um,~ and besides that, we, ~like,~ we also want ~to,~ to, ~uh,~ Add ~some,~ some goodies, so to speak. And so one, one of the things you touched on is the, ~uh,~ improved custom and elements support. ~Um,~ so three, ~uh,~ has a custom elements compiler, ~uh,~ output, ~um,~ format, but it's very inflexible. I'd say so because as soon as you say, okay, I want to output custom elements, ~uh,~ From writing salt components, ~um,~ you basically have a either or situation. You have to opt into the compiler output, and then everything is a custom element. You don't have, ~like, uh,~ within, you don't have the [00:05:00] possibility to say, okay, this component should be compiled to a custom element. ~Uh,~ but all these other components I want to. ~Like~ should remain as regular spelt components. And with the change, ~uh,~ with the improved custom element support, we are changing that because now, ~um,~ the custom element output is just a wrapper around the spelt component and. Everything inside, ~uh,~ that wrapper is just regular spell components, so everything behaves as expected inside there, which is not the case currently. And that ~like~ fixes a whole category of backs. ~Uh,~ we had. ~And so I think the, the pr I did, I think it was the,~ the PR with the most issues I closed at once ever was like 10 or 15 at once, I think. ~So,~ yeah, whoever, ~uh,~ wants to try spelled and have a custom element output will, ~uh,~ vastly benefit from this. Paul: Do you think that having custom element output ins felt is gonna be a big [00:06:00] deal for people who aren't in the ecosystem yet, that are evaluating it? Is this ha, or I guess to reframe the question, has that been a blocker to people trying to step into the ecosystem? Simon: So there definitely were people who said, oh, I, I really want to use Felt, because the authoring experience is so nice. ~Um,~ But the, ~like,~ I can't use it because, ~uh, the, the,~ the coax around the custom element outputs is too large. So I am, I'm going to switch to something else. So I think those people, ~uh,~ which I previously have been blocked off, will now be able ~to,~ to use, spell for that. Honestly, I'm not sure how many of those people it is. ~Uh,~ but, ~uh,~ I have this leave no one behind mentality. And so I, ~uh,~ I made it like I have ~this, this,~ this personal desire ~to,~ to improve the custom element support there. Paul: So another thing that's coming out is ~just noted from the blog post that we're sort of referencing here. Um,~ style blocks supporting CSS in~ the,~ in the framework. ~So, Why~ is this a big deal, Simon? Why Simon: ~You,~ you [00:07:00] do You mean the container queries? ~Uh,~ support. Paul: Yes. Simon: ~Yeah. So, um,~ container queries for those who don't know allow you to style things differently based on the size of an element, ~uh,~ around you, not just based on the size of the whole browser window. ~Um,~ and these have landed now I think, in all major browsers. ~Um,~ but ~the,~ the library we've used that like extracts and compiles the css, ~um,~ didn't support CSS container queries yet. And so like we had to work around that a bit to, ~uh,~ now finally add support for that so that everyone can use this new feature. Paul: So in general, we're. You're plugging and you're connecting, like you said, like almost ~like~ a maintenance release it feels like, and a lot of other projects in the ecosystem are ~kind of ~going through a similar. I don't want to call it a growing pain. It's just a growing up phase where it's like, we need to do this. ~It's,~ it's tech debt, you're moving on the [00:08:00] project. ~Um,~ and ~there's,~ there's some elements when we talk to other people in the podcast where there's some elements to an upgrade where it's ~like,~ okay, some of this is necessity. We need to be in node 16, we need to be in node 18. And some of it is, ~well,~ now that we can do node 18, we can use fetch or we can use whatever new APIs they have in there. ~Um, The,~ the custom elements we talked about is definitely like an ad that you were working on, Simon, something novel that's coming into the framework. But besides, if we wanted to distill maybe, ~uh,~ these maintenance things such as supporting the container c s s and focus more on like features that you guys have derived from doing those pieces of maintenance work, what's like another additional. ~You know,~ piece of logic or operable piece of functionality that you've developed when doing this maintenance release that got roped into version Simon: So we have a, yeah, we have a, a bunch of like very small changes which like strictly are breaking. So ~we,~ we can only do them ~in the,~ in the major release. One of them, ~uh,~ for example, is [00:09:00] that, ~um,~ transitions you, we have built in transition support. So if an element like comes into the dom or, ~uh,~ is removed from the dom, you can play an intro or outro animation, ~uh,~ that ~it like, uh, before it, uh,~ is. Appearing or disappearing. And these transitions have been global by default, ~uh,~ in svelte free, which means that everything else is blocked until this thing, ~uh,~ is going away. ~Uh,~ which has led to some, ~uh,~ confusing behavior like, ~uh,~ your. Changing the page and because some, somewhere deep in your page, you have a out transition and then deepen your page. That out transition blocks the whole page, ~uh,~ from changing, and that's confusing. And so we are changing it to local by default now, which means that if somewhere deep in your page, ~uh,~ there's a transition, but the whole page has changed anyway, then that transition will no longer block the whole page transition. So that's one thing.[00:10:00] ~Um,~ then we have improved typings. For example, when, ~um,~ when you are creating an event dispatcher, you can type which events your component dispatchers. And this was a bit like, ~uh,~ you, you couldn't define that. ~Uh,~ an event always had a payload or never had a payload. And we are improving the typings here. ~Um,~ so that you can define that. Another thing is that, ~um,~ our each blocks, ~um,~ historically can only iterate over area like objects, so arrays or anything with a length property. And so you couldn't iterate over things like map or set and that, that we are changing too, so you can now iterate over them. Paul: ~Awesome. Those,~ those seem like three, three really strong features, and especially the second one that you mentioned. ~Um, Simon,~ when you're developing these features, you're almost like building railroad and a platform for people to go build their apps on. ~Um,~ like if you're developing. I'm just gonna go [00:11:00] back ~to the,~ to the custom elements thing. If you're developing the custom elements thing, are you thinking about ~like,~ I wonder what people are gonna develop with my code here. Like, how are they gonna use this and what are they gonna manifest? ~Um,~ what. Yeah. Yeah. It's fun to think about ~being,~ being somebody who ~sets, sets,~ lays the train tracks for somebody. ~Um,~ I'd love to ask your ask, pick your brain a little bit and ask you about that. ~Um,~ before we do, I just wanna take a second to remind our listeners that this podcast is brought to you by Log Rocket. So whether you're developing its felt or react or just throwing plain CSS and HTML on the page, if you wanna debug issues and find those issues faster. Check out Log Rocket because it'll help you improve your user experience with session replay, tracking the dom, breaking it down and delving into issues so you can spend more time developing great app and less time debugging. So for people who are in that phase of development, if they're using your stuff, Simon, ~um, what is,~ is there something that you've, like maybe hoped people are gonna use something that you've put out in [00:12:00] Spel for. That maybe doesn't seem immediately obvious, whether that be through custom elements, whether that be through like the container CSS selector that you and the team have been working on. But I guess is there like a sleeping giant of features that you feel like are about to be overp employed? Simon: I for salt four, I'm not ~so,~ so sure for salt five. ~Uh, I'm,~ I'm definitely sure that we will ~like~ await the sleeping giants. ~Um,~ As I said, salt force, mainly a clean the deck situation. So we can start, ~uh,~ like from a. From a good code base fresh, ~um, to,~ to really get,~ uh,~ the actual, ~uh,~ things going, ~uh,~ that we want to go. ~Um,~ so for example, for cell five, we, ~uh,~ want to re-architect the compiler, ~uh,~ that. Transforms the s spell code into JavaScript code under the hood. And, ~um,~ like it, it shows its age. ~Uh,~ things have changed drastically in the landscape since now, ~uh, since,~ since back then. And ~so, um,~ like ~it's, it's,~ it's time to [00:13:00] rethink how the compiler works, what it outputs under the hood. And ~so, um,~ these things are like, ~The,~ the moments about five, ~uh,~ four is out. ~Uh,~ we will start brainstorming these things and to see how we can rearchitect things and then also set us up for a future where we can then, based on the new architecture, ~uh,~ at new features that, ~uh, people,~ people need. Like for example, we still don't have a good solution for error boundaries, and we definitely want to have that. And ~so, um,~ we will definitely think about how features like that, ~uh,~ come into play for, ~uh,~ with that re-architected, ~uh,~ compiler. Paul: What's something that's not being included in four that due to the nature of the beast, right? This is a maintenance, clean the deck release, you're pushing out till five and people are saying, whoa, no, no, no, no. I want it right now. ~Uh,~ is there anything in, is there anything in that type of basket that you're making a decision on?[00:14:00] Simon: ~Um, yeah, ba~ basically everything that requires a, ~like,~ requires more work on the compiler itself is more like a useful five thing because, ~um,~ We like, we want to rethink, as I said, the compiler, which probably means getting rid of, ~uh,~ many things inside the compiler. So it ~wouldn't,~ wouldn't be efficient to do it in spell four, for example, because, ~uh,~ then we would spend all this time inside the, ~uh,~ current compiler architecture to, to achieve these things only to, ~uh,~ like completely rewrite it anyway. So it's ~a,~ a better, like 12 five will come sooner if we can like, Make spell four, like a smaller release, so to speak, and then, ~uh,~ go off to spell five right away. Paul: Is felt five gonna be like the compiler release? Is that gonna be the theme of it's felt? Five. Simon: ~I am, I, I maybe, I mean, uh,~ right now nothing is set in stone, but, ~uh,~ we definitely,~ like,~ as I said, want to [00:15:00] rethink these, ~uh,~ all these things. ~Um, so, um, um, yeah. It,~ it may be spelled five, ~uh,~ it may be spelled six. ~I,~ I don't know how the, like how long it will take. ~Um, ~may, maybe we want to have, ~uh,~ other breaking changes in between just to ease migration and to not have~ like~ one big release, ~uh,~ which is two breaking. Ideally we don't break anything on the outside and everything is purely additive and ~like,~ People, ~uh,~ don't ~like~ see it, but ~it,~ it's different under the hood and sets us up to, ~uh,~ do all these new features. ~Um,~ yeah, but ~I,~ I wouldn't ~like~ put a label on it. ~Like ~spelled five is the release that will contain everything, ~uh,~ I've just talked about. But it's, ~uh,~ it's probable, ~so it's likely that it happens like this.~ Paul: when you're working on the compiler, like I'm just, I'd love to double click on that for a sec cuz you, you said something in passing, which was it? It shows its age and. ~You know,~ you're somebody that's definitely worked on a lot of open source software. You've seen a lot of software. So what in your opinion, makes something show its [00:16:00] age? I know it's different for every domain and every piece of software and team that you're working on, but in this example, like what's something that made you, makes you say ~this,~ this needs love again. Simon: ~Um,~ I'd say it's, ~uh,~ it's a mix of multiple things. ~Like, um,~ for example, SEL free, ~uh,~ started out as a community maintained project. With people maintaining it in their free time. And so this means people, ~uh,~ do it in their evenings or like they pick two, two days of their vacation and then work on it, ~uh,~ for a whole day. ~Uh,~ but they, it's ~like~ not like they are consistently putting in, ~uh,~ a few hours a day. And so you have many different people who are like on and off working on it. ~And so there's no. There's no good way. Like~ there's no easy way to ~like~ have it, like there's no gardener, so to speak, ~who,~ who overlooks everything and says, okay, this needs a refactoring. We have to do this and that. ~Um,~ just because there's no time, ~uh, to,~ to [00:17:00] like look into these things. ~Uh,~ but now that, ~uh,~ we are now three people, ~uh,~ working full-time on Aspel. ~Uh,~ Dominic. Anyway, ~uh,~ just, ~uh,~ joined us, ~uh,~ this week, ~uh,~ the end of June, ~uh,~ end of May. ~Um,~ and so we are like now three people, ~uh,~ working full-time on it. And this is like a vastly different situation because now we can like, have things vastly different processes, oversight compared to a like purely community driven, ~uh,~ project. And, ~uh, so. Uh,~ because of that, we can ~like~ implement different processes, ~uh,~ look out more for things like refactoring and so on. And so if I look into SEL kit for example, it's really often that, ~uh,~ we do a pull request and then like we see things on the side and then. ~Uh,~ we say, oh, okay, this could also use a effect. And then like we do it, ~uh,~ as part of the PR or in a separate follow up pr. And so things always stay in shape and we just didn't have ~the,~ the [00:18:00] time to do these things that often for spelled yet. ~Uh,~ but that's about change. And so because the tech deck has accumulated, ~uh,~ for the compiler, I think it's ~uh,~ Probably ~the,~ the easiest ~to,~ to ~like~ start, ~uh,~ a bit fresh. ~Don't,~ don't reuse too much. Also because we want to change how the compiler output looks like, so we will likely not be able to reuse, ~uh,~ much anyway. ~So like~ this is a perfect situation to, ~uh,~ overthink ~how,~ how the new compile output looks like. Start fresh, ~uh,~ and this time with the right, ~uh,~ processes and capacities to, ~uh, to~ have it like, ~uh,~ lasting more than three years. Paul: ~Yeah.~ It sounds like there's also a, ~uh,~ team change going on, like you said, like you're adding a new member. There's almost like this gardener role ~sort of~ emerging where you have people working full-time on it. ~Um,~ do you think this is really gonna change? ~The,~ the waste felt is developed over the next year or two, having now three members working full-time.[00:19:00] Simon: I think it will definitely, ~uh,~ improve things for the better. ~I,~ I'm not too sure ~how,~ how, ~like,~ It changes the way we, ~uh,~ develop. Like it's more people for us, ~uh,~ who work on it every day. ~Uh,~ and that's always a plus. ~Um,~ but it's not like we are throwing out every processes that work for us previously. ~Um, so, um,~ it's like iterative and so ~we will,~ we will definitely. Change some processes and, ~uh,~ stuff like that in the, ~um,~ in the time, but, ~uh,~ what exactly that, that will show itself in a few months. Paul: ~So, You've Hi Kate.~ Simon: ~Um, yeah, I'm, I'm, I'm fine with this. Uh, like, I don't know, do we have anything else, like a completely different topic you want to touch on or like, do you want to end on the 12, four or five thing? Um, yes, SEL kit is like, I mean, SEL kit isn't, we could tell about that. We are like in bug bash mode at the moment, improving documentation that there is a new, um, tutorial side, which is finished now, uh, based on web containers. So, so I'd say these are like the. Uh, notable things that happened the last month, but I don't dunno if that's like interesting enough to talk about or,~ ~yeah.~ ~Yeah, I, I just hope I didn't talk like too, too negatively about the, about the current compiler.~ Paul: ~Like, do you feel like our current advertisement of, of what's coming with salt is lacking in any way about what we've gone over from your perspective? Simon?~ Simon: ~Um, no, because like Cell four really is mainly this maintenance release and all the exciting stuff will happen afterwards. So, For the future mean, like spelt because I mean, we are talking about the future right now. I mean, we, ~ Paul: ~Yeah, we're kinda doing that now.~ Simon: ~okay.~ ~Okay.~ Paul: ~Yeah, I'll, I, Simon, if we, if you want, I'll just continue. I think we were talking about, um, about Versace. Um,~ Simon: ~I, I honestly also, I, I kind of lost where we, we've been. I. All right. How, how that~ Paul: ~Oh, right, right. We were gonna talk. Yeah. The,~ ~okay. ~ Simon: ~And so I said that like cha, things will probably change, but we don't know how yet. And it's great that the third person is working full-time on it now. I think that was like by answer. And then you were about to ask something else.~ Paul: ~Yeah. So I was,~ I was gonna ask if you feel like you've been in, ~you know,~ contributing to open source, now you're in ~kind of like~ a hybrid role, right? And then you've also worked at companies, What is your opinion about the open source community and the optimal for how you can maybe see a team work? Is a hybrid role like you're in right now, where you have full-time and open source individuals contributing? Is this like a, ~the,~ the best scenario, or do you really [00:20:00] see like maximum efficiency ~in,~ in productivity in a typical corporate environment? Simon: ~Yeah, that's a, that's a very interesting question. Um, just, just to make sure we are, we're live again now or~ Paul: ~Yeah. Yeah. We're recording right now.~ Simon: ~Okay. Okay. But I mean, like this will be part, this will question will go into the. Recording again. Okay. Okay. Be be quiet again to, to let, let it cut out. And then Yeah.~ That's a very ~in, uh,~ good question. ~Um,~ I think that a mix of both is probably, ~uh,~ the best for a, like open source project so that you have a core team who works on it full-time. ~Uh,~ which means that's the capacity, ~uh,~ to have an ~like, uh,~ oversight, ~uh,~ over, ~uh,~ everything that's happening, ~uh,~ within the open source, ~uh, um,~ project. then you have, ~um,~ many people who are working on it, ~uh,~ whenever they feel like, ~uh,~ have these different areas they want to focus on. ~Um,~ and so that the core team can set them up for success. ~Uh,~ it identify which people want to work on which parts and, ~uh, like~ coordinate these things. ~So, um, in a,~ in a sense, these core team, ~uh,~ people then are not just like developers. They're also managers, ~uh, in some,~ in some way because, ~uh,~ you have ~like~ this, ~uh,~ yeah, you have to. See ~where,~ where [00:21:00] people, ~uh,~ come and go, ~how,~ how much time do they want to contribute? ~Um, and yeah,~ I think that's like almost like a manager role, ~uh,~ too. And so I think, again, a mix of few core team members and then, ~uh,~ many people contributing in their free time or part-time or whatever, ~uh,~ is probably, ~uh,~ the best mix. Paul: It's ~sort of~ like you get the passion project doers, and then you still have your gardener. ~I,~ I love this term that you brought, like the gardener. It's somebody to make sure everything is growing in order. Simon: Right. Paul: ~Do you,~ do you see yourself as an employee of Versace or as an employee, as felt sponsored by Versace? Simon: That's interesting. ~I, I,~ I see myself as a employee of, ~uh,~ visa. Definitely. But like a employee who has the total freedom to, to work on al. So ~I,~ I know that there has been like, ~some,~ some fear in the community like, oh, is VA like taking over selt? Or something like that. [00:22:00] And, ~um, I can,~ I can see on the inside definitely 100% that this is not the case. Like we, we have a lot of freedom and, ~um, It's,~ it's almost, ~uh,~ a net benefit to me because, ~um,~ on one side ~I'm, I'm,~ I'm working full-time on, but I am closely connected to a, like hosting provider, which like, I. If you're creating a website, you have to host it somewhere. And so seeing the needs of a hosting provider ~that, that~ what a hosting provider needs from a framework and having these insights, ~uh,~ from the insight ~is,~ is very valuable. And I think it goes both ways because. Bael can also say, Hey, we have these new APIs, and ~uh,~ do they make sense for frameworks like nhas or spelt? And so we can try them out early and provide feedback. So ver for example, there's the ~uh, uh,~ really great built output api. Which, ~uh,~ allows you to, ~uh, like~ encode, ~uh,~ describe, ~um,~ what the thing you [00:23:00] deploy, ~uh,~ has as capabilities. ~Like~ does it use image optimization? Which, ~uh, Uh,~ serverless functions. Does it use or does it use edge functions, et cetera. And these things are like, ~uh,~ not configurable through some dashboard, but through code. And, ~uh,~ this is the BU build output api. And, ~uh,~ rich, ~uh,~ was able to give feedback on that, ~uh,~ before it went public and like help, ~uh,~ shape it into what it is today. And I think, ~uh,~ that is very valuable for Vasel as well. Get this feedback. Paul: Do you feel like Svet kit is? ~You know,~ the manifestation is felt for Versace because that's ~sort of~ like for the average developer. They can take this kit and easily deploy to Versace. They can easily get their website running. ~Um, do you,~ do you feel like Versace is in any way invested more or less between selt kit and the underlying selt technology? Or are they just saying ~like,~ truly like freedom, like you guys just make it work, make it great. Simon: ~They,~ they address, say, ~make,~ make it work, make it great, [00:24:00] and of course make it work on the cell. ~Um, which,~ which is a fair ask. ~So,~ so if there's a new feature, ~uh, uh,~ we should make sure it works on the cell, but we also want to make sure it works anywhere else. So ~we,~ we consciously design spell kit in a way that you can like easily deployed ~to,~ to any hosting platform. So we have this concept of adapters where you're just. Basically switch out adaptive cell for, I don't know, ~uh,~ adapt a node and then you can just deploy to your own, ~uh,~ node server and then it runs there the same. ~Uh,~ and so ~this,~ this kind of on inter interoperability through adapters ~is,~ is really I important to us, ~uh,~ and that, that way it works flawlessly on the cell, but it also works, ~uh,~ flawlessly on, on many other deployment targets. ~Um,~ Yeah. And so like the relationship between selt and spelt kit. I'd say for me selt, Kitt is like this Swiss Army knife, ~uh,~ because it's so versatile. Like with spelt [00:25:00] itself, you have the, ~uh,~ stellar development experience. ~Uh,~ you can alter components, but you don't have things around it like a router. Or, ~uh,~ like how do I bundle everything? So it, that it's deployable on a certain deployment platform, like a sell, for example. ~Um,~ like all the stuff around it is missing, and Spel, Kitt is providing like the, all these missing pieces for it. And ~it's,~ it's so versatile because. With cel, you can create just, you can create your own blog with it, like purely static pages. You can pre-render everything. You can create, I dunno, your e-commerce site with server side rendering. And then the client, ~uh,~ takes over and you get the snappy client side, ~uh,~ routing from, ~uh,~ from the second navigation onwards. ~Um,~ or you could, ~uh,~ use it for your internal business app where like server side rendering se ~uh,~ search engine optimization is like not a concern at all. So you just [00:26:00] only use the s p A parts of alki and it's able ~to,~ to work with all these different rendering modes. ~Uh,~ and you can even mix and match them within the same project. So you could like, Pre-render your landing page surface side, render your shop, and then do an s p a of your admin page all within the same project. All with vek. Paul: It and ~do,~ do you find any revolutionary features coming? ~I mean,~ we talked about spelt four as like a maintenance release, ~you know,~ sweeping the floor. Is there anything coming to spelt kit to the Swiss Army knife right now ~that you,~ that you think is very exciting before we talk about it in the context of spelt five in the future? Simon: I think that, ~um, some,~ some exciting things, ~uh,~ we are currently trying out, like ~the,~ the API is not shaped out yet. ~Uh, um,~ but Rich has ~like~ tried it out yet. ~Uh, uh, uh, uh,~ tried it out already on a, ~uh, like, uh,~ example project. ~Um,~ Is, ~uh,~ one thing that we add a new navigation hook, [00:27:00] which would allow you to very easily make use of the new, ~um, uh,~ page transition API ~that~ that's coming to browsers, which would make that very easy to use. So this is nice. And the other thing is that we want to look into, ~uh, like, um,~ shallow rooting or. Like ~the,~ the Instagram case, ~you,~ you click on a photo and it like, pops up, ~uh,~ pops up a model with the comments to the side. ~Um,~ and, but the URL has changed. But, ~uh, the,~ the original things are still in the background, so you can close the model and your back to your. To where you were before, ~uh,~ immediately. So you never lose context. But if you reload the page, then you're like on the full page version of that side. And so you like have these two versions of the same page. ~Uh,~ and that's like achievable with, ~uh,~ shallow routine. And, ~um,~ I think Next JS has done a really nice job implementing, ~uh,~ such a feature through their, ~uh,~ [00:28:00] intercepted roots and parallel roots. ~uh,~ we want to look into how something like this can look like in spelt kit. Paul: Simon, thank you for taking the time to come on today to talk about. Felt four. I know maybe there, it's not the most exciting, shiny features, but there's a lot of, ~uh,~ grind in grease going into truing up the framework and making it ready, ~uh,~ for everybody's projects coming in the future. And like you've been touting this whole time, spelt five, there's gonna be a lot coming out in spelt Simon: Yeah. Five will be the real deal, Paul: yeah. Yeah. We'll have a lot to talk about then, for sure. ~Um, if people wanted to keep up to date with you and do you post about the updates as felt for salt five? Uh, Duy dumb. That's your GitHub handle. But do you post anywhere on, uh, Twitter or Medium or anything like this?~ Simon: ~Yeah, my, my, my Twitter, uh, handle is also dumbly dumb, but with an underscore at the end because, so someone else also thought that this is a great nickname, so it was taken already. Um, but yeah, you can find me on Twitter at ddy dumb underscore, and I'm regularly tweeting about all things Will.~ Paul: And if people wanted to just read more about. Specifically spelt four, they can go to the release notes right on Simon: ~Right.~ They can't go to the release notes, ~uh,~ when they're out. ~Uh,~ but we will definitely also put out a blog post about ~that,~ that's for sure. Paul: Awesome. If and if people want to keep up to date for spelt five and what's happening besides poking up at the repo, do you folks have any documentation or materials out of [00:29:00] what you're thinking about Versace? Five. Simon: We don't have yet, but we definitely want to, ~uh,~ make this, ~uh,~ in the open. So once we've ~like~ brainstormed and, ~uh,~ have some ideas, we want to present them, ~uh,~ to the community. ~Um,~ what we did with spk, I think worked really well. We, ~uh,~ opened the discussions, ~uh,~ feature on GitHub, and then we like presented our RFCs there. ~Uh,~ and then, ~uh,~ listened to feedback from the community just to the features, ~uh,~ as needed as we thought would, ~uh,~ be right, and then, ~uh,~ go on to implementing that. So expect, ~uh,~ RFCs, ~uh, ~about these, ~uh,~ new things. Paul: Awesome. Simon. Thank you for your time. It was a pleasure. Simon: There. Those all mine.