DiscoverSvelte Radio
Svelte Radio
Claim Ownership

Svelte Radio

Author: Kevin Åberg Kultalahti

Subscribed: 75Played: 1,264
Share

Description

Things about Svelte. Sometimes weekly, sometimes not.
33 Episodes
Reverse
We sit down and talk with Jake and Willow and talk about the just-released Routify 3.Notes Routify and their Discord server Version 3 Stackmix: A Template Generator for Routify SpaSSR: A small express server with SSR Spank: Slap the pages out of an SPA ToSSR: Universal SPA to SSR Configent: No Fuss Configurator Meteor: Open-source Framework for Building Applications Meatier: Like Meteor but Meatier Unpopular Opinions Antony: Saas pricing suckSSO tech shame site Shawn: We will want Svelte to stop growing at some point Bikeshed podcast https://insights.stackoverflow.com/survey/2021#section-most-loved-dreaded-and-wanted-web-frameworks https://insights.stackoverflow.com/survey/2021#most-popular-technologies-webframe Jake: Filing bug reports and getting asked "Why did you do it like this?? Picks Antony: Gohire.io Shawn: SupabaseSpotify Native client: Psst Kevin: Muji Linen clothes Jake: Clickup.comhttps://codestory.co/podcast/e3-alex-yurkowski-clickup/ Willow: Grid LayoutIt Complete CSS Grid Grid Critters
Today we talk with Grygrflzr about his journey to becoming a maintainer and his views on React, Vite and a host of other things. Enjoy!Notes: Svelte is the most loved framework Scott Tolinski: 5 Things I like about Svelte Scott Tolinski: 5 More things I like about Svelte Dev environment issue Unpopular Opinions:Shawn: Social media > SEO > Social media Empty States Picks Antony: Swoon Editions Furniture Kevin: Warp Terminal Shawn: Spider Man Miles Morales Martin: Picking monitors is hard.
We welcome Tan Li Hau back for a second time. This time we talk about his YouTube channel where he has been creating some stellar content!Show notes: Micro Frontends Webpack 5 Module Federation Li Hau's YouTube channel How to call functions from the parent Svelte Stores Twitter profile Constants in markup draft PR (RFC) Picks: Antony: Peloton Treadmill Shawn: Chef (2014) Kevin: Beerrunners concept Li Hau: Svelte Question Time Playlist
Scott Tolinski is back! He's been a busy bee rebuilding LevelUpTuts using SvelteKit. We get all the juicy details!Notes svelte-toy Rich Harris's Svelte Metaphysics talk link https://www.swyx.io/svelte-metaphysics/ svelte-toast Remix framework Course: Building Svelte Components Course: SvelteKit Course: Animating Svelte Unpopular Opinions Antony: Email sucks Shawn: All JavaScript functions should only be allowed to take one argument. Picks Shawn: Write Less, Do More Antony: Kilner Jars Kevin: THE VACCINE! Scott: A Death in Crypto Land
Support the show - become a patron!Brittney has an unusual background and an interesting story! We ask her about mentoring, teaching and how she got WebDev. Enjoy! Brittney also has her own podcast called Purrfect.dev.Music:Intro - Braden Wiggins a.k.a. Fractal (braden@fractal-hq.com)Notes: codingcat.dev Purrfect.dev freeCodeCamp Zero to Mastery The Console Logs Discord Communities Coding Cat LevelUpTuts Learn Build Teach SpaceJelly PartyCorgi Zero to Mastery (you need to pay for a course) Unpopular Opinion: Brittney: I'm done with React Antony: Chai is not a good a good assertion library. Use @hapi/code instead! Picks: Shawn: Superhuman Kev: Chai tea (especially latte!) Brittney: Black Monday (and Kev's tip The Big Short) and Polywork
Support the show - become a patron!We sit down with Nick to talk about Elder.js - an insanely fast static site generator built on-top of Svelte with support for partial hydration.Music:Intro - Braden Wiggins a.k.a. Fractal (braden@fractal-hq.com)Notes:FindEnergyUnpopular Opinion: Shawn: Svelte IDEEarlier episode with Mike from GitPod Nick: Hydration should be included by default Picks: Antony: Not today! Shawn: Learn CSS from Google Kev: WebAuthn Nick: PostGraphile
Support the show - become a patron!We're back after a short break with a new episode. We talk about what's new in Svelte and what we've been up to! Oh. And this is sort-of our 1 Year anniversary! 🥳Music:Intro - Braden Wiggins a.k.a. Fractal (braden@fractal-hq.com)Notes: Scott Tolinski's LevelUp Tuts SvelteKit conversion livestream New CSS Custom Property Feature (Kev's REPL showcase) New CSS selector feature in the compiler New Style directive hopefully coming soon (Read the RFC) What's new in Svelte (Newsletter) Stricter body types, etags for binary responses Remove getContext in favour of request.locals Redhatters Svelte Devtools New SvelteKit Package feature Svelte Knobby SvelteKit Breakthrough of the year nominee Unpopular Opinion: Antony: Vegan equivalents are actually better than the real thing in a lot of cases Shawn: VSCode Sidebar on the right gangBonus VSCode tip Kev: SublimeText 4 gang Picks: Antony picks no-water cleaning supplies again; Homethings. (Cleancult, Blueland) Shawn: Svelte Form Libraries Kev: Swedish Summer & Gelato. Top Gelato parlor in Stockholm: Snö.
Mike Nikles (Twitter) from GitPod joins us to talk about the journey they took from Gatsby, to Sapper and finally to SvelteKit. We talk about the ups and downs.Notes:- GitPod's website built in Svelte (GitHub)Picks:- Kevin: Chocolate Balls- Antony: QR Scanners- Shawn: Josh Nussbaum- Mike: TimeZone.ioIntro music by Braden Wiggins a.k.a. Fractal (braden@fractal-hq.com)Transcription:Coming soon.
Sponsors Filevine: Client, workflow and document management - the Work Operating System for Professionals. GitPod: Remove all friction from the developer experience to be always ready-to-code and make software engineering more collaborative, joyful, and secure. Budibase: Build internal tools on your own infrastructure in minutes. This is the Q&A that followed the Rich's SvelteKit update from Svelte Summit yesterday. If you didn't catch that, you can find it here.In this Q&A we talk to Rich and ask him SvelteKit, enjoy!PS. Sorry about the audio, it's ripped from YouTube and unfortunately not using our regular recording method. We hope you'll like it anyway!Transcription:Not this time, sorry!
Svelte Summit is happening on Sunday! Don't miss it. We start at 2PM London time (the FAQ has more time zones listed).This episode is the first to include our new intro music and we're really happy with it. It's made by Braden Wiggins (braden@fractal-hq.com). He usually frequents the Routify and Svelte Discords, you've probably seen him around! :)Picks: Kevin: NeuraLink MindPong Monkey Antony: KUCOIN (referral link!) Shawn: Emptystates Transcription:Coming soon.
Note: This was recorded on February 4th, some things may not be up to date. Sponsors: Support Svelte Radio by leaving a review on iTunes and/or visit our support page.Description:Parker shows us ListenAddict. We talk a bit about building stuff using Svelte and what's next. ListenAddict Why Tailwind Podcasting Cheatsheet Unpopular opinions:- Antony: The {#await} syntax should be removed from Svelte- Shawn: ESM was a bad ideaPicks: Kevin: Bitcoin Lightning Network Antony: Nogent Super Kim Can Opener Shawn: Three.js Journey Parker: YouTube and Espresso Machine Transcription:Kevin Åberg Kultalahti  0:00  Hello, everyone. Welcome to another episode of Svelte radio. Today we have yet another guest with us to talk about Svelte. But first introductions. I'm Kevin, I run a site called Svelte school. And I'm heavily involved in the Svelte community in general. And I'm just a Svelte evangelist, I guess.Antony  0:20  I'm Antony, I'm the CTF Beyonk. And I'm also Svelte maintainerShawn  0:26  I work as a senior developer advocate at AWS, this is probably my last time in that role. And I'll have a new role coming up. Next time we do this recording, where hopefully, I think, if I'm not mistaken, I'll be working on a production Svelte project. So more needs to come hidingKevin Åberg Kultalahti  0:46  ideas. And our guest today is David Parker. He's a software developer, I guess. Maybe you can introduce yourself. Yeah,David Parker  0:58  I'm David Parker. I normally go by Parker, and I am CTO at Hobby DB for my day job where I do Angular, unfortunately. But I spend a lot of my free time doing Svelte and I run my site called listen addict calm, which we'll talk about a little bit later. And I'm making another project after that. So,Antony  1:19  so I'm just gonna, I'm just gonna point out here that that title developer, you know, with a guy who has two side projects, we should looking pretty decent. I'm going to say entrepreneur. It's a good title. I would like that.Kevin Åberg Kultalahti  1:36  All right, so before we get into the meat of the discussion, all, all are written sponsors, bots. So the first sponsors bought is actually not a sponsor, it's just some news about that. You can now support Svelte radio directly, so you'll get access to video versions of the podcast or you'll be able to listen to the episodes a couple of days early, even unedited, sometimes, so head on over to Svelte radio.com slash support, and you can read more about it there. Oh, and secondly, if you like the podcast, it would be awesome if you could leave a review on iTunes and subscribe. Alright, and that's it for the Yay, answers.Shawn  2:24  I wish you I don't know. It's like, it's a great way to support independent radio, I guess. And this is this is kind of what we're doing.Kevin Åberg Kultalahti  2:32  Yeah. Yeah. It's it's like, yeah, it's easier than then hunting like sponsor, like real sponsors, I suppose. But IAntony  2:43  guess you know, after a while, they'll sort of just appear out of the woodwork really. So yeah, it's, but it's nice, I think I think being able to pay for something that has value, you know. And then having that sort of inside info, or the Sneak Peek is really, really valuable. So I think it's good. I think I like I like it.Kevin Åberg Kultalahti  3:00  We'll see how it goes. Do you run a Patreon as well? No. So I've actually looked at a couple of different solutions for this. And Patreon was one of them. But there's, there's like a lot of not being in the US and having to handle like VAT is a real hassle. patron does it for you, but the like the fees they take are ginormous. So I found some other some other ways to solve this. I'm think I'm currently going to use paddle. It's it's like a handle digital products and software. Pretty much I drawAntony  3:41  the line, I draw the line that only fans I have a body for radio.David Parker  3:51  I have a comment. I don't think it's appropriate for this audience. So I'll hold my tongue.Kevin Åberg Kultalahti  3:59  Alright, so so let's let's get into it. So so you're you said you were a an Angular developer, on your on your day job. So how did you end up doing doing Angular?David Parker  4:11  So I'll just give you a super, super fast, short version of my history real quick. I was in the military in the United States, from 2000 to 2006, as a Java developer, so I basically sat in front of a computer and coded for the military was very boring. But that really got me didn't even know you could, you could do that. You know, there's a lot of systems that you have to keep track of like tracking people, personnel, training, all all the things but not very exciting. I don't like the corporate structure, but I got out, turned around and became a contractor work for them for three more years making three times as much money because you know, when you're and you don't make any money, but that kind of, as Anthony alluded to before, kind of pushed me in that entrepreneurial direction during the big corporate type thing. So then I went back to school grad school because I had free money for from the military, and did entrepreneurship, and computer science. There, I met a co worker or a co founder of my previous company called devise. We were a rails and AngularJS. And at the time, this was a little bit before react and all the, you know, jQuery is kind of just leaving popularity, even though it's still popular backbone was kind of plus or minus, I didn't really care for it at the time. So we chose to start our company with AngularJS. And that's kind of where I got the start in Angular, we never really upgraded and that company to, you know, angular 2.0. And thus, for what it's now and now is. And then moving on from there, that company was sold, and spent some other time doing react, and played around with view a little bit, played around with Django. And then I joined Hobie dB, and they were already using Angular. So that's how I came to be my current role. Cool. SoKevin Åberg Kultalahti  6:01  so so what is hobby DB is like an e commerce. Yeah,David Parker  6:07  it's a it's a e commerce site where people can buy and sell anything that's collectible. So the little pop Funko dolls. If you're familiar with rose, I don't know how popular they are outside of the United States. They seem to be kind of trendy. And I'm, I guess we are a marketplace for those is the the main thing and Hot Wheels, the little cars. Those are our two main.Antony  6:30  So this. This is called hobbie dB. That's, that's that's an interesting name. Because it I really thought it was like a system for development. Yeah, I really, I thought it was like a, you know, the name the name did not draw a picture of what the what the product is. It's interesting.David Parker  6:47  Yeah. Yeah. They were around for about three years before I joined the team. And then I took over a CTO there and the previous VP of Engineering and CTO was taking off. So I'm still in a Fingers crossed, do we? Will we ever have the time to upgrade off of their stack to you know, Svelte or something different? But it seems like we're always chasing? Yeah.Antony  7:13  So I guess it's all for the push, isn't it? Yeah. And then I think do you think people who were sorry, do you think people who work with you've got an appetite for something outside of Angular? Or do you think they are kind of pretty happy with Angular, and the dev team is definitely excited about other things.David Parker  7:32  It's kind of hard not to get them hyped off. They're very into next j. s, which is the React. super popular one, which is fair, most of our development team is in South America. And you know, right, making sure that their skills are up to date. And in the popular realm.Antony  7:51  That's fair enough. Yeah. I mean, you can't blame us for that really Kenya's face.David Parker  7:55  But I have turned them on to some Svelte things. So we're trying to get little internal tools here and there used toAntony  8:03  so it's funny how, yeah, all you need is like a little a little way in. And then suddenly, people kind of prefer writing this. And then suddenly, everything becomes the spell and what you thought was, right, that's happened in a couple of places I've worked out and it's quite a nice feeling. doesn't always work doesn't always work at all. I mean, there was a place I worked out, which is Redux and sagas and react. And I tried, I started writing login screens and stuff for things in Svelte, but it didn't really catch on.Kevin Åberg Kultalahti  8:32  Yeah, I mean, sometimes people are stuck in their ways.Shawn  8:36  I think it's a particular challenge to CTOs. Because at some point, your stack will be out of date. And then there's always a question of like, when do you rewrite to keep developers happy, while at the same time, like, rewriting just for the sake of rewriting has zero business value? And, like, how do you make that decision? So I don't I haven't come across it. Yeah.Antony  8:55  I think one of the roles of CTO is that you don't, you don't make a decision. Right. You, you, you offer up alternatives you advise, you know, you provide benefits and widen landscape, but you don't necessarily push your team in a direction. Because it really, you know, in the end, it's up to the team who actually doing especially as a CTO of a larger company, you are not developing yourself, you're kind of more providing a background for people who are developing in your team.Kevin Åberg Kultalahti  9:25  Right? So So you've, you've found Svelte and you've fallen in love with you know,David Parker  9:34  I  really have it's kind of funky because I when I played with view, and when I did a lot of react, a lot of reactor and contract time between you vias and Javi dB. I did I did that whole Redux saga thing as well. Went down that rabbit hole and and I've played with you know, hooks and you know, newer things too, but still sometime I think it was last year, really early on. So pre COVID days I was watching rich talk about something and I don't remember what and I was just like, that looks really cool. And then when COVID started, I was stuck at home a lot more. So I was like, well, I want to make this product. And I really wanted to make it for myself. And you know what I'm going to try to do you know sapper with it. And so the nice thing is that I really, really like probably more than anything almost, is the fact that you can literally go through the entire tutorial, and all the documentation for Svelte in four hours. You know, you can go through the entire thing, and, and you've done at least a little bit of everything, and no, you don't know it all. But you've tried it all. And you can see how it works. That to me was the biggest selling point because I went through the whole documentation. And I was like, pre sold because I didn't have to take a week to try to learn everything.Antony  10:54  Yeah, that's the same reason I'm here, right? That's exact same reason the tutorial, I'm very impatient. I you know, I get distracted easily. Whatever you want to call it, ADHD, you name it. But basically, something needs to be quite terse and quick, and you know, learn it, and it's and it's perfect for Svelte, it's just like that. And I guess is a good answer. People who, who raise bug requests saying why can't we add this API and this API and this API is because that would that that length would grow the length of time?Kevin Åberg Kultalahti  11:20  So what did you first build in Svelte? So is listening to first kind of thing that youDavid Parker  11:25  Yes, it is, actually, I kind of just went, you know, all the way down. So, quick breakdown of what listen addict is just for the listeners is, it's basically a place where you can go subscribe to a person, kind of like you'd subscribe to a podcast. So if you really liked Kevin, specifically, and he was on other podcasts, you'd subscribe to him. And you get notified every time he's on any different show, or Antony or Shawn or whatever. So that's, versus just being subscribed to you know, Svelte radios by itself, you, you might subscribe to that to somewhere else, but on my site, he would subscribe to a specific person. And yeah, so I wanted to do so. And I figured might as well and this is a product for myself, I built it for me. You know, if I really MVP, I would just build the back end and email myself when somebody who knew was on. But I was I wanted to build something fun in the front end. And it just kind of grew and grew and grew and became a little bit more than my MVP should have been. I had a lot. I had a lot of fun with you knows, you know, cell phones, like getting into animations. And I'm not the best with animations and these kinds of things. And it made it really easy to do really silly things that I kept on pushing my MVP back for.Kevin Åberg Kultalahti  12:43  So kind of a double edged sword there. Yeah, to get it out there. But then you get stuck in all these nice features. Yeah,Antony  12:51  exactly. But it's the guest best kind of product, right? You built it for yourself. That's just essential. That's absolutely how to do it.David Parker  12:56  I don't think I could build something that is just strictly market driven. I have to be able to control myself. My The next product I'm building is also for myself. So yeah.Kevin Åberg Kultalahti  13:07  So so. So is it just swept and separate all through your day? Are you using some other serviceDavid Parker  13:14  on the back end, the technical back end is all rails. It was just really easy for me to build an API for that. I'm a big fan of flutter. I'm not sure if you guys are familiar with flutter. So I've played a lot with that for mobile apps. And it's, it's brings a lot of joy, kind of like Svelte does for me for the web. So I wanted to build my back end. And what I am super familiar with is that I can go fast. So all the backend is on rails. I would love to eventually learn go Lang or something else and replace it, but it's not as important. And then the front end is just all Svelte and sapper.Shawn  13:51  And to deal with any challenges, integrating Svelte with rails, I think you have to use something like a web Packer with rails, oh, no real estate, well,David Parker  13:59  there's this app, I decided to make it separate applications entirely. So the rails back end is purely an API. So you hit a web request, and it returns some JSON. And that's it. That way, I could keep it completely separate for the flutter app that I pinched, eventually plan on doing. And that's why I didn't want to be completely separate. But yes, you're correct in that if you were to do it from scratch in one application, so it's all rails with sapper Wytheville, or whatever it would use web Packer or something like that.Shawn  14:27  I wonder if there's like a rule of thumb or complicated. Yes, it's,David Parker  14:30  it's way more it's way more complicated. I love having it separate. It makes it so fast.Shawn  14:35  Yeah. API's are like the native, you know, foreign function interface of the web. It's so interesting, talking about flutter, right? Like, I've messed around a little bit with it. flutter has a web equivalent. Why not build the whole thing in flutter? or build the whole thing is Svelte and Svelte native.David Parker  14:53  So I'll answer that two ways. One when I was really getting into flutter two years ago, When I was really getting into flutter, they flutter web was not ready. And from what I've read, it still might be ready question mark, in that certain things you can't let you couldn't even like copy and paste, text and things like that, because of the way flutter works. So flutter web was just not ready when I looked at it. So flutter web does.Kevin Åberg Kultalahti  15:19  Does that work the same way that flutter works on mobile? Like it has its own canvas and renders stuffDavid Parker  15:26  on on it at the time? It did. I'm not sure now, because I haven't looked since To be honest, right? years ago. Yeah. And then same thing with Svelte native. I honestly haven't even tried it yet.Kevin Åberg Kultalahti  15:36  Yeah. So I so I've actually, so there's some some news for for an upcoming episode. I've talked to a guy who's made some Svelte native application. And he's going to be found one episodes to talk about it with us. So that's, that's nice. You're interested?David Parker  15:57  I'll definitely listen to that.Unknown Speaker  15:59  Yeah, yeah.Shawn  16:01  So it is, it is one of those things, I actually spend a lot of time kind of advocating for this sort of separation between front end and back end. So you're, you have the choice of technologies, when you're building different clients. So you're kind of living that right now.David Parker  16:15  I definitely agree with that. And I hate the whole, you know, I have a hammer and everything is a nail. And I feel like I find that so much. And especially in JavaScript land. People want to apply it to everything. And I'm not sure if you are familiar with Jeff Atwood, but he has a atwoods law, which anything that's written in code will eventually be written in JavaScript or something along those lines. And he he published that like 15 years ago, or something like that.Kevin Åberg Kultalahti  16:42  Sounds familiar.David Parker  16:44  So I always think, you know, why not use the best tool for the job. And that's why I didn't use just express with sapper to build my API. It's why I didn't use rails with web Packer. I think that rails as an API, I can get things done incredibly fast front end, just sticking it with sapper and Svelte and tailwind, I'm doing things way faster than I would try to implant rails with it. And and when I played with flutter a couple years ago, it was fast to implement things. And I can't say that I won't check out Svelte native, because I'm definitely excited about new technologies. But I don't want to do the hammer thing. make everything a nail? Yeah. Yeah.Kevin Åberg Kultalahti  17:26  Fair enough. Make sense? Okay. So you've also got this, this other thing that you you're working on, right? I saw I saw a comment on Hacker News. So this is actually how I found you, I think, you're you're doing something called us producer, sniper, you Yeah,David Parker  17:43  use. So producer.com, of course, is taken, because that's quite expensive run by somebody.Antony  17:49  So I bought the domain.David Parker  17:51  And so, you know, I'm calling a producer, this domain is used producer, like, I'm going to use this. And that's going to be a product, leaning towards YouTubers, but then also eventually podcasters and other content creators, where it's a project management tool, basically. So you know, Kevin, I'll probably reach out to you at some point after this, you know, a few months down the line when I have an MVP and our need for better beta users, but you're trying to create episodic content, where you're doing the same thing over and over and over again, and, you know, you have your job, and Antony has his job, and everybody has their jobs, right. And so you can have a team corporated. And it's kind of automatic. So you do your thing. And then, you know, Shawn gets notified, it's his turn to do his thing he does it, he could click the play button, and it automatically tweets for you. And so then you don't have to go into Twitter and tweet because that's already finished as well. And then you go back and you check your, you know, you click whatever on YouTube and then basically, an all encompassing project management tool in I've found there's quite a few different tools based off the interviews I've done with mostly podcasters at this point, and a few YouTubers, but on the YouTube side of it, especially there's less team coordinated things. It seems like a lot more podcasters are using more generic pet tools like notion versus something that's specifically to podcasters butKevin Åberg Kultalahti  19:20  yeah, yeah, that's that's what what we're using now notion. Antony made a template This wasAntony  19:30  my CEO is obsessed with with notion so he is because the show was cool like he's basically using it like Excel. He said, We everything's linked to everything else, which is kind of like nice. He does have benefits to that sounds scary. But I just get frustrated with the you. Yeah, no, it is scary as well. But I get frustrated with the UI and it's definitely like, it's that tool is the hammer you talked about before. Is it Parkour is the hammer. It does everything. everything looks like a nail. It's good, but it's also not good. And, you know, I kind of missed Trello I yearn for my Trello days.David Parker  20:04  Yeah, I've used notion some and I agree. It's, it's a very, very, very powerful hammer. And it's fun, but then it can get bogged down and it can get slow. And you know, there's different issues with it, too. But I want to build it, I want to build a tool that's specific to the episodic content creators.Kevin Åberg Kultalahti  20:22  It makes sense, Shawn, how do you cuz you're, you have another podcast that you you do with Reynold cannot, right. Yeah. AndShawn  20:31  I do three.Kevin Åberg Kultalahti  20:34  So So how do you organise your your podcasts,Shawn  20:39  were random, I have a Google Doc, where we just put ideas of episodes. And it's, it's important that it's short. So we try to plan the content, but then we don't try to plan it too much. Because then it becomes very scripted and artificial. So we just try to make sure that we logged on our ideas and then organised like the main points you want to hit, I think shownotes is a is an important thing to get right, at least for me when I listen to podcasts. So having them prepped, and then, you know, make it like an easy copy paste job, at the end is pretty important to me. And that's about it. I mean, I do think I do think that supporting creative creative workflows for episodic content is important. But I think my pain point is actually more around like once I've done something once. I'll like tweet it out once, but then really not that many people will see it the first time like I actually need to break it up into chunks and share it again. And again, and again. So to really spread it out over time and maximise the value of the the the time they put in. So I've been looking at some tools to do that to do audio and video clips.Kevin Åberg Kultalahti  21:42  Oh, like like short, shorter ones? Yeah, I even had to take snippets.Shawn  21:48  30 seconds. I said, even like 10 seconds snippets of like, justKevin Åberg Kultalahti  21:51  actually thought about that today. Yeah, doing Instagram, short, short, like stories or whatever. I don't know if there are many.Shawn  22:00  Yeah, I've a little repo of this, that that helps. Where I'm keeping notes on tools like specs, D script, audio mass, and then otter.ai, headliner dot app, wave, co tapes.com. These are all tools in this space that I'm exploring,David Parker  22:17  I will definitely check out a lot of those too. Yeah, I want to build things like that. Or, you know, the episode may be published, but the job isn't done for it yet. You still have to do follow one work, or you know, you want to tweet out a week later, two weeks later, a month later, three months later, to be like, hey, check out this episode that I wrote, and having that audibly, as much as possible, automated. You know, obviously, sometimes, if you want to do snippets that you need to edit in, that might not be so automated, but having the tweet ready or having the, you know, Reddit post or whatever, I can automate and be as easy as possible.Shawn  22:54  Would that be a psychic job for you? In real? Yes, that,David Parker  22:57  yeah. It would just be queued up God, that would happen eventually.Shawn  23:02  I like these, I like these things. I like these automation tools as a side project ideas, because it's kind of like fire and forget. And the the value is not tied to your time invested in it. And so I, I am looking to get better at these things. I'm not using psychic by using some other scheduling stuff.Kevin Åberg Kultalahti  23:20  Yeah. So So what is SidekickDavid Parker  23:22  Sidekick is a Redis based cue system for Ruby. And since Rails is Ruby, it's just easy to throw a sidekick on there and say, Hey, here's a job that's going to happen once a day or incorporate into a cron task. And then it'll just run in a background worker somewhere. So I also run a YouTube channel, which is this is the fulfil my own, you know, problem kind of thing. I've paused on it at about two years ago, two and a half years ago, I think, no, because I had a daughter, who's taken up most of my time, but now she's getting at an age where she is largely self sufficient for a lot of things anyway. So I'm getting back into to shake. Have fun for yourself, right? Yeah, totally. She's, she's fine. So my intent with us producer is, you know, I'm revisiting my old workflows for my YouTube channel and trying to figure out what was my personal pain points. But now that the, you know, the content creator economy is growing, as has grown so much, even since I've stepped away for a couple years, trying to get not just my own feedback, but get feedback from other creators.Shawn  24:28  Yeah, I think this is a pretty good idea.Antony  24:31  There's several thatDavid Parker  24:32  work in different niches that I'm trying to blend. And I think that's the thing. So I've played a lot around with the YouTube API's, for example, and a lot of the stuff that I have enjoyed doing. This is not episode of content, part of my app, but the other part is just, you know, analysis of your content. And I've done a lot of research against, you know, my competitors, so to speak, you just using the YouTube API, and I love checking out that kind of stuff. So I looked at who did Those that already in the space. And so there's two buddy and vid IQ are the big two. But they're just Chrome extensions, like super big little Chrome extensions that modify the YouTube channel, just the site itself. And so they're not like separate applications for managing, you know, the content itself there. They just allow you to automatically fill in, you know, tag list and other things for you.Antony  25:28  I think, I think, yeah, it's difficult. It's difficult to build a tool, which is generic enough that everyone can use it, but also simple enough, you know, flexibility is complexity. And before you know where you are, you end up with no, right? This is it all back resolve a cyclic and goes back to the same thing that if you make it too good, you're going to end up with something that really doesn't suit anyone. So I think I don't know. I don't envy your task there in terms of in terms of merging all this weird niches.David Parker  26:00  Yeah, that's why I really want to focus mostly on youtubers to begin with, and then make it well enough for the the episodic portion for podcasters. There's podcasting. I feel like has a lot more competition in terms of products that already exist.Kevin Åberg Kultalahti  26:18  Yeah. So I assume you're gonna build this in Svelte and Falcon?David Parker  26:24  Yeah, I'm gonna need to do Svelte kit. I keep on waiting for it to get published. So the landing page for the officer? Yes. Is a is done in just sapper, because it was just easy for me to export it. As you know, it's a single landing page with an email form. Pretty simple. I want to jump back to listen real quick. cuz I've heard him too. I didn't get to mention this before. So talking about MVP, and like exciting, different things and awaiting. This is really cheesy. A few guys can have your computers up. But if you check out, listen, on the desktop, not on your phone. I have to when I used to love tailwind and we could talk about that if you want or not. At the top, I have dark mode and light mode. And then if next to it, I have my little palette builder. So if you click that, it should do a nice little animation. I wish I just had so much fun with that. And so that was fun and experience that is fine. It's super satisfying. And it was so easy to do in Svelte and I showed my wife and she's like, so when does this MVP launch?Kevin Åberg Kultalahti  27:32  And I'm like, well,Unknown Speaker  27:33  well Svelte made me do this. Sorry.Antony  27:36  Yeah, right.David Parker  27:38  So wait, so So you did well in in tailwind? That's, that's a little bit hard to do. No, is super, super easy. And it's ridiculous. My CSS is ridiculously small. I know. Some people just hate tailwind and and we can go into that if you want. But it for me, it was easy. I think each of my files for my colours was 1.3 kilobytes. And then my total for the rest of the CSS was like three something or four something. And that's per colour. So 1.3 kilobytes per colour. And it gives me light mode and dark mode.Kevin Åberg Kultalahti  28:14  So it's pretty nice.David Parker  28:16  And then you know, and the other thing is, of course, because you guys don't see this, I have built myself a moderator dashboard and an admin dashboard for listen addict, with the intent that eventually I can pay some Mechanical Turk people or something to help moderate new content on listen addict. And I have all the keyboard shortcuts and all these other things built in. Because he just made that so freaking easy. I was ridiculous. I just so when I go and add new content on there, it takes me minutes, because I'm just using keyboard shortcuts and all these other things that I've made that were so fast to do.Kevin Åberg Kultalahti  28:53  So are you are you adding the content manually done? Yeah. So be it does the work.David Parker  29:00  Because not every podcast is interview based. And I want it to be hyper focused on interviews. So I want to say that 90% of my content is interview based podcasts. And every given podcast, not generally, generally not 100% of the episodes are interviews, there may be something else here or there. So that's kind of the gist of it is I am currently manually curating and trying to find new content. And it literally, it was up front. And it is still to find the original source. But once I find, you know, the podcast and RSS feed, it's fairly simple. I have a very, very simple mg tagging library that I use plus a little bit of heuristics and algorithms that I've written to extract out people's names automatically. So I don't have to go in and add people. it'll pick up all right As long as they're in the title of the episode, I am at like a 95% hit rate. And the other 5% is manual intervention. So that's what I would need moderators for.Antony  30:12  I think manual curation is a really good way to go. You know, we do a lot of things manually as well. And at some point, you figure out what works, what doesn't work, because you've done it manually, and you've been involved there. And then you can automate those tasks, rather than trying to automate it up front. And then you know, do something that doesn't really work and then start tweaking code and bugs and stuff. doing it manually is a very good a very valid method, in fact, of MVP style stuff. So yeah, definitely has a great way to get closer to yourDavid Parker  30:39  customers. And that's that's sort of the approach I've taken, because I basically built out a few tools, tools for myself as a moderator. But now it's at a point where a lot of that can be passed on to other people to do it manually, for cheap, if I can, or taking some of that and automating it slowly. My the hard part, of course, as you said before, with the entrepreneurship thing, and multiple products is now 80% of my code time is going towards these producer, listen, addict more just for fun for me. And it's at a very stable position at this point. I may or may not try to monetize it, I don't think it's anything people will pay for. But I could throw ads on it, I guess it's not that important to me, it's very cheap to run. So I would much rather spend my time on using it on us producers. So that way I can get that launched and actually try to make money in quit my job.Shawn  31:33  So So I have a suggestion on how to monetize this. And this is something that so I used to be an equity analyst and a hedge fund. And my job would be to follow the CEO and CTOs and whatever of the public companies that I'm invested in. But it's hard to keep track of the public interviews that they do, and increasingly more and more than we're doing podcasts. So basically, I would want to give you a list of stock tickers to look up like their their C suite, essentially. And if any of them do any podcasts, I want to know about it. I want a transcript. And yeah, I want to email to me. So like, if you want like a b2b version of that, where people will pay for it. Probably that's, that will be a path.Kevin Åberg Kultalahti  32:17  Oh, interesting. IDavid Parker  32:17  haven't even thought of that. Everything I'm thinking is, you know, consumer based stuff. So that's very interesting.Shawn  32:23  Oh, yeah. b2b is where the money is you Everyone knows that. Right?Antony  32:26  Yeah, absolutely. Absolutely.Shawn  32:28  So So and actually, I have a further hypothesis, which is, if you see someone, if you see like a CEO, doing like a podcast for, you know, their company's doing well, so you should just buy the stock. Like, like, is that now Michelle? Michelle zetlin is doing every podcast. So you know, CloudFlare is just crushing it. Like, they're, they're releasing their, their quarter is, in a couple of days. I think it's obvious, like no one if a company's doing poorly, you're you're not doing podcasts. Right. So this is that, like now,David Parker  33:00  with so many podcasts though? Or two people?Shawn  33:04  I mean, I mean, it's obviously it's it's a little bit tongue in cheek and you should not take that as investment advice. But there's a there's a bit of a theory like Jeff Lawson,David Parker  33:15  for the big public company toShawn  33:16  Twilio. Oh, shit. Jeff Lawson, CEO of Twilio, you know, wrote monster book and now he's like doing a book tour. Twilio is obviously doing well. You know, like, there's a there's a slight correlation, I guess. I don't know. Anyway, the point is to make it easier for stock analysts to keep up to date on their companies. So right now you're focused on you don't have a theme like there's like celebrities, there's like some people I don't know what the theme of the people is, but if you could focus on on a monetizable niche of speakers then that might work.Unknown Speaker  33:48  Okay, cool.David Parker  33:50  Yet to let you know, the theme is basically software engineers, business people, entrepreneurs, and a little bit of celebrities mostly for SEO juice. But those are the people I generally want to know who are entrepreneurs and software people are generally who I want to I personally want to get notified of certain people when they have a new podcast and like Adam within tailender rich you know, sell things it's like okay, I want to hearKevin Åberg Kultalahti  34:18  but theDavid Parker  34:21  to get high on Google, I want to pump it up with some celebrities.Antony  34:25  Is this riding high on Google? ThisKevin Åberg Kultalahti  34:27  reminds me of like saidAntony  34:28  You said you burns weekend.Kevin Åberg Kultalahti  34:32  I listened to an episode of what's what's the podcast called? It's like tiny seed tails or something like that. And there was this guest who had made like a happy birthday site for like birthdays birthday site for celebrities, where people could look up celebrities. And it was doing like massively well and scoring like, top of Google all All the time, just for. That's crazy. Yeah. It surprised why it surprised me. But it makes sense, though. And if you think about it,Antony  35:13  people so I'm always a tech, the tech partner in startups, right? I'm never the business partner because I don't want anything else wants. And I can't think of things that people want.David Parker  35:25  I was the same way before. And I kind of that's why I went to school, I ended up getting a double masters, because I wanted to learn more on the entrepreneurship side, as well as computer science because I just I can live in tech all day and never do any marketing. And then no one uses my stuff. But I wanted to try to get on that other side a little bit more.Antony  35:44  Yeah. It's a good Yeah, I mean, it's definitely a valuable skill. Absolutely valuable skill.Kevin Åberg Kultalahti  35:48  It is. It is a lot of fun as well, I feel. So with Svelte.David Parker  35:54  I'm leaving you guys, because you guys are a little bit more. I'm on the discord channel. It's so hard to, for me to plug into communities. I think I'm mostly active on indie hackers, and a little bit on Hacker News. But I'm in 10 different discord channels. I'm in 10 different slack channels. How do you guys choose your niche? I just curious, this is me interviewing you. But just in terms of getting plugged in because I would I would love to eventually contribute to you know, actually contribute to Svelte itself as a contributor, you know, on the development side,Kevin Åberg Kultalahti  36:29  or, youDavid Parker  36:30  know, same with like flutter or whatever those would probably be the two that I'd prefer to be able to contribute to if I could ever take the time to do that and give back to the community beyond just building products and be you know, raising developer awareness about these technologies. How do you guys plug in or do you just, you're all in on Svelte and that's easy just to focus there.Kevin Åberg Kultalahti  36:50  I think it's hard. Like, like the like the Svelte discord is probably the only discord that I am all in on if that makes sense. I'm in a couple of others as well like the CSS discord and like. Like some cryptocurrency ones as well. But yeah, it's hard.Antony  37:15  Yeah, I'm not too different, like the Svelte discord is where I spend probably 90% of my like eyesight, I've got a discord my company as well. And that gets tempted my friend Jim godsey. It's a lot less active, right? Isn't he 70s is in there and, and Svelte was 2000, something as to how I keep sort of aware of everything, it kind of comes up. When a startup gets to a certain size that you have to learn about other things, because you really have to pick the optimal solution is gone from building a hobby project in Svelte only and only focusing on Svelte to. Now I build it in Svelte because it is the best of everything I need. But I do need to be aware of how react tackles problems, how view tackles problems, how all these different builders like Webpack and roll them to tackle problems. So it will be mostly Twitter, I would say that, you know, Twitter as my, in terms of social media is purely tech, I don't follow many people outside of tech. And I don't really see many tweets outside of tech, which is quite nice. I really value Twitter for that alone, I get all the updates. I get, you know, crazy stuff from people who are so far from what I do every day, but still in the tech space. That's that's kind of why I like Twitter, I guess. But yeah, it is very difficult to keep track of everything. And you really can't, I think you have to be a generalising specialist which kind of applies to many aspects of work and things but just keep a focus but always be able to be distracted. You have other things in your periphery, I suppose that you can, you can see. But you have to focus nodes become good at something, I think, and you have to kind of specialise in that thing.Kevin Åberg Kultalahti  39:00  Yeah. It's hard. Definitely. Like I think for me, Twitter is also the way I learned about stuff. And maybe I mean, Hacker News as well. It's good morning. IAntony  39:13  read that. I probably should.Kevin Åberg Kultalahti  39:15  Yeah, hacker Hacker News is awesome. I love Hacker News.David Parker  39:19  It's about 80% of my attention Hacker News does.Kevin Åberg Kultalahti  39:22  Wow. Yeah. It's really nice.Antony  39:25  So you could you either get a balanced opinion there or you get sort of what people call it really bad names, right? They call it trash and stuff has kind of like a split mindsets on what hacking is actually is or what it what it brings. Yeah.Kevin Åberg Kultalahti  39:39  You'll have to be critical. Like with everything right?Antony  39:43  Yeah, yeah, especially. What about you, Shawn? Is your aren't for everything.Shawn  39:51  I dabble probably too much. I actually I run my own discord for my book. So, you know, I spend a lot of time in their QA curating Oh, yeah, yeah, I spent a lot of time curating, I guess information and continuing updates for my community members. I'm a little bit into this fault discord as well. I guess I do a lot of my learning through podcasts. So I listened to a lot of what's going on and try to keep tabs. So I'm an ideal customer for, for this genetic, because I am. But I'm also trying to, I guess, you know, I think there's, there's there's no end to how much you can consume. And you need to be more intentional about what you consume. And the best stuff you should try to consume repeatedly instead of, you know, always looking for the new thing. And I think, to me that the Lindy effect is something I think a lot about, like things that have been around things that have been relevant for a while will likely continue to be relevant. And you're the sum total of your knowledge is basically the amount of still relevant things that are, you know, in your head. So I've been I've been building this thing that called Lindy library, where it's basically things that have been things that are three years older that are still relevant today, which I think will likely be more relevant tomorrow. And I think I like that versus a lot of the ephemeral content that it's being produced today.David Parker  41:15  I say, Can I interject and ask what is your book about?Shawn  41:18  Oh, it's about it's career advice. For people going from junior developer to senior developer? I think that's a kind of underserved market. SoKevin Åberg Kultalahti  41:28  not anymore.Shawn  41:31  Yeah, it's just one book. And I don't think I do a very good job of marketing it to be honest. But it's, it's doing fine. It's It was like, basically, my most popular essay is about this idea of learning in public. And so people really want more help on on how to do that. So I have like writing advice, like applying to cfps. I also have like tech strategy advice, like, people that I think developers don't think enough about betting on technologies and the business models of the companies that they work with. So I just give some basic intuition about that. In the book, we also study like career ladders. Yeah, sorry, I don't I don't mean to turn this into ad but like, it's aDavid Parker  42:11  very cool. I definitely had a very difficult time in that transition when I was going from junior to more intermediate and senior. So that's,Shawn  42:19  yeah, no one tells you this when you join the industry, you know, it's it's weird. SoKevin Åberg Kultalahti  42:25  you're just supposed to know.Shawn  42:28  You pick it up, like hopefully you land in a good company with good mentors, but a lot of people don't. So,Kevin Åberg Kultalahti  42:33  yeah, right.Shawn  42:34  They reach out there. So I feel sorry for them. They're like, they're like, Yeah, I don't have anyone else to talk about this with so I'm like, Alright, I'll be your friend.Kevin Åberg Kultalahti  42:45  All right. So let's do you guys have any other questions for Parker? Before we go to unpopular opinions?Antony  42:55  I I'm good. I'm gonna I'm asking some more outside of the podcast actually, when I think of them because it's interesting to me like I used to do a lot of this releasing small kind of projects that I built myself I guess, but yeah, the whole lack of marketing meant they were just literally for me and no one else and I think that I really like how listener it's looking I signed up earlier actually. I meant to mention and I'm really happy with it because I've got my own name, which is something I didn't get and clubhouse and I'm gutted about absolutely gutted about I like to have my name on everything and yeah so listen addict and they're Antony you can follow me You can you can follow other people and see which soon you add itUnknown Speaker  43:39  The nice thing is becauseDavid Parker  43:40  I don't do a tonne of marketing it should be easy for everyone to get their own name sorry nowAntony  43:46  I mean, you know on Twitter right so it can work you know you could be the next foot so who knows all right yeah, so you so I just yeah, that's that's it I'm done. I think happy let's go to unpopularKevin Åberg Kultalahti  43:59  Yeah, and you're the only one who has one this week. I thinkAntony  44:03  I know shocking shocking. Come on people we can we can do better you try harder.Kevin Åberg Kultalahti  44:08  Let's hear it myAntony  44:11  my unpopular opinion is that I don't like their weight. Like what is it and a weight thing in in Svelte the the, like, the templateKevin Åberg Kultalahti  44:21  or the template text for aAntony  44:22  tag? Yeah, that Yeah, I don't like it. I don't like it should be removed. It should be deleted from the codebase like comments and then a major version. IDavid Parker  44:31  only use it once all my code to be To be honest, I end up just doing it most things in the script section.Antony  44:38  I think I think you're doing the right thing. Yeah, you're on the right path. The thing is, right. So the reason I dislike it so much is because you know I've always believed that we follow this pattern, where we try to separate view logic from from logic logic, right view logic should just be rendering something in logic logic that can sit within the view layer. Traditionally write your Svelte is three things in one styling in HTML and code, but you should prepare the data and then iterate over it at max, because I can't see a way you can really avoid iterating over it. But the weight tag is is different. Like it really bugs a trend. You know, Svelte is a very simplistic language, it has very simplistic view. directors like this, it has a very simplistic view things. And the await tag is like an outlier. For me, it's, it's is doing too much, it's doing it in the wrong place. And you can wait things happily in your code and then get the code ready and or get a message ready or whatever. Putting in a template just feels wrong, just just really feels wrong. So yeah, I just I don't want it there.Kevin Åberg Kultalahti  45:43  It's so it's, it's you prefer to handle like your data fetching outside of the template tag, IAntony  45:49  suppose. I'm actually going to in the ideal world, I'd build something and show it right. And the closer I can get to that, the better, right?Kevin Åberg Kultalahti  45:59  Yeah, I'm actually like, speaking of like, separating data, data handling stuff. I'm going to record like a, like a learn with the JSON type thing. But learn with Kevin next week with Luke Luke about like, using custom stores or rather just derived stores to to do data handling. So that's going to be interesting. Yeah, I guess that's one way to solve it.Shawn  46:30  So when Anthony told me about this await thing, I was actually very surprised. I was like, wait, what this is in Svelte, that that must mean that it's blessed. And then and then I realised. So actually, the whole impetus of the data fetching talk that I did on this felt society day that the first conference that we ever did for civil society, was explaining why and when not to use weight, or, or like, you know, the alternative to a weight, including building a custom store, so I can refer people to that video. It's on this fall society, YouTube for that,Kevin Åberg Kultalahti  47:03  I'd completely forgotten about that. But yeah, that was really nice.Shawn  47:07  That one comment from Antony actually motivated the whole talk. And then I was just like, okay, let's just see where this goes. And there, it turns out, there's a lot of different ways to do data fetching, depending on what you want to do. So yeah, it's it's a fascinating topic. And maybe we should take out a weight, I don't know or put a caveat into depth.Antony  47:26  I look forward to your talk on removing comments from your code.Shawn  47:30  is wrong. That's just, it's just mistaken.Antony  47:33  I'm ready for it.Shawn  47:35  I haven't I haven't an unpopular opinion to share this not mine. If, if y'all want to go for it to comment on it. So Devin gave it that I thought I thought this was fire because he says, unpopular opinion. Yes, modules was a bad idea. It has caused half a decade of churn in the JS ecosystem, broken almost every tool, cause maintenance nightmares, for library authors, and for what a different syntax. Common JS was fine. It was just it was this unpopular opinion. And keep in mind, he's the author of parcel. So he knows he writes a bundler. He knows about static analysis. And so he's arguing that like, the typical response, so Okay, me as someone relatively new to JavaScript, I was just told that he has modules were better. And I just like, just take it on faith. Like, this is a big thing that has been in the works. And I once everything will be better once we might get to you as modules. And then here's this guy that this is like, Yeah, no, you know, we could do a lot of the same exact same things that we want to do as modules with common j. s. And, and now we have just like, years of just like, oh, you have to do like double transpiling or like, you know, and then your import systems are broken, like every everything's just kind of like in a weird flux state that we maybe didn't need. So I thought it was a very interesting, unpopular opinion. And I would just send people there, because there's a lot of discussion about this.Kevin Åberg Kultalahti  48:51  Yeah, it's it's I don't I don't know enough about these subjects to to really have an opinion. It just feels right to do the import syntax.Antony  49:04  Yeah, I have to agree. I don't know enough about ESM or anything else will come and yes, really, but I understand that, you know, eds is better for tree shaking, which is definitely a benefit. I just don't know whether that's because somebody made EDS and then a tree shakable or whether there's a fundamental problem with common JS that you can't tree shake it. I just don't know which it is.Shawn  49:27  I mean, so that's why that's why it's relevant to me that it comes from someone who who writes who makes a bundler because he's like, he's basically saying he can do the exact same tree shaking with common GS so we didn't need itAntony  49:39  Yeah, I mean, maybe I don't I don't think parcel prides itself on tree shaking specifically, though, right. And parcel prides itself on ease of use, no setup, just run it and you bundled kind of thing. And so I think that I would probably probably, you know, and I obviously massive bias, but I would, I would go with the kind of rich Harris opinion of esmf And nothing else. And again, I don't know if that's a fundamental thing in terms of how they devote the two things work or whether it's just, you know, I don't know. But I would say that probably among the rich Harris side of the argument for now, just because I think that the roll up is focused on the smallest possible bundle size, and that's very much more appealing to me. SoDavid Parker  50:28  I don't I can't speak to it. Sorry. I'll listen to the talk. I don't need to read anything about this, though, because it sounds interesting. But to be honest, I, I'm used to you know, in Ruby land, youKevin Åberg Kultalahti  50:37  have Ruby gems, you know, you have one way.David Parker  50:39  Yeah, Python is, you know, everybody has their own way. So it's interesting. JavaScript is like, so many ways.Shawn  50:45  So this is the Python. This is the Python Three, two to three conversion of JavaScript. You know, it's, it's just taken way too long.Unknown Speaker  50:54  10 years later, 15David Parker  50:54  years later. I mean, it yeah,Antony  50:58  it probably is.Shawn  50:59  Yeah, pretty much.David Parker  51:02  I mean, I remember when NPM came out, it was at 2000 979 2000. hash. Yep.Shawn  51:09  So as the original email, I found the original email in the Google groupUnknown Speaker  51:12  2009. SoUnknown Speaker  51:13  that'sDavid Parker  51:13  only what 12 years ago. So great. Now we have 15 more years of catch up. I have a separate unpopular opinion I'll throw out. It's it's that generally speaking, you don't need the style tag. Within your Svelte files. 99% of my components do not. And that's specifically because I am using tailwind. I will throw this out there for people who are tailwind haters real quick. I know Java, or I know CSS better now than I've ever known it. Everyone seems to say this is it's the it's the thing for people who don't know CSS, it's actually the exact opposite. Every single class corresponds to one CSS thing. Whereas you know, when I was using bootstrap, I'd write it in you know, button. But I never had to inspect to see why it why it looked nice. Now I know everything looks nice, because I took the time to add that class. And so basically, none of my components have a style tag. The only one that really does is the audio player that I have because it's a custom audio player.Antony  52:19  Interesting. Yeah, I think I think actually, the tailwind thing somebody else who I have a lot of respect for actually very, very good coder, who I thought would be totally against me and tell when really speaks highly of it. SoDavid Parker  52:32  what can I say? I don't think it's for everything and stuff. I it'll be very hard pressed to pull me away from it.Kevin Åberg Kultalahti  52:40  I mean, I'm using it for the new Svelte radio website that I'm currently having issues with because I'm, I can't figure out spell kit because there's, it's not really my fault. I know.Antony  52:52  We make it intensely difficult so that you know people that use it. That's why theDavid Parker  52:57  producer is sapper still.Antony  52:59  Yeah, I should probably I mean, all my stuff'sKevin Åberg Kultalahti  53:02  still I should I should probably convert it to separate for now.Antony  53:06  Yeah. Just Just hold off for a bitDavid Parker  53:08  and separate isn't. By the way, whoever thinks sapper is dead, is still making, you know, pushing things to get GitHub, you can see it. So it's clearly I'm not worried about that.Kevin Åberg Kultalahti  53:18  Yeah, we had last night. In fact, we had we had been on last episode, right? Where we we talked about sapper and how it's specifically not that.Antony  53:29  So yeah. Like we only really we only rewrote our cell to about you know, few couple of weeks ago, to be honest. You know, we're at the point now just people need to upgrade and you know, we've we've been supporting it long enough. But yeah, there's got good longevity in Svelte stuff, new Svelte land. So we've got time for for a pair. Yes.Kevin Åberg Kultalahti  53:50  Yes, we do. We do. All right. So what's this random pick you have for us this weekend?Antony  53:58  Is there ever no random pick? So my random pick is a can opener. Now for those who can see the podcast, which is not the audience sadly, it's a tiny little can opener. It's called an indulgent Nugent, super kin. It's actually from France. And you know can openers there's all sorts of levels of crap for can openers. They're all rubbish. You occasionally find a good one and my favourite one to this point was a basic cheapy supermarket. You know, basic can opener. I found this on Amazon. This this notion super Kim is expensive for a can opener. But this thing opens a can perfectly so you stick it on the side, you start to turn and it pulls itself into the rim. Then cuts the rim but as it does it sort of what I come with the word is but it makes little dents in it so it's not sharp. So when you pull that catalogue out, it's not sharp. It's not going to cut you. You go around the can it doesn't slip it doesn't ever get hard to cut it. Very smooth action when you finish you just turn it the other way just past the turn and it will remove itself from the cam and becoming you know in your hand. It's like man like man this thing is tiny. It is like magic this thing is tiny this thing is probably like I don't know three centimetres like an inch and a bit square. You know even cute because of the handles stuff. It's just it's just great. So you're operating on you know, I know you said you have cats that's why you have well it's because they know we did we didn't fit him we feed him pouch food actually but but now we really liked tuna so we have a lot of tinned tuna and it's just every time it pains me opening candles just we had this very pretty, very posh can opener and it was just rubbish. It got blunter and blunter and it would lose the grip and then it would after you put it back on and once you've lost the grip and a can opener and you try and go with the same bit it won't grip and it won't cut the notch and then you've got a knife you're trying to stamp the top off so yeah, can it can open is way more important than then I thought it would be but I love this one. This is brilliant. So yeah, I'm happy with thisKevin Åberg Kultalahti  56:04  in the show notes soAntony  56:06  stick in the show notesKevin Åberg Kultalahti  56:07  S ean Do you have a pic todayShawn  56:07  there's a I haven't come back to me any any think of whatKevin Åberg Kultalahti  56:17  Yeah, yeah, sure. So my pick this week is the the Bitcoin lightning network so I've been I've been super interested in playing around with Bitcoin and the Bitcoin lightning network makes all these these like problems with with the amount of transactions per second go away so so it's not really an issue anymore, which is cool. And it's just it just feels awesome to like send money across the world in like seconds without anyone like telling you you can or can't do it. Cool feelingAntony  56:53  this is the only way that Bitcoin becomes a reasonable currencies is a lightning network.Kevin Åberg Kultalahti  56:57  Oh, definitely. Kevin, IDavid Parker  56:59  don't want to change the subject completely. I'm not a shill But are you familiar with nano?Kevin Åberg Kultalahti  57:07  I heard about it. David Parker  57:09  Okay. It it to me seems infinitely better than anything Bitcoin can or will put out just because of no tech debt basically. And how it was created to begin with in terms of being a currency versus a store of value which I feel like Bitcoin. Yeah,Kevin Åberg Kultalahti  57:24  I think I think so. Yeah, but I think it's just like the network effect of Bitcoin makes it the thing that's gonna win if that makes sense. I don't know.Antony  57:34  I don't think it's gonna win. I don't think anything's going to end Bitcoin. I think Bitcoin is the React of cryptocurrency. Right? There's there's an opinion really.Kevin Åberg Kultalahti  57:45  All right. Let's have a cryptocurrency discussion another time.Shawn  57:52  No, but I'm actually pretty proud that like, we actually talked about it instead of completely ignoring that it's a thing that we talked about Bitcoin, like in May of last year, and it clearly became a big topic. Oh, okay. So my pick is three j s journey dot XYZ. So it's by Bruno's Bruno Simon, who has his his personal site went pretty viral last year, because it's basically shows you the amazing things you can do with three j. s. And now he's released a course that's only like, I think it's like 79 bucks. And he's just teaching you everything in it. He knows it. It's really well designed. If you ever wanted to learn, like, you know, if you ever get tired of rendering boxes on the screen, this is you want to go 3d. I think this is a great way to do it. All right.Kevin Åberg Kultalahti  58:40  I have a pic. Parker, doDavid Parker  58:42  you have a I have a pic. But I have a quick quick comment to that. I haven't seen that three JS thing. I will check that out. I'm going to do a plug before I do pick on my YouTube channel. I have I think over 100 Web GL videos tutorials. So if you want to learn what three GS is doing underneath will actually rip apart three j s. But in general, how does Web GL work? I have a lot of tutorials on how to do interesting 3d things. If you are going to build something for real, I highly recommend three GS rather than going for that all because it is a lot of work and overhead. Otherwise, there's a reason three JS exist. Anyway, my pick up somewhat thematically with Anthony's was actually in the kitchen as well. I'm not going to go grab it. It's just we have an espresso machine. And since COVID has started it is a saving grace. So just a few 100 bucks. I'm not it's not a two or $3,000 crazy Italian wine or something. But just having a nice espresso machine at home. makes life so much better.Kevin Åberg Kultalahti  59:44  Yeah. Fair enough. It's personal. It's nice. All right. And I think that's it. Thank you for joining us today and talking about listen addict and all the other stuff we we talked about us producer andShawn  59:58  yeah, thanks for joiningKevin Åberg Kultalahti  1:00:00  Thanks to all the listeners, we'll talk to you guys in a couple of weeks ago, yeah,David Parker  1:00:06  thank you for having me. This is great. You guys are fun.Kevin Åberg Kultalahti  1:00:11  Thank you everyone. Bye bye byeTranscribed by https://otter.ai
Wooh! It's here. The SvelteKit open beta! We talk about how to get started, what's different compared to Sapper, new features, migration paths. All that fun stuff.Notes: SvelteKit blog post! GitHub Repository Unpopular opinions: Antony: Daylight savings time should be abolished Swyx: Facebooks social media features are actually quite good Kevin: Clubhouse isn't that exciting anymore Picks: Antony: Homethings Kev: CSS clamp() and custom properties,  fluid typography Swyx: Complete guide to accesible front-end components Transcription:Coming soon!
Note: This was recorded on February 19th. Sveltesummit CFPs are currently closed. Sponsors: Support Svelte Radio by leaving a review on iTunes and/or visit our support page.Description:We sit down with Simon Holthausen to talk about the Svelte language-tools, TypeScript and all that juicy stuff! Some notes Description, show notes and transcription coming soon. This was accidentally released a bit early. Sorry about this!- Language Tools repo- Simon on GitHub- Svelte Component TemplateUnpopular opinions:- Antony: Case-insensitive file systems are bad- Simon: I use Windows- Shawn: Don't use throw unless you want the program to crash! Errors are not exceptions!Picks: Kevin: Yubikey 5C Nano Antony: Clean Co - Low Alcohol Spirit Shawn: Princess Bride Home Movie Simon: Fasching - German festivals Transcription:Kevin Åberg Kultalahti  0:00  Hello, everyone. Welcome to another episode of Svelte radio. Today we have yet another guest surprise. We always have guests these days. But first, some introductions. So I'm Kevin, I run a site called Svelte school. And I'm heavily involved in Svelte society, and help out around the Svelte community.Shawn  0:22  I'm Shawn, I am still in the process of switching jobs, but hopefully building a Svelte app in production from a next startup. And I mostly should post on Twitter, first of all society. We also did just launched the CFP for the Svelte summit conference that is going to be happening in April, I think, and I'm very excited about organising speakers for that.Antony  0:46  I'm Antony I'm the ccfp og which is a booking system for tourism leisure. I'm also a Svelte maintainer, alongside our guest today, who is Simon halt Hauser. And Simon is the I've got it. What can I say is he's the he's the person in charge of language tools. He's He's the code here behind that is absolutely on fire at the moment. I would probably say it's one of the most active sort of segments of the spell organisation. So all credit to him. And the community, of course. So Simon, I'll let you continue with your introduction.Simon Holthausen  1:22  Yeah, thank you for the warm words. I'm some. I work as a software engineer at a company called xo do software development and consulting. And yeah, I, I don't know more by accident than anything. I stumbled into the spelter world got really hyped. helped out getting the language tools, VS code extension forward and yeah. Now I'm a Svelte maintainer, like Antony. And yeah, really? Thanks for having me.Kevin Åberg Kultalahti  1:57  Yeah, exciting. So you're you're also known on the Svelte discord as Doom Doom, right?Simon Holthausen  2:03  Yeah, right. It's my handle. Yeah.Kevin Åberg Kultalahti  2:05  Yeah. Where does that come from?Simon Holthausen  2:09  Yeah, so my, my my original nickname back in the days when I was in puberty, was Hitman Faker. I thought that was a very cool name at that time. And after puberty was over, I thought, No, that's, that doesn't work where email? So I thought, Okay, I need a new nickname. And I was humming along like them to them. What kind of pig? And then I thought, Oh, why why not take this? This? Dum dee dum? Yeah. And so it was just like, it's called loudly fire in German. So.Antony  2:49  Wow. That was loud.Simon Holthausen  2:53  Louder. The word for writing something down? That sounds exactly like you.Shawn  3:02  Automatic. Yeah.Antony  3:06  Yeah. I was gonna say it's more like Him. There's another word for isn't there. When a word sounds like the thing that it describes, is that Onomatopoeia?Kevin Åberg Kultalahti  3:19  This is above my paygrade podcast. Alright, so so TypeScript, what's are sorry, language tools? What's going on there?Simon Holthausen  3:30  TypeScript is a big part of language tools. That's definitely right. So yeah, I was, I was here on the on the show about, I don't know, almost a year ago. And I skimmed through some of the issues that we close since then, or we got since then. And yeah, so what changed between then and now. So it's, overall, we just worked hard to get rid of all the edge cases that people might occur when they just coding. And I think, especially all these edge cases, when you when you're in the zone, and you're coding, and then your intelligence does something stupid, that can really put you off, and we are trying really hard to minimise that. new things are about. We also added a lot of new things like we now have auto completion for events. So if you define event by create Event Dispatcher from another component, you get auto completion for that in the component that uses the components. You can get comments for the props and events. So if you hover over it, you see the docks, there were some new refactoring commands like extract into function, which works similar to the JavaScript or TypeScript one. Cool. We got a simple Extract into components refactoring. So you can select a part of a component in the markdown, which you want to extract into a new function. And it just can right click, and then there should be a extract components, add components command in the context menu. And then you can specify what's what's, what's the name of the component, and then it will transfer that HTML into the other component, and write the input for you.Antony  5:34  So just just for the somebody who's let's pretend I'm completely uneducated in TypeScript, not because I am no, I definitely am. Imagine if you're also completing events. And you've got like a series of events that click and you've got things like, key up and key down. Are you maintaining a huge list of events that match the Svelte API? Or are you using, say, the type definitions within Svelte to generate those auto completions? How does that how does that work?Simon Holthausen  6:00  It works. Actually, it kind of is like that. So that there are two parts to that. One is that we use the HTML language service that VS code uses for its HTML intelligence. And that one defines a lot of those events. So if you do auto completion, you'll get that from that. But we also have to define and keep track of a really big list of all these events inside a type definition file, so that we can show arrows, like, okay, you're using a new event that doesn't exist. So for that we have two people, ever growing list of events.Antony  6:47  So you have this duplicate list that matches Svelte, right? Yes, we do. So is there a way to Is there a way to maybe like, use that if that list existed a bit within Svelte itself? Is there a way to use that list from there? Or is that is that not a thing? That's possible?Simon Holthausen  7:04  So there was, I don't know some kind of Jason definition, we could definitely look into generating something out of that. Yeah, that would be possible.Antony  7:13  That'd be interesting PR, because I've, I've seen the code that adds those events to elements inside Svelte. And it's kind of like a big if statement, really, I'm guessing it's done that way for efficiency, in terms of execution speed. But what I might say is that maybe if we put that into a JSON file and had it as a reference we could look at maybe that would be sort of work better that people save some of that manual overhead.Simon Holthausen  7:35  Yeah, yeah, definitely. There are also some other parts like the all the warnings of the Svelte compiler can put out, they are not in one place right now. So, and you cannot turn silence all of them. So, like the accessibility warnings, you can turn off with sobelle to ignore comment. But that doesn't work for all elements. And I think we could look into to get it to work for more elements, or maybe all of the warnings.Antony  8:12  I think this is an open, there's an open issue that's kind of being completed over time, which is to move all the errors and warnings into a single place. So I think that might help with that. And I think as interment in terms of silencing the accessibility areas, I know this, I know, there's two ways there's a fired, and I can't remember the reason behind it. But there's basically some of them are belong, they belong to Svelte and can be satisfied roll up and some of them don't belong to Svelte and can't be. And I can't read the exact, exact nature of that, I think maybe one of them. Some of them come from acorn, or they come from some other internal project that we don't have the same level of control over. But yeah, definitely, I think, I think things will move in the right direction to make that maintenance task easier. which requires,Simon Holthausen  8:57  definitely,Shawn  8:58  I have a bit of a confession, which is I've never used the refactoring commands in VS code or TypeScript. So like, this this stuff with a with the whole, like, refactor out into a component, or was the other one that you said,Simon Holthausen  9:14  extract into function something, you select some count block and say, okay, extract that into a function that works in TypeScript, JavaScript, and they are now also works in Svelte files.Shawn  9:27  Yeah, and it's something that I think the React world and view also have, it's just that I've never used it like am I supposed to be right clicking things all the time and because I just copy and paste. Like, I I feel like there's productivity tips that I that other people use that I don't know about or I don't use. I get this question. You know, how often How often do people use it? How do you How often do you use it?Simon Holthausen  9:53  I honestly I use it all the time I do so many extract into function extract into constant All over the place. I don't know. I, I couldn't live without these refactorings today, I don't know. So much nicer. The same with format. Yeah, ever since I started using prettier I, I am no longer able to format my code by hand. It's I I'm able to.Kevin Åberg Kultalahti  10:19  Yeah, I have a love hate relationship with prettier, mostly because I'm stupid and can't configure it correctly, probably. But that's another discussion.Antony  10:28  Yes. It's a weird one because I think that I mean, I used to use typed languages a lot. And I really do I do miss the kind of extracting functions and stuff. I sort of resorted to doing it, Mandy now because I don't use TypeScript that much he used JavaScript. But it would be really convenient to start using this again. So I don't know that the list of reasons maybe I should switch to TypeScript just keeps growing, isn't it?Simon Holthausen  10:50  Yeah. But these things you can use in JavaScript too? I think. So these extracts, constant function Do you could use those two in JavaScript? SoAntony  10:58  but this there are some you can't use, right, because they need a bit more. Yeah, I think definition.Shawn  11:03  Yeah. So you know, there's been a lot of talking about moving between TypeScript and JavaScript. There's been a lot of discussion about how in Svelte kit, you're using just the GS doc version of TypeScript. Is that true?Unknown Speaker  11:16  Right, well, yes.Shawn  11:17  I mean, it Yeah. I mean, what are your feelings on that, Simon? And is that something that more people should explore?Simon Holthausen  11:24  So I think I'm on the other side of the spectrum, I I really like TypeScript. And I'd like to use it everywhere. And rich, just has a very different opinion on that. So he went with a j. s doc approach, which is perfectly fine. For me, as long as I, I don't know, I, I didn't work myself yet that much with the Svelte code. So I cannot say, Okay, this works just as well with as it worked with TypeScript. So I cannot speak from experience for that. But I think some some part of it will just feel more tedious to me than they would do with TypeScript. Especially around those things like, okay, you have to now define your types inside j. s. Doc. And I'm just more used to typing the types right after a lot in line. And I think that, for me, at least, I mean, it's all coming down to habit and what you're used to, but for me, it just reads better. And I think some some things like generics you cannot describe in a good way with J stock. Or maybe that changed. I don't know,Antony  12:53  I think we had we had this, you know, it was originally in TypeScript, the whole thing and, and then rich one day decided that TypeScript was kind of becoming, you know, is problematic for him, as he was changing things quite a lot. And he decided to remove it. While he sort of, you know, he offered up the notion that he'd remove it. And then there was a big a big discussion that lasted days, about, you know, yes, and no, and, you know, there was like, half people in the camp of the maintainers in the camp of no and half of them in Yes, and then lots of I'm ignoring lots of lots of work to kind of try and make it workable. But then, you know, in the end, we like, let's remove it for now and see see how it goes without it, just just whilst it's in this kind of state of massive flux, and then we'll read it later on. And I remember I mentioned to somebody on Twitter that we're gonna, you know, we're going to re add it, it's not a permanent state. And then rich popped up so well, actually. And now he's talking about, you know, making it all as projects at work, just use the desktop stuff, or whatever it is. So I mean, yeah, I don't know, I'm not getting involved. Because I mean, I don't have enough education in in TypeScript to really know how it feels to write the whole project in TypeScript. But I will leave that to just sort of work itself out organically. I think it'll be interesting to see. To see the result of that,Kevin Åberg Kultalahti  14:08  that the other people fight. Yeah. All right. So before we go on, I'm gonna read a couple of sponsors bots, which aren't really sponsors, bots, but Alright, so first up, you can now support Svelte radio directly. And by doing so, you'll get access to video versions of the podcast or you'll be able to listen a couple of days early to the episodes. So if that's interesting, you can head over to Svelte radio.com slash support. And, yeah, the the support is much appreciated. And then, if that's not something you're interested in doing, you can always leave a five star review on iTunes or whatever podcast platform you're listening to. also helps out a lot. And yeah, that's it. Whoo. Whoo indeed. All right. So so so what are what are things are new in? In the language tools side, you you've, you've, you sent us a list here a couple of days before about some things. And there's there's one thing called Svelte component typed. So So what's that?Simon Holthausen  15:22  Yeah. So that's a new addition to Svelte core. There were quite some requests about, okay, how do I now I can use TypeScript inside my side components, but then I'll have to transpile it to JavaScript to provide it to others as a library. But how do I write type definitions for that? So I need some type definition file. And I need to write down the types and they are and how can I make it so that the language tools will understand those types and will tell the user Hey, this prompt does not exist, or this event does not exist. And so Svelte component type does exactly that. It helps you writing type definitions. So you just do, okay, exports class, then your component name extends spell component type. And then there are three generic parameters, props, events, and slots. And you can type type them all. So we can say, Okay, this, it has these props with these types and these events with these types and same for slots. And that that really should help library authors to to write type definitions more easily.Kevin Åberg Kultalahti  16:38  Nice. It's it sounds like a big, big addition. compared to before, yeah, definitely.Shawn  16:45  Yeah. I have a question. I have a question, which is like, Where's this documented? Because I feel like people should want to look at code examples.Simon Holthausen  16:53  Yeah, documentation is a big, ongoing issue. We, we also talked internally about this quite a lot already. It's, it's, it's kind of all dependent on each other. So we definitely want to redo the docs and also enhance the docs, because there's quite a bit to know about TypeScript specifics by now. And, yeah, we definitely have to put them on the official side. And so that's definitely missing. It's, there are dogs for the inside the language tools. But I mean, they are not directly explorable from the from the official side. So yeah, that's definitely still missing. talks are, yeah.Shawn  17:39  Sounds Do you listen to Svelte radio, then you don't need the dogs? Yeah, right.Kevin Åberg Kultalahti  17:43  Radio is the dogs. Right. SoSimon Holthausen  17:45  listen to the dogs.Kevin Åberg Kultalahti  17:50  Maybe that's maybe that's the next big thing. Like audio documentation.Shawn  17:55  Yeah, actually, there's some people in the AWS ecosystem that actually do like dramatic readings with their dogs. Live Stream, and then there's like, some calming music in the background, and then you just read from beginning to end actually, you learn quite a few things.Antony  18:08  I really like that idea. That's a really good idea. Dramatic readings of anything is great, but documentation is even better. Oh,Kevin Åberg Kultalahti  18:16  yeah. Speaking of like, traumatic. What do you call it? dramatic readings? Yeah, so I've been reading these. These fantasy books. I think I picked one of them, like a couple of episodes back maybe 10 episodes. Yeah.Shawn  18:29  Brandon Sanderson.Kevin Åberg Kultalahti  18:30  Yeah, exactly. Exactly. You're so good. It's so much better than like a regular audiobook. I cannot recommend it enough. Sorry. A bit of a tangent there.Shawn  18:39  No, it's good. Yeah, like I like to hear that people are still enjoying, you know, stuff that he picked in. Yeah, it's like a double pick.Kevin Åberg Kultalahti  18:48  Yeah, yep, definitely. Alright, so. So this thing about documentation, maybe that's also something that's missing a bit in general and Svelte. And I think we say this quite a lot. And it's, it's like, General examples are like, videos by people doing different things. Li Hau has been doing great with the outdoor stuff lately. Those are awesome. But maybe maybe should be priority to get something out on how to do like a proper library with TypeScript and everything set up somehow. I know there's the there's the Svelte template, repo, I think a component. Yeah, component of that. Yeah, exactly. And I haven't touched that in ages. But I assume that can be improved some bit. Maybe it already has TypeScript out of the box. And I'm just not aware of that.Simon Holthausen  19:46  There are some open prs to get some some something automated so you can compile to J s from from tears but I don't know if they have landed yet. Because there were some concerns about usage and just in general, yeah. Documentation how to how to use it edge cases when it doesn't work. Yeah. There are only so things one can do at a time.Kevin Åberg Kultalahti  20:16  Oh, yeah, definitely. I'm not saying you should do it to say someone should do, or if it was theirShawn  20:24  issue 29 on the component template repo, where people are discussing some of the details. With publishing these things. It is pretty complicated sometimes, especially if you need to take in an account SSR.Kevin Åberg Kultalahti  20:36  So I think I always like end up scrapping my TypeScript plans, because because I always have trouble setting it up correctly, getting it to work properly with everything else. Probably my main problem with it,Simon Holthausen  20:51  that was also one of the main reasons why rich fruit out of swell kit, because there were just so many problems with setting it up correctly in the context of a mono repo. And so Oh, getting rid of tooling is always I mean, no tooling is better than or no build step is better than any pizza. Yes. Yeah. Main notion that I think,Kevin Åberg Kultalahti  21:19  yeah, definitely. We we actually. So couple of people created like a Svelte kit incognito Discord server, where we could discuss it without, without like, like, like spamming the regular discord with questions and stuff. Because we know that people don't really want to listen to socketAntony  21:42  stuff all the time, right. I like that, like these people, whoever they are.Simon Holthausen  21:49  Yeah, it's really it's really crazy to me how many people are jumping on it? so early? It's it's really fascinating. Yeah.Kevin Åberg Kultalahti  21:57  New, shiny. Very exciting, though. Anything else about like the Svelte component template we want to discuss Probably not. There's also preprocessor. Support. Right? The or sorry? source map, supportSimon Holthausen  22:11  source map support. Yeah, that's, that's another thing that landed recently. So Svelte has much better source map support now. And that means that if you now get an arrow, and you're using TypeScript, for example, you will get the error pinpointed to the correct location in the Svelte code, which wasn't the case wasn't always the case previously. And yeah, that that was really a huge community effort. So I don't know it's it was Timmy trash and me law house. I think that those were the handles. And they basically did all the work. And so huge props to them for bringing that in.Kevin Åberg Kultalahti  22:56  So like source maps, and and like obfuscating code on the in production, that's something I've like, I've seen a lot of people there, they're asking like, oh, why can I see my my Svelte code in the in the browser on my site? And I personally, I think it's a good thing that you can see it because then you can like, look at how someone else built something. But I feel like this this thing that some, some people think that if you obfuscate the code, you can like figure it out, like someone can copy it somehow. But that's obviously not the case. Right? I'm curious about like, how does source maps does? Does that affect anything else? Like loading times and stuff like that? in general? I don't know enough about it. But they're just loaded. If if you have an error, right?Simon Holthausen  23:49  I think so. So so once there's something where the source code location could be looked up, then I think the browser's will try to load it. If it's there. So you if you turn off source maps for your production boats, and you don't get 10, don't deploy the source maps along with with the generated code you? Well, you won't see ya the origin, the court and in the process.Shawn  24:16  Yeah, so I've actually had to wrestle with this for a previous project of mine. And there's, there's the security angle. And then there's the the data angle that data angles, pretty simple. This first map is not downloaded unless you have the browser Dev Tools open, which means your dev. So it doesn't make sense to send a source map for a regular user who, you know, has is not going to use it. But having source maps in production is a open question. I think the majority consensus is in favour of it. But there's some people who have the security argument, right, like, if you can see my source code, then you can figure out how my API works. Bah, bah, bah. The argument against that is that if you're relying on that amount of have security by obscurity and you're not being secure at all, your API should be immune to that. And you should, you should not care if anything on your front end is seen by attackers, because that's the easiest part to see. So the argument for putting source maps in production is that when you're developing and you see a bug in production, you can actually, you know, open, open up your dev tools and actually see see what's going on with that. And the other, there's a tool that I'm tracking, which is replay.io, which actually helps you record it's like noon, I don't know if you guys have seen that loom or all these recording tools, bug reporting tools, it records a video, but it's also a custom browser, that plays back the JavaScript code executed, including the source maps. So we have source maps, you enable dev tools like that, that just record all the data passing through, you can pause, and then you know, check, you know if this, this is what I expect it to be, and then continue add comments. And I think it's all enabled by having source maps. So we need to I guess, normalise shipping source maps in production.Antony  26:05  Shawn, I'm interested, just 10 genessee hit Tab congenitally here, and generates What do you say? gently? Yeah. I have no idea. I this is not an English language podcast today. I know. I'm too tired. I'm just too tired. No, it's fine. So what I was gonna say is when you say you're tracking something, what does that mean to you? Because it's interesting, as I see, you track a lot of projects.Shawn  26:37  So this comes from my background as a finance person, I have investment theses that I that I track, which is like, I think that this could be a huge thing in the future. And I better start collecting data points on this. Because it takes a while for for something, especially things which are in early stages, when you like not really sure if like you should, it's worth your time. It's it's just it's just worth like looking out. Because it just means that I think that this could be big, it's That's all it is. Okay, and I have a mental register of like, you know, last month I saw this this month, I saw that it could it could, it could just not be a thing. And I might just forget about it. But you have to choose what you track and what you ignore, because there's too much to, to know everything about. But I think it's a good idea to not just give up on tracking everything, you should have some idea of like, I think this could be huge. So because you can bet early on it.Antony  27:30  I wondered if you had like a, like your own registry of things that you're kind of actively watching or if it's just mentally in your head that there's different aspects, butKevin Åberg Kultalahti  27:38  I'm imagining like a, like a JavaScript, like, like a node script that like opens 50 browser tabs?Shawn  27:47  I do. I do actually want repos. I think one of the underrated features of GitHub is that you can just like snoop on notifications of like activity going on in different repos. And yeah, yeah, I think it's a good way to track what's going on without being super involved. But if you see a bunch of activity, you know, like something's going on.Antony  28:07  GitHub is kind of missing it missing a trick. And and, you know, maybe maybe not Frydman sort of this is for podcasting. I don't think it is. But I wonder if like the stars feature of GitHub could be a lot better. You know, because you tend to start stuff. And that's it. You start everything. And I've started hundreds of repositories over the years, but it's just a big list. And I can't remember what what's in there what I want to search for. If I could categorise that better. That'd be great. better way of sort of slightly different way of seeing things.Shawn  28:34  Yeah. Well, everyone started the language tools repo.Unknown Speaker  28:38  Yeah.Shawn  28:41  I do that. Like I even even start private repos of my coworkers. So like, I'll go on to my, my co workers repo, and they'll just be one star. But like, at least they see that like, you know, I'm giving them props for like working hard and something. That'sKevin Åberg Kultalahti  28:55  nice. Nice, nice, like, surprise. You open your prayer repo and like, ooh,Shawn  29:01  it'd be I mean, it's so easy and whatnot. Yeah. I have a question about the refactoring the component refactoring thing. I think there is a movement within Svelte Oh, at least like, Well, okay, I saw, I saw Dan Lieberman from the React team, constantly making digs, and Svelte about how we only have a single file component. And I was, and I think there is some always some discussion about like, multiple files in one component. I don't know how I feel about that. And I was wondering if you had thoughts, because it'll be easier to refactor things into multiple into multiple components, if you could just keep them in the same file.Simon Holthausen  29:35  I personally don't like that. I don't know. I don't have an I don't have an issue with many files. And if each file has about, I don't know, 20 lines of code. I'm perfectly fine with that.Antony  29:48  Yeah, we I think I'm the same at the same opinion that you know, my ID or VS code makes it so easy to just manipulate a bunch of files at once. I can open them all the same screen I can play around. with them, I would rather have that than pollute the Svelte API with a kind of template tag. The joy of Svelte is it it detects in your components, when you have a script tag, and a style tag, and everything else is HTML. And that's really nice. You know, you don't need these that react style empty tag that you have, or a wrapper component or a root component fragments or so on your fragments. You don't need any of that complexity, mysteriousness, things that break CSS Grid, for example, because you can't, you can't have a direct child have something to make the elements within sight, something agreed or I ran into a problem like that once with those template tags. So I would I would much rather have it just as it is now simple and take the hit that Yeah, you can't put 100 components in a single file. Sure, it might make prototyping very, very slightly slower. But I think that Svelte itself makes prototyping faster. So therefore, you know, it's, in my opinion, at least, it still seems that you're going to get a speed and ease benefit of prototyping and Svelte versus anything else. You know,Simon Holthausen  31:10  ya know, what, that you know, that you know, about the extract component command, you can just write your file. Exactly,Kevin Åberg Kultalahti  31:21  I'm actually gonna start using it today.Shawn  31:27  Simon, since you're sort of the resident TypeScript expert, I was wondering if your thoughts on type scripts, recent features in general, like, there's like the template types, I don't know, they're very fancy.Simon Holthausen  31:42  I really love data types. That's, that's, it's a very, very, very interesting feature, the template type templates,Shawn  31:49  can you describe them for people who may not know what they are?Simon Holthausen  31:54  Basically, it's, you get more, a whole lot more dynamic with typing. And you can describe how a type will be converted to another type, but not from, but not the values. But the keys of those types. So I don't know, for example, let's say you have an interface with Prop A, and you want to define another interface, which has Prop A change, so and you want, you don't want to duplicate that. So you just want to append change, to every prop. And you can do that now with these template, literal template literal types. And it's it's a really interesting feature, I don't think that a lot of people would use it. But I think for library authors, especially it can be really liberating to use that, because it opens up quite a lot of doors for more generic typing. And I also thought about how we could maybe use that in the language tools. I hadn't haven't thought too deeply about it. But there could be some benefits to using that for us as well.Kevin Åberg Kultalahti  33:11  So is that is that coming in the 4.2? Release? Or is that?Simon Holthausen  33:15  I think it's already it's already available? 74.1? Yeah. Yeah,Shawn  33:21  it turns people that people have done really crazy things like, implemented JSON parser with it, andSimon Holthausen  33:30  it's crazy. Yeah, what you can do with it thatShawn  33:32  basically turns the TypeScript type system into like, a full, I guess, like string parsing, string generation thing. Whereas, you know, in the past types of types would be pretty static. like you'd define them upfront. And that's about it. That's all you can use. Or you'd have to use a generic and call them weird names like T. ButKevin Åberg Kultalahti  33:53  it can't it kind of sounds like like when when you see these, like, really cool CSS things that people do. Like they like build complete games and just CSS.Antony  34:04  Yeah, the counter CSS counter.Kevin Åberg Kultalahti  34:07  Yeah,Antony  34:08  I saw Ram. I saw a CSS file in the day, which is like a bunch of balls on a grid that go up and down like that. And it's very little CSS there. It's really impressive.Kevin Åberg Kultalahti  34:17  You can do so much in CSS now. It's amazing. You canAntony  34:22  you can it's kind of scary, because it's one of those points where it starts to cross over into something that is a language in its own right. You know, and it is the language anyway. But I mean, it becomes it blurs the lines between where JavaScript ends and CSS starts. And I don't know how I feel about that. Really. I quite like the single thing for single purpose style things.Kevin Åberg Kultalahti  34:44  Yep. All right. So you you also had a point about hopefully some incoming tears support for es lint for these lint plugin.Simon Holthausen  34:56  Yeah, right. And by now it actually landed. So you Please feel free now has Ts TypeScript support web assembly now in what does that mean? That means that with some slight adjustments to your SP es lint config, you can now get es lint checks in your Svelte files if you use TypeScript, which wasn't the case before. They were all wrong. And so before that it only worked for JavaScript inside Svelte files. And now it works for TypeScript files, too. It's great for TypeScript inside Svelte files. Yeah, so that that landed just about two days ago, I think, at the time of this recording. It's nice. I guess it's a little rough around the edges. It's there may be some things that don't work as expected. Someone already did a PR to fix some of those things. And but, uh, yeah, it's it's there, and you can finally use it inside sidebars. So, yeah. I think that's what quite a lot of people. I don't know, in these issues. Some people were like, Oh, I'm blocked from using Svelte until this TypeScript support lands in Yes, lint. I cannot live without that. And soKevin Åberg Kultalahti  36:23  yeah, that's great. It's kind of like those people that were blocked from using Svelte before TypeScript. So any anything any other like, cool things that are going on in the language tools.Simon Holthausen  36:38  So so one big thing that we haven't solved yet is that if you if you are inside the Svelte file, you get all these nice IntelliSense features. And you can do a I don't know, you can refactor a prop. And that prop will be renamed in the other Svelte files to, etc. Or you can rename a variable and it also will be renamed in Ts files, which use that. But that doesn't work once you're in a TypeScript or JavaScript file. So once you're in JavaScript, or TypeScript in a file of then just yeah, VS code or the the others just don't know, what's this Svelte file extension? digits just cannot really deal with that. So that crossing the boundary of getting Svelte support in the context of JavaScript or TypeScript files. That's, that's something we haven't accomplished yet. But we we've picked up work on that. So Pushkin has has done some exploration on that lately. And so we're starting to explore that. And hopefully we can, yeah, show show something in that regard. Soon. So what what what that would mean is that if you do a refactoring of I don't know you have, you have a store in a JavaScript or TypeScript file, and you want to rename that store. And with with the with a plug in which we will write for that, you will then would get the Rename working in Svelte five, two. So those will be not only renamed and other j. s, or Ts files, but it will also be renamed in the Svelte files. Or you can say, Okay, I want to see all all usages of that spell component that I have imported as a barrel export, for example, in my TypeScript file right here, and you can just say, okay, find all references inside the TypeScript file. It will also show you the references inside Svelte files, all these things. So just this crossing the boundaries, this is, yeah, this is the thing work in progress, work in progress, right. And the other thing is for for TypeScript, specifically, just getting better. So right now, you you cannot really define, you cannot define generics for props or events, something like that. So I don't know you have a Svelte file. And then you have a prop of a certain type, but you don't care about which type it is. And you have an event event that will be of the same type than the Prop, but you don't know in advance what type it is. And generics would be really good for that. And that hasn't happened yet. So support for that hasn't landed yet. And yeah, fleshing out the API is a ongoing progress to and yeah, hopefully we'll, we'll get agreement on that someday and then that will be part of the Enhance TypeScript support to. Nice. Very cool. So those are the two big work in progress things, I would say. So,Kevin Åberg Kultalahti  40:12  so looking into into like the Svelte kit future, how do the language tools work together with Svelte kit in the future? Have you guys discussed anything? Like, will there be specific features in the VS code plugin, for example, that makes things easier and spell kit or something like that?Simon Holthausen  40:32  We haven't discussed about this on that level yet. But from a general perspective, it should work just does today with smartphones. So you can use smart kid, just like you can use any other Svelte related project with the language too. So there's, there's no problem there, there may be some special tags that you can set which we will add support for in the language tools. I don't know. But or maybe one could think about, okay, if someone is in a script, context module, and he's starting to type, export const. And then we can maybe provide an auto completion for the loads, interface, something like that. But yeah, those would be things we could could add. But in general, it should just like, work out of the box. Just it works with regular spot.Kevin Åberg Kultalahti  41:32  Yep. That's great. All right. Any Any other questions or thoughts about TypeScript? No. All right. So let's, let's go to the next section of the show, which today is domain squatting? So like a couple of weeks ago, I got this weird email from from some company in Shanghai, about some. So I think this was like a domain registrar in in China that emailed me and asking if some random company that tried to register Svelte radio.cn or, and Svelte radio.com, that cn and all these weird variations of the of the server Svelte radio domain name, asking if they were affiliated with me, which I promptly replied and said, No, I have no idea who this is. Or, yeah. That's fine. And then I got like, a another email, which just said, like, yeah, we're not gonna care about what you say. We're gonna register them. Anyway. But so.Shawn  42:40  So yeah. We have a petition, or do we have friends in China? Like? Yeah, IKevin Åberg Kultalahti  42:46  don't know. I don't know. If you if if you are the one listening to this, someone out there in the ether, maybe contact us and we can. I don't know. Talk Talk. See?Shawn  42:58  Yeah, it's useful in China. We definitely want to talk.Kevin Åberg Kultalahti  43:01  Exactly. Yeah. So that's, I was kind of funny thing that happened. Alright, so. So next up, we have the controversial opinions. Right. Controversial opinion. And I'll let the Antony go first, because he, he's the one that started the segment file. Yeah, I've been bit by that'sAntony  43:22  gonna make your life. Oh, yeah. Yeah. And people getting bitten by it all the time. So people on Twitter, complaining about it, they're losing hours or losing days of time, and it just shouldn't happen at all. And the reason I think that the Mac has the case, insensitivity by default is because it's kind of a historical thing. I think the previous file system before the current one had that had the insensitivity. The new one supports case sensitivity is Unix based, of course it works. But to retain compatibility and predictability, they've made it incentive by default. And I know for a fact that Adobe Photoshop and another Adobe tool, they don't work if you have a case sensitive file system. So you're actually encouraged to format insensitively, which is just infuriating to me. So for developers, that's obviously really super annoying. Definitely not an ideal situation to be in. And I just think I just think that, you know, these tools should be forced to update and Max, you do their standard thing where they they go, Well, this is the future, this starts happening. And that's that. And am I surprised they haven't done it with the case in insensitivity and windows, I mean, witnesses law schools Anyway, let's face it, but basically windows, I don't even think and maybe you can format NTFS to become cases, too, I'm not sure. But it's definitely not encouraged. It's not even common. I can't even imagine a system where that's the case, because I don't think anything would work properly on it. But yeah, so anyway, my point is specific to better cases. tivity is better. They are different files is a different ASCII code is a different byte. You know, it's not at all the same file name, even for human, if it reads the same, it's not the same file. Yeah. So that bad. Love it.Kevin Åberg Kultalahti  45:11  Yep. That was nice, nice, nice rant.Simon Holthausen  45:17  I think at least in this between us for you, you have a popular opinion right there. Yeah and unpopular.Kevin Åberg Kultalahti  45:25  Something like that.Antony  45:26  I wonder how the two Mac users I wonder how that's formatted there?Unknown Speaker  45:30  That's a good question.Shawn  45:32  I just never rename a file. So I don't have to do.Kevin Åberg Kultalahti  45:36  Yeah. I actually, I did run into this issue, like, not too long ago, like, I saw a file that was a lowercase and it just irritated me so much that I had to, like, fix it.Simon Holthausen  45:51  Yeah, we had the same situation with a readme file. Someone made your case, and the other one was all uppercase, and it causes so much confusion.Antony  46:03  Are you are you on Windows? Yes, I am. Some.Simon Holthausen  46:07  Maybe that's my windows know that. You said Oh.Shawn  46:15  So why should developers use Windows?Simon Holthausen  46:17  Why should I honestly, I just haven't used Linux or Mac yet. I refuse to go into Mac land. I don't know. It's just the lock, in effect. seems too big for me. And it's also twice the money for everything. Yeah, the performance with these m one chips sounds sounds promising. But apart from that, I don't know. I just haven't encountered any performance issues coding wise. Now I think that I guess it just has also gotten better over the years for Windows. And if you really want to use Linux, you can just use the the Linux subsystem for Windows. So you can basically have a Linux inside your windows and instal nodes and all your stuff in there and run it from there if you want to. I tried it out. But yeah,I don't know. I had, it didn't give me the benefit. It just worked. Well, enough for me on Windows. SoAntony  47:26  yeah, yeah. It's not Yeah, it's not the same that the substance is obviously not the same. And Windows is definitely better than it used to be. I only really use Windows now when I'm installing a laptop to sell or something like that. Or repairing someone else's computer. It's still To me, it's a bit chunky dunk is why I'd call itUnknown Speaker  47:46  Shawn conducted onAntony  47:48  like, an extension of the word shonky, which added if it's a common word, but it means like a big fat cap, a bit sort of thrown together, in feel it feels like a sort of patchwork quilt of stuff over the years piled up, especially when in comparison to Linux. And I think like, you know, I can see it as somebody who has used Windows and Windows only that it works reasonably well. Right. It's it's sort of straightforward. But you know, having moved over to Linux, probably 14 years ago, now, I think the UI in Windows is incongruent, compared to the one in Linux, like, everything looks the same. in Linux, it's nice, it's consistent font sizing, it's consistent UI. You didn't have these random tools by all your Wi Fi card manufacturers that pop up and try and take over your Wi Fi. Setting the controllers. It justKevin Åberg Kultalahti  48:35  sounds like you've had just like a pirate who are really bad experiences with it.Simon Holthausen  48:39  Yeah, I for me, definitely. I don't know. IKevin Åberg Kultalahti  48:44  I, especially my familySimon Holthausen  48:46  reasons for not going to Linux is for me is the UI. So? I don't know, it just looks so bad. I don't know.Antony  48:57  I mean, that don't forget the role, like, you know, probably five or six mainstream users for the next year.Simon Holthausen  49:00  That's true. I mean, I just be complete ignorance on my side. And there are some beautiful Linux desktop you eyes.Antony  49:10  If you haven't used it is fair, like, you know, especially when if you were to just start using it one day, you'd probably find it extremely infuriating. It took me eight months of forcing myself to use it before I started to love it. And then now I'll never go back. It's it. It's it's a long journey, like a mindset change from Windows, I would say.Shawn  49:29  Any, ever question as a follow up question? Do you use edge chrome? The same as on Windows, right? for work?Simon Holthausen  49:37  for work? I use Chrome, but I really thought about switching to edge just because it's chromium based now. But in private, I use Firefox. Oh, yeah. Very cool.Shawn  49:50  Can I ask this because the reason I ask is because like, I actually tweeted this a while ago and it was pretty funny. This is the full stack Microsoft challenge because you're already using VS code. You TypeScript, you're using GitHub. And then the you know, then there's a bunch of others that you can use like Bing, OneDrive, Microsoft to do Microsoft OneNote. Azure, of course,Simon Holthausen  50:09  Microsoft Edge.Shawn  50:11  your laptop could be surface, your phone could be surface duo. And then the big one is a gaming mic you can use you can play Minecraft on Xbox. That's There you go.Antony  50:23  That is me for Windows. I really feel that. That's mental. Yeah. Yeah. I mean, I have to say that, you know, for example, I would have probably, historically never use anything. Microsoft base, but you know, vs. Code is fantastic. It really is good. I used to use probably atom I think before that. And it just moved to VS code. It's fantastic. So there's not you know, they're, they're not the company used to be, and they definitely do some good stuff. It's just for me when this is one of those things,Kevin Åberg Kultalahti  50:51  you know, all right. Other unpopular opinions?Shawn  50:56  I've got a quick one, I guess. Yeah, I've been learning goal recently from a new job. And I realised that other languages handle exceptions and errors differently than JavaScript. And I did not know that there was any other way to do this, because my only prior exposure was Python and JavaScript. And they treat them the same the exact same way. But in go, or let's say, in rust, you don't really throw unless you really like, shit is hitting the fan and the error, the programme needs to end right now. Whereas in JavaScript, it's pretty normal to throw whatever error you want, right? And then you just expect someone you document that someone above should catch you, you expect someone to catch you somewhere, and then the programme is going to recover and continue from an error. And so I, I realised this when I yeah, I was just like, you know, exploring, like, what is what's the difference between errors and exceptions, like, I don't know, if you guys have ever thought about it,Antony  51:51  I have thought about it. Because in Java, where I originally came from, there you go, it's two very different concepts, right. So it's an error, sorry, an exception is something quite normal. It's an exception to the flow of the programme or the circumstance you're in. And you can even do exception Driven Programming, which I used to do quite a lot where you just have, so Java has very good exception catching, it doesn't have like JavaScript, we have to inspect what kind of code it is, or read some text of the message. It has explicit types around what you're throwing, so you can make a catch date with multiple catches, and just save this type to this, this type do this. So an error in Java is the thing that if you throw an error in Java, your programme quits, that's the end, right? And error is critical is your system is always never used them. Yeah, when you're programming regularly, you never really use them, you shouldn't use them, especially web apps. But for an exception exception is quite a normal thing. And it literally means the truest term, it's an exception to the flow you expect to be happening.Shawn  52:54  Yeah, so I mean, that that was what it took me a long while to actually get there. Because I've never used Java. And then the other thing that was confusing was go actually names them the opposite way around. So exceptions are errors, and then errors orAntony  53:08  panics. That's complex.Shawn  53:13  Really, really screwed me up. But anyway, the the unpopular opinion is you should not use throw in JavaScript, unless you can really, really avoid it, you should use you should return an error. Or you should return in some sort of error object. I see Simon, give me a thumbs up that.Simon Holthausen  53:27  Yeah, definitely. ThatAntony  53:28  is a hard a hard wiring, rework of my brain if I have to do that.Shawn  53:33  Because it's normal to throw but we should not be randomly knowing like that. Yeah, it's not it's an abusive throw.Simon Holthausen  53:39  I mean, that, yes, at the end, for example, functional programming with this, either. So you either return the normal thing or something, that exception so so to speak. And then you're forced to handle that all the way up the chain. But I think that's also why it hasn't gotten so popular. Because if you have to explicitly handle it every time, which is generally a good thing. I think many people are just lazy and say, Okay, I'm just gonna throw a try catch somewhere very Yeah. up the chain, and just deal with it there instead of having to pass around this either. All the way up. But I think I think would make for much, much more robust code, and more predictable coders think if you if you're programmingAntony  54:33  it, yeah, I mean, if you're writing a language, like you said, you know, if you make it too different to everything else out there, you split the camp into two types of people as those who will adopt it and change that programming habits which should be few. There are people who will just ignore it completely because it's so different to what they used to. And then there'll be the fanatics who absolutely just love it. The fact is everything differently.Kevin Åberg Kultalahti  54:55  They'll just again, be a small campus and just describe the the Elm language Quite well,Antony  55:00  quite possibly I've not looked at quite possible,Shawn  55:04  either or maybe.Kevin Åberg Kultalahti  55:05  Yeah, no nuts. Yeah, butShawn  55:07  you know. And then, for me, the final realisation was that anytime you throw within the anything async. And the moment you have, you know, you call promise and you forget to catch that error just like goes out the window you've never handled that doesn't exist.Antony  55:24  And most the time, I think,Shawn  55:27  once I actually got mad at JavaScript, I was like, wow, like, this is the reason we have shitty programmes in JavaScript is we don't we don't have really good discipline around error handling. Anyway, that's my that's my unpopular opinion.Unknown Speaker  55:39  You should you should stop.Kevin Åberg Kultalahti  55:42  Alright, yeah, I have. I don't have an unpopular opinion. So I'll hop right on to the pics. And good my pic today is a yubikey five seed nano. That's a mouthful. It's like one of these security keys that you can plug into your computer. And so you use that instead of a two factor authentication. Or it I guess it is your two factor authentication? Let's see. There you go. And I haveAntony  56:11  Yeah, yeah,Kevin Åberg Kultalahti  56:12  I don't think so. So I have mine. plugged in all the time it takes takes up like no space at all. And instead of having to, like bring up my phone and get this, Google Authenticator, authy or whatever app you're using, you just touch the device and you're, you're locked in, which is nice.Antony  56:31  What if you What if you lose it? What happens?Kevin Åberg Kultalahti  56:34  Yeah, that's a problem.Unknown Speaker  56:40  Yeah,Kevin Åberg Kultalahti  56:40  no, no, no, but there are solutions to it. I just haven't really, like,Shawn  56:48  you know, either. Sorry for them. Some people cut out the tips of their thumb and then put their yubikey there. So you just plug it in.Kevin Åberg Kultalahti  56:57  That's disgusting.Antony  57:00  Crazy. My friend actually did that when he was when he was like, 16 or whatever the first drive. He dug, he dug the palm of his hand out and stuck an RFID chip in there so we could lock his car by waving at it.Kevin Åberg Kultalahti  57:12  No, I mean, it's the future. cyberpunk future. So just gonna prepare for this. All right, any other pics? You guys?Antony  57:23  Yeah, my pick is so I do I do enjoy, run quite a lot. And I think rum is a wonderful drink. I really like it agreed. And the only problem with rum of course is it's full of alcohol. And unless you're a pirate, you can't really sit around drinking it all day. However, I've recently discovered, there's a whole explosion in the UK of spirits that don't have alcohol in them. So you can get loads of different gins lots of lots of white spirits, you can get sort of gins and vodkas that have, you know, they kind of have sort of plant based stuff in them and they flavour the drink a bit a bit like alcohol, but it quite tastes like alcohol if you drink them need their tastes absolutely vile. I found one recently called clean R, which is basically a sort of alcohol free rum. It's 1.2% it's not alcohol free, but it's 1.2%. That's so interesting. IKevin Åberg Kultalahti  58:11  read this in the in the docs, and I thought it was like some weird cleaning product.Antony  58:17  It's not I mean, it's maybe maybe it's a body cleaning product. I don't know. But it's Yes, it's a rum rum style or rum based, or I don't know what they call it like it like a rum alternative, I suppose. And if you again, if you drink it neat, because you have to try it neat. So it's like it just tastes like water, which is very odd. It's like drinking shots of water. Like that's very strange. But when you mix it with Coke, it really does emulate that kind of rum and coke tastes really really well so weird. And I think it's because it's actually mostly fragrance. It's like It's like it gives it that kind of smoky tobacco we kind of currently smell and that obviously part of your taste is smelling it and it works really well. It's almost like drinking rum and coke even always has that kind of alcohol that you get. So I was quite impressed with it because a lot of these these new on the market and alcohol free drinks are just terrible. seedlip especially is absolutely vile is disgusting. Even if you mix it with what they say you should mix it with it tastes like absolute rubbish. So I'm really happy with this clean code clean our run type spirit, which is just fantastic.Unknown Speaker  59:24  Nice. Cool, cool. Cool.Shawn  59:26  I got a quick one if somebody's still thinking of one. So it is The Princess Bride home movie. Which is I didn't I didn't know about this but during the pandemic, the a lot of celebrities wanted to encourage people to stay home. So they actually recorded sort of word for word performance of Princess Bride but like on their personal cameras with no props, like it's very like crappy quality but with all the stars that you might see like Diego Luna and Jon Hamm Don't ever don't i don't even know like, it's like it's like the most number of stars you've ever seen in a single movie. And then they reenact it Princess Bride. It's pretty funny. It's a classic movie if you haven't seen it already. And I just really enjoyed it. It was one of the only good things that came out of kwibi which is the very short livedKevin Åberg Kultalahti  1:00:16  mobile Oh, that was the network. Oh, right. The moment the mobile like,Shawn  1:00:20  video work thing, TV network thing that Jeffrey Katzenberg, very arrogantly raised 2 billion for and burned it to the ground in two years billionKevin Åberg Kultalahti  1:00:28  $2 billion on a startup. It's amazing.Shawn  1:00:31  And yeah, it is pretty funny. Like his his arrogance, but like could be produced this thing. And this thing is hilarious. So there's the one good thing that came out of quibiKevin Åberg Kultalahti  1:00:42  gonna check it out. Right, let's pick. Do you have something fun?Simon Holthausen  1:00:46  Yeah, my pick is not a thing. But it's a bit. It's an event. It's Fasching. So it's, it's Fasching in German? It's it's roughly carnival.Unknown Speaker  1:00:58  whichSimon Holthausen  1:00:59  hasn't happened this year, of course, because of COVID. But I don't know, as a kid I was. You just dress up you you? Didn't you dress up as something else, like a cowboy or something. That's what I did back in the day. And it was always really fun. And I mean, over time, that excitement diminished a little, but it was always really fun to to at least go to these parades where they had all these waggons where they have sculpt to make make fun of politicians or things. And that all that hasn't happened yet. Not yet. But this year, and I don't know you just know that what you miss until you don't have it. So yeah. I really hope that by next year, this time, we could have fasching again and yeah, so that's this is my pick this day.
Ben McCann joins us to talk about the next version of Sapper as well as SvelteKit. We touch on migration from Sapper to SvelteKit, what's going to happen with Sapper as well as some good news for developers using Webpack.Notes: svelte-loader rollup-plugin-svelte Unpopular Opinions:  Code comments stink! Tailwind is hard to read Static site generators are becoming obsolete Picks:  Kitty terminal Tado Smart Heating Narcos Mexico Audacity Transcript:Kevin Åberg Kultalahti  0:00  Hello, everyone. Welcome to another episode of Svelte radio. Today we have another guest for you all, but first introductions. I'm Kevin, I run Svelte radio and Svelte school, and I'm involved in the Svelte community in general.Shawn  0:18  I'm Shawn, same here, I guess. I don't read anything. But I guess I've been working on recently the Svelte actions package, trying to have a good set of defaults for Svelte to export. So it inspires people to use actions more. That's me.Antony  0:34  I'm Anthony. I'm a CTO of biank also stopped maintainer along with our guests today, which is Ben McCann, who is also Svelte maintainer, a very, very recent one, in fact, not not recently. It's been a while now. So Ben has come in on the back of a huge amount of prs. And he produces them so fast. And he's really pushed the development of stealth itself, but also sapper significantly forward. And yeah, what else? What else is this? There's a lot to Ben. He's extremely polite, nice. And I really, really like that. It's quite refreshing to find the person. And oh, I have to Ben.Ben McCann  1:13  Yeah. It's great to be here with you all today. Thanks for for having me on the show. So how I get so much done, I don't have a day job right now. So that gives me a little more time. I started a start up a few years ago. And so I'm an entrepreneur, and I'm in between companies right now trying to figure out my next one. And, you know, I picked up Svelte to kind of refresh my tech skills and our startup, we were using Angular and don't want to do that again. So it's trying to figure out what's new in the landscape, and hadn't been coding for a number of years as a more of a management role. So I just want to kind of get caught up on two things, and really enjoyed been using Svelte these past few months,Shawn  2:02  I was just just curious how you first heard about it, because you know, it might someone in your position, you might just go for react as sort of the the most popular framework of the day.Ben McCann  2:13  Yeah. So I mean, one of the ideas that I was experimenting with was for a content based site where I thought that this speed was going to be really important, and performance was going to be really important. And so I really liked that with Svelte, you didn't have to download a runtime, like you do with react. And so, you know, the initial page loads were a lot faster. So that's kind of how I got involved. And then, you know, with snapper, there were a lot of other really nice performance improvements. And those were some of the the first things I started working on when I got involved in sapper. So, you know, one of the things that we did was we added preload headers. So when you first visit a page will fetch all the assets that you need for that page. So instead of having to wait for if one script depends on another script, instead of having to wait for the first script to run and fetch that second script, the page will automatically fetch both of those at the beginning. And so we we kind of crawl your dependency tree and make sure that those are all fetched at the beginning. And then, you know, it's also got CSS code splitting, which is something that, you know, had a few bugs in the past recent releases getting that all worked out. But I think that's really gotten to a very nice place now, where we have, you know, it's always had JavaScript code splitting. And now the CSS is really, I think, a lot easier to manage as well. And so with all that code splitting, you know, it's a really nice performance benefit of using sapper.Antony  4:00  So what the one thing I want to ask him, as I mentioned, the intro, intro that you you were intrapreneur. But also, I believe, and I could be wrong here. But I think you're also a VC of sorts. Is that right?Ben McCann  4:10  Yeah, I've been doing a bunch of investing as an angel investor. And so I've invested in probably about two dozen companies at this point.Antony  4:20  Wow. Very cool.Ben McCann  4:22  As far as I know, none of them use Svelte but I'll spread.Kevin Åberg Kultalahti  4:27  I gotta push, you gotta push for for Svelte.Antony  4:31  Cool. Any, any, any successes? Yeah. Those that Funchal,Ben McCann  4:35  um, we actually pretty. One of the first companies we invested in pretty interesting company, they're doing water propelled propulsion in space. And they just announced that they're IPL ng, so they announced that late last year and that should happen sometime q1 we thinkAntony  4:57  very cool.Kevin Åberg Kultalahti  4:58  Wow. I wonder how that works. Yeah, that's it. Yeah, that seems crazy. It's,Ben McCann  5:04  it's got a nice a lot of nice benefits, like a lot of the chemicals that are used for propulsion, traditionally are very toxic. And so that's not not probably not the main benefit of doing this, but it's a nice side benefit. So the idea is basically that, you know, if you're going to launch a satellite into orbit or something on SpaceX, they kind of drop you into a number of like default orbits. But then if you want to get to your own custom orbit fill, fill act is like a shuttle to get you to your final destination.Kevin Åberg Kultalahti  5:42  That's cool. All right, so sapper. Is that point? 28. Right now, is that that's not the last version. Right?Ben McCann  5:50  So we've got one more, at least in the works. Zero Point 29 is coming up soon. And, you know, obviously, there's there's been a lot of talk about Svelte kit. And so that's where a lot of the development focuses right now. But in the meantime, there's still a lot of prs that we've been getting for smaller issues in sapper that we wanted to try to get in and get another release out. So I think, you know, probably the biggest highlight is for all our TypeScript users. we've, we've gotten, I think, probably like four or five changes in two separate 29 for TypeScript definition improvements, which will be a really nice quality of life improvement for our TypeScript users. TypeScript supports pretty new within Svelte in general. And so there's there's a lot of other places in the Svelte ecosystem where we've been making a lot of TypeScript improvements as well. But But sapper is definitely one of them. And then, you know, I think the other place in in sapper zero point 29, where we've seen a lot of improvements are in the router. So a lot of fairly minor bug fixes. But But things that that are just kind of nice usability improvements. There's been a couple scroll tracking bug fixes that we've gotten. And actually, you know, seeing those come in, kind of was a motivation. We ended up rewriting the entire scroll tracking in Svelte kit. And so, oh, wow, those bugs are not in Svelte kit. But more importantly, there's there's a couple edge cases that sapper still has, if you like navigate off the site and come back, the scroll might not be exactly where you'd expect it. It works pretty well, in sapper today, but but in Svelte kit, I think we've taken care of all the different edge cases, though, that we knew about.Shawn  8:05  So, so I'm gonna, I'm going to be the voice of the people who are less in the weeds. And since we have with, you know, with two people deeply involved in this critical week, we have a high level, what is the difference between separate socket? Like just, you know, like a recap, because I think it's helpful for listeners.Ben McCann  8:24  So I think the biggest difference and you know, feel free to jump in here, Anthony, to with your thoughts. But I think, you know, the, the biggest change in my mind is the developer experience, you know, Svelte kit is built on top of snow pack and ESBuild and so you're gonna see compile times be a lot faster. And that's something that's a problem in larger separate projects. You don't notice it necessarily when you start out as a new user with Sapper. But when you start to grow your projects, some of the compile times with separate can get to be a bit longer. Our hope is to fix all of those issues and make it a really, really smooth experience with Svelte kit.Antony  9:11  Yeah, I think I think I agree with that entirely. That that's probably the biggest benefit. And it's definitely the one that I'm looking forward to the most, which is so so for sort of context here, we have some pretty big sapper applications. And a 1.1 of them was taken two minutes to build when you're first booted. It just runs the dev environment, which is obviously really bad for local Dev. We low times work 20 seconds or so which also kind of sucks. And I did actually nail that down recently, very recently to I was using Svelte feather icons, which is it is a tree shakable library of icons, and but there's probably like 400 icons in there. Svelte will still compile every single icon every time you use that whole library. So if you've got like other libraries that use it as well or other modules, it's going to come pile all up all the icons few things a couple of milliseconds, but it builds up. And I basically took that library. And I did, I did deep imports as rich Harris. And in fact, the author suggested, I also then made my own little cut down version of that library. And it took it took my build time down to six, a sixth of its original build time. So it's now 20 seconds to start. And it's a big application. So that dev experience that alone has made my whole life a lot easier. Svelte kit, it should be like microseconds, right should be so tiny to get the application up and running. We already seen him in salt kit and snowpack itself, changes you make reload the instant are always you know, you always don't think it's happened because it's so quick. So absolutely 100% that is the biggest benefit. I think the second benefit, which is also the place where kit came from stock it came from other is. So when you build an application sapper, everything is kind of treated the same way, you're building a dynamic application, you can export it as a static site. But you've got these two options. And it's kind of one or the other, right, there's no middle ground. The idea with kids is that it will build the application in a more optimal way. So you'll break up bits that keep well for you break up bits that are static and make them as static as possible, it will take bits of dynamic amount of dynamic as possible. And it will take up bits that sort of in the middle and do the most optimal thing. So you'll end up with application that sets itself up in the most optimal way for your what your application is, we should should make it really, really nice to host and also cheaper to host and also more efficient to run. And I think on top of that, then I suppose the other benefit to kit is the modularity, which we're trying to break into into modules where a sapper is kind of an all in one. And then the final thing as far as the adaptive. So the idea being it's, it's serverless first, but not restricted to serverless. So you can host it any way you like. But it's designed so that you can host it on the serverless platform, which is probably the ideal hosting environment for this very, very easily. The adapter defines your entire deployment layout. So there's a multitude of adapters and you can basically just pick your adapter, run the run the keyword is currently adapt, and it will convert your application into something that's suitable for you want to host it. And I think those are probably the top the top five benefits as to how close you are to the project right now. We're obviously all close. But rich is the one who's currently using it production. And it's very much of course, his project. And so I think that when it when it comes to pizza, which will hopefully be soon then there'll be some really interesting things that probably we didn't even even have that yet.Kevin Åberg Kultalahti  12:40  Now I've been I've been using socket today actually to to build the new Svelte radio website. And it's it's been great. Except for for like the the issue of no documentation. But I mean, that's expected, right? Yeah, it took me it took me a while to figure out that fetch was actually something that came with a load function, rather than using like a this.fetch thing.Antony  13:08  So I would say currently it is I think this that's one of the things that sort of, what do you do with fetch and load? how's it gonna work? This is one of those discussions that kind of goes round around a lot. I know Ben's been involved in discussion, actually.Ben McCann  13:18  Yeah, hopefully, we'll have some documentation coming soon. I actually have drafted a set of documentation, just based off the sapper docs and then updating it, and I'm sure I, I missed some stuff. So we'll need the community to give it a look. And find all the changes that I missed. But so I've sent that out to the other maintainers. And for review, and hopefully, you know, I don't know if we're ready to publish it yet. But at least we're working on docs internally.Kevin Åberg Kultalahti  13:47  Yeah. That's great.Shawn  13:49  It might be an interesting step to publish the docs without publishing the code. It just to get like feedback before you actually, you know, 1.0 the code. Yeah. might be an interesting. Yeah, we'reBen McCann  14:00  definitely I think, gonna need some some feedback on the docs. I think, you know, there's hope there hopefully, pretty close. But there's, there's enough of them that I'm sure there are things here and there that we've probably missed.Antony  14:15  So yeah, I mean, so, so interesting, the interesting approach that that will be like a blackbox approach where you've got the product and you've got the documentation, but you've got no access to the source. So you only have the documentation to look at to figure out how things work. That's actually an interesting technique. I don't know whether it would be really frustrating or just, you know, would be a really good exercise. But yeah, I guess, I guess, if you don't have the source code available, you have to rely on the docs. And that's that could work. No,Kevin Åberg Kultalahti  14:43  I mean, it should for that should force the docs to be really good, though. Right?Antony  14:48  Well, yeah, absolutely. Absolutely. They have to be, sir. We could discuss it maybe when our next maintainers meeting is but we can we can bring it up maybe.Ben McCann  14:59  Yeah, I think I One of the things I'm really most excited about with Svelte kit as a maintainer, which probably doesn't, doesn't sound exciting as a user is that we've now got a configuration file, which is like I kind of a, obviously, basic feature. But, you know, we had a lot of different prs in sapper, that that are in the queue that depended on adding some new configuration option. And we really wanted to find a way to do this holistically, like a lot of these different PR suggested different ways of configuring your project, or whatever new option they were adding. And so we didn't want to have, you know, half a dozen different ways of enabling any new feature. And so now we've kind of got one standard way of doing that with Svelte kit. And I think that'll block a lot of development efforts, where, you know, we we wanted to come up with a holistic way of doing it before merging all these prs. And so, hopefully, a lot of the prs that are in the sapper queue, we can revisit with Svelte kit and, and get those in.Antony  16:10  And I think I think in terms of curation and the original, the Holy Grail for rich is no configuration at all right? But I think he's realised now, that's probably not a possible thing, because there is, people have different use cases. And the project is quite widely used now. And I think that one of the fallout we saw from not having a config file is that every other project that uses Svelte has a config file. And they all use different formats and these different ways of doing things and different namings, different variables. So we've created the Svelte kit config file, and almost defined the format of what Svelte config would look like. And it's natural to do that, I guess. But what it means is that you'll see a few of the projects around snow pack being one of them. Were there config file format for Svelte actually changed based on the ideas from Svelte kit. So, hopefully, yeah, we'll have reached this kind of we've kind of converged on this final config. layout as much as possible, at least anyway.Shawn  17:04  It's very cool. This question actually makes me ask another dumb question, which is Svelte kit seems spiritually much closer to Svelte than Sapper was, like, separate seemed like a different project altogether, like it could have been run by a different maintainer is, is that, you know, the config files is named svelte.config.js, right? Something like that. I think I think, right, like it's not svelte kit dot config.js, like this is Svelte like we are we always, you know, essentially, is the meta framework, kind of just like just merging into the framework, the framework itself.Ben McCann  17:41  I mean, I, I think that though, they'll always be separate code bases, and like, you should still be able to use Svelte without using Svelte kit. But, you know, for for folks that are getting started, we want to have kind of a blessed path that makes it easy to get up and running. If like, if you look at the Svelte FAQ today, there's like a question that says, you know, what routers should I use with Svelte? And there's like, half a dozen different recommendations in there. And it's, I think, hard as a beginner to know what the differences between all those routers and which one you should use, and in the future that that answer is going to be Svelte kit. And, you know, we want to make sure that there's kind of one way to do development that works really well that everybody's, you know, put their eyes on and made sure that we've made it a good experience. And so you'll still be able to do all the things you can do with Svelte today and still, build your own Svelte project without using Svelte kit. But, you know, for for folks who just want to get something running without having to, to put a lot of thought into having how to put all these building blocks together, we want to make that really easy. Kevin Åberg Kultalahti  19:02  So So this, this makes me think of of like an sp a mode? I think that's been something that that's been missing in sapper for forever, I think. Right? So is that something that you could do with just one of those adapters and Svelte kit ?Ben McCann  19:18  I don't know if it'd be an adapter or a new option, but it is something that that I expect will be coming we've, we've got a ticket internally to build that. So nice. And I actually had a PR to do that in sapper. And one of the things that got hung up on was, you know, how, how do we want to configure this and so I think that that questions, but I'm blocked now and hopefully that's a feature that you'll see coming.Antony  19:44  I think one of the one of the problems with sapper was that people really didn't know how it related to Svelte at all. Like Sean says, it's almost like a different maintainer. It's, it's a different project. And so I think one of the ideas was Svelte kit is That we bring together. It's a kitten round Svelte rather than an application framework that happens to you. So if that makes sense. So it's a series of tooling that allows you to take Svelte from a UI framework or UI language or UI library, whatever you want to call it into something you can build a full app with. Separate was separate app builder. But it wasn't always clear that that's what it was for. And yeah, like Ben said about routing and stuff. It was confusing. It's got its own router. Can I use it with externally? No, you can't because it's so cool to SAP because it does. SSRS pa and if you baked into the product, so yeah, so Svelte capable. The idea being it's like an extension of Svelte It's a superset of Svelte It's a thing that sits around Svelte. Now the caveat to this, of course, is that there is still a notion of a Svelte kit thing, so you have like attributes prefix with Svelte kit, things like Sapper noscroll translate directly to Svelte kit, noscroll. I can't recall that actually, Ben. But the notable attribute is prefixed with the kit, no tap notion because it's specific to to kit and it means nothing outside of that.Kevin Åberg Kultalahti  21:12  I've actually been looking at the changelog. There's not much in there in the in the small kit one, but it's fun to see when when new new versions go out.Antony  21:25  The Svelte kit changelog, yeah, is thatKevin Åberg Kultalahti  21:29  it's in the it is yeah, you can find it on. IBen McCann  21:36  actually didn't know there was a change log. I've never seenKevin Åberg Kultalahti  21:41  nothing in it.Ben McCann  21:41  Yeah, it might not be updated.Kevin Åberg Kultalahti  21:46  Well, I mean, it seems to be updated. I should find it like,Antony  21:51  we're on like version zero point next 37 or something right now, I think and it doesn't get released that often. So it's I mean, it's it gets it gets a new master branch every like, I don't know.Kevin Åberg Kultalahti  22:04  Yes. So let's see the latest. latest patch notes are prevent infinite loop when fetching bad URLs inside error responses. And handle assets path when pre rendering.Antony  22:20  These are quite recent. I think. This is like a leak. I thinkUnknown Speaker  22:29  PMP.Ben McCann  22:32  is, is it's set up with changesets, and it's probably auto generating the change log basedKevin Åberg Kultalahti  22:42  on unpkg anyway. It's fun to see. Oh, yeah. Even though it doesn't make much sense.Antony  22:49  That makes sense. Yeah. The changelog is checked in. Yeah, fair enough.Shawn  22:53  All right. I've got other a couple others have begun to read questions is the goal. So is the goal to one to one parody with sapper? Or do you think we'll have to lose anything? I know there'll be a migration path. But let's talk about, you know, what's the trade off? Like what are we? Are we not losing anything?Ben McCann  23:15  Yeah, I think that's been one of the hard things with the development of sapper is we we do still get prs to sapper. And, you know, we've we've been trying to merge as many of those as we can, at the same time that there have been some that have proposed new features. And I think, like, we don't want to be in a situation where people adopt a new feature on sapper. And then it's not present Svelte kit. So, you know, trying to be really careful that any changes that we make and sapper, we're also making an Svelte kit. And they're, they share a lot of code, but they're also different code bases. And so some of those changes are easy to port, and some of them are not. And so, you know, it's been kind of a case by case basis to figure out like, which are ones that we can easily add to both versus like, which are things so we should just wait for small kit and add them there. Go Yeah, IAntony  24:15  think I think Sapper is in a kind of like a maintenance mode, isn't it? It's it's in a mode where we still support it. We're still obviously interested in fixing bugs and things because people rely on it and it's time to migrate. But the idea being a migration path is so smooth that anything you can just go straight into kit. And we have that many features. That's That's the goal. Anyway,Shawn  24:38  the thing the thing I've never been sure I've never used ESBuild. I've like looked at the docs, but I like you know, we're essentially switch switching. You know, the bundler from either roll up or whichever we call it Webpack to ESBuild. And like, Is that is that a smooth process like don't we lose stuff like You know, whenever I want to use something in my tool chain, like I know, I can either pick Webpack or roll up and it'll probably work, but not have when it comes to adopting iOS build I have no idea.Ben McCann  25:12  Yeah. So the if you use sapper today, it's actually invoking your builder for you. And it's, it's tweaking the builder and hidden ways to which it so like sapper has its own internal plugins that I'm trying to remember exactly what they do now, but they, you know, I think a lot of this stuff around like, like they inject your CSS files into your JavaScript files, and they do code splitting on your CSS. And then they it pulls out information about your build in order to build the preload headers that are in sapper. And so we're we're in kind of this tricky middle ground right now where you can configure your build, but you don't have complete control over it and you're not executing it. And I think that, like there are parts of that, that hopefully are a little better structured in Svelte kit, you know, so like, one of the things that people have been asking for for a long time, is the ability to do basically what we've called adapters, and Svelte kit, where, like, we've built these adapters to allow you to host on all types of different environments. And so like, you know, we want to allow you to host on an environment that doesn't require node, for example, or like we want to allow you to export to static pages, or vercel or now are these different hosting platforms. And I think that was kind of tricky to do before. And so there with Svelte kit, there are still parts of the build tooling that are not directly managed by web Packer roll up because they're, they're managed by our bundling process. But now we have first class support for all of these different platforms.Antony  27:14  I think, I think also when Ben talks about internal roll up plugins and internal web pack plugins inside inside sapper, and it's true what what you see in separate as a Webpack config or a rollup config, it looks a lot like a rollover, Webpack config, but it's not really what it is. It's a configuration file. That one has some separate stuff injected into the output so sapper tells it where to put its files. And but also the whole thing, exports things rather than actually run through roll up and exports things that sapper then augments, and then that gets pushed into roll up programmatically, right. So it's all kind of an illusion, really, with sapper, it's very, very heavily tied to the internals of how it works. I think it's the size one there's reasons for that. And with Svelte kit, it is yes build but actually one of the core concepts of snowpack, which is what what is build is running through snowpack defines a no locking strategy. So you're not locked into using the snowpack when you build a snowpack project. Therefore, you can remove snowpack and build it where else you want. There's no nothing specific there to snowpack. And that stays true for Svelte kit. Not that you can report snowpack necessarily, but because it's quite built in because there's a saw, but what you're getting there is you're getting as billed for your local dev environment, why should developing but when you pump the build out in the side, bundle from production, you're using just pure roll up and all Webpack whereas I think I think it's got broad support. Now I don't know if it'll have Webpack support, but it will have just pure output via roll up. And also as another kind of layer of indirection here, the esbuild Svelte, the esbl plugin uses the roll up Svelte plugin. So therefore you can actually adapt that because it's still compiling Svelte through rollup through your Svelte, right. So you're not really escaping from from bundlers in the most common sense, rollup is still there in order that you can pull things into you as build, and they get converted to JavaScript. And then the JavaScript is what is built is compiling. But that's all in depth. So when you come to produce a build for production, you're using roll I believe it's a plugin now and so your final production build is still a rollup build. He probably even more of a rollup build than Sapper uses right now.Shawn  29:41  That's actually a really nice Yeah. Thank you thatBen McCann  29:44  there were also I think in sapper some sometimes some confusion around like do I do things and roll up or Webpack or do I do them and Svelte pre process. So you know, if you want to use post CSS, for example, Like there are multiple ways of setting that up, and some work better than others. And so, you know, hopefully some of those stories we can make be a little bit clearer with Svelte kit. Yes, I think that's one of the things I'm most excited about in Svelte core is source maps for pre processors. So Svelte has had source map support from the beginning. But if you want it to use preprocessor, then you lost source map support. It was something that that just got implemented and one of the recent versions. And there's a number of kinks that we've been working out over the past few weeks. And so, you know, that's been entirely driven by the community. You know, there's a couple of folks, Mila, who and D massage that I'm terrible with the usernames, I've probably got this slightly off. But there's a lot of issues today where like, if you try to use TypeScript with Svelte, where the source map support just isn't great, because TypeScript support with Svelte is so new, I think that you'll see that get fixed in the next couple of releases. So there's going to be the next release of roll up plug in Svelte and the next release of Svelte will both have additional fixes. You know, that that supports getting to be fairly good today. But there are places where things are off by a line here and there, which makes it difficult to use. And so that's gotten really quite a bit better over the past weeks. And that's going to be really exciting for a lot of users.Kevin Åberg Kultalahti  31:43  That sounds great.Shawn  31:44  I actually had no idea I always saw it like in the pre process code. There actually is a way that you can, you know, modify the source map and send it back to Svelte. I had no idea that didn't work.Ben McCann  31:58  Yeah, so there is and so, roll up plugins, Svelte executes the preprocessor and executes the Svelte compiler, and it needs to hand the source map from the preprocessor to the compiler. And that was like a one line change to make, but it just hadn't been implemented yet. Because it was really a pretty new feature. And so that was kind of like one of the final pieces that we need it. Like we built these features independently, and then we just needed to hook them up. And so that's going to be in the next release. Overall, a plugin Svelte 701 or seven, one our I don't know what the version number is going to be. But yeah, after seven.Shawn  32:46  So so there's only only programmers debate what comes after seven.Kevin Åberg Kultalahti  32:52  So this is like, there's a lot of overlap here. With the language tools. It sounds like are you working like closely with with Simon and whoever else is working on those?Ben McCann  33:05  Um, yeah, I think that things for this particular feature, like they, it hasn't really overlapped with language tools a whole lot. But Simon's helped a lot with a lot of the TypeScript improvements. Like in Svelte core, he's been adding type definitions. And so I think when you combine these different features together, the the type definitions and the type definitions that are in sapper as well, and in the source map support, the TypeScript story is going to really start to be a first class story and become a much, much better experience.Kevin Åberg Kultalahti  33:49  That's awesome. A lot of people want one TypeScript. From what I understand. Yeah. You know, Ron, man. Okay, so. So there's this Svelte loader loader thing was started Webpack thing.Ben McCann  34:08  Yeah, so I think probably all the maintainers use roll up, which means that unfortunately, the Webpack plugin had gone unloved for a little while. But Webpack five recently came out and spurred a bunch of interest from the community and updating that. And so we've recently gotten a good chunk of prs into that project. And so the next version is going to support web pack five, it's gonna support node 14, and it's got a completely rewritten HMR implementation. There was kind of a HMR implementation in there from the Svelte two days that never worked with Svelte three. And so that was always kind of like the top issue. In that repo that the readme says there's HMR support, and there, there really wasn't. And so that that's going to be a really exciting release for web pack users, which I think is probably like, I don't know, maybe 30 or 40% of Svelte users. It's, you know, it's a sizable chunk. Yeah, I think it's gonna make life a lot better for a lot of people. And so, you know,big shout out and thank you to all the folks from the community again, that was another thing that was entirely community driven. So non 25 and Smitty, VB and Greek so you know, got got a lot of those really drove that whole process. I know No, it's pretty funny cuz like,Shawn  35:49  funny cuz that's, those are their discord chat names as well. So yeah, those are their names as far as I'm concerned.Antony  35:56  Sometimes they get names as well. Yeah, that'sShawn  36:00  right. sweatsuits. Six, yeah, yeah. Consistency is good.Kevin Åberg Kultalahti  36:06  Yeah. Right. So So we have some some questions from the from the community. We, we asked for, so we have one here. Should should people with separate apps panic? Should they panic a lot? Or just a little? I don't know.Ben McCann  36:25  Yeah, I mean, the there's gonna be a fairly easy migration path. We've already like migrated the example apps, though, externally, those those are still on sapper. But within the Svelte kit, repo, those have all been migrated to Svelte kit. And like that was a fairly straightforward process. We need to put together a migration guide still, but that's something that we'll do. And actually the real world sample app rich basically completely rewrote, because it was never really written in no way that sapper apps should be rewritten, should be written so that that one was a bit of a larger change, just because there was a whole bunch of other improvements that they got made there. But like, if you look at the Hacker News sample app, that was pretty straightforward to port that was a pretty small set of changes. And so the there's so much of the Svelte code, like all the the client side Svelte code, especially, is is basically the separate code. And so like the code that's going to be in your project hasn't really changed. Most of the changes and Svelte kit are all like, they're in the development server, and they're there on the server side and and sappers are Svelte kits internals. And so you know, it's, it's the things that users don't really touch in their projects that are changing the most.Kevin Åberg Kultalahti  37:55  Cool, sounds good. No question is so from from our user? How can they help out pretty much help the core team? develop these things? Ben McCann  38:13  Yeah, I think that what Svelte needs more than anything, is people getting involved in helping us review issues and prs. There's just a lot of them, and it's really hard to keep up with them all. You know, and we, it's kind of a catch 22 like, we want to encourage more people to, to get involved so that we have more help with those things. But, you know, it's it's so hard, keeping up with them all to really get people involved with with the projects submitting prs. And, and so I think it's really, the review of those things. That's actually how I ended up becoming a maintainer was, I kind of noticed that their sapper PR queue had grown quite a bit. And I just went through and started leaving comments on all of them unprompted. I wasn't quite sure how that was gonna be received. But luckily, it was received well, a lot of those prs have, like since been been checked in and there's still a lot more I know, that that we need to get get to and get in sort of trying to make it through that backlog. I think another thing is, we recently put up an open collective. And so thanks to everybody that's contributed to that, you know, I don't know that we've had a lot of communication about how our, we're going to use those funds. But I think one of the things that we're most interested in is bringing on somebody to help with triage of some of those things. And that might not happen immediately. But, you know, as we grow a bit of a balance, that's one of the areas that we're going to be looking at is that is probably that and ways that we can accelerate self development. Makes sense,Antony  40:00  I think, yeah, in terms of reviewing prs. Like, that's also a similar way to how I got in was reviewing, reviewing issues and sort of, you know, figuring out if there are real issues or not issues or whatever else. I think that reviewing prs is super useful, giving the code a try. And the hub project by GitHub makes it really, really easy to actually just test this out. You check out Svelte use hub to change the PR, and then you just basically run your, your test project against against the PR, so it is quite easy to get set up. And then it's just figure out if it works or not really. So yeah, it's all stuff that goes to commuters guide again, it's also something that we haven't really got around to building properly yet. Yeah, I think Yeah, whenever that sort of stuffs abusableBen McCann  40:43  I think one of the things we we'd really love is to have kind of a guide to the code and a contributors guide that you know, right now we we've got a contributor sky that kind of has some guidelines about how to contribute to the project, but doesn't really help you get ramped up on the code base. And there's really only like a pretty small handful of people, you know, there's like three or four people that know the code base really well, because it is a pretty comp, Plex piece of code. And so you know, if anyone wants to take that on, we would love to have a better contributors guide that kind of describes how the code base is laid out. And like where the core pieces of functionality are, and how they fit together and how they work to help get more people ramped up in the community to being able to contribute.Shawn  41:37  I've actually so a lot of times, when I introduce fault to the people, I actually send people directly to the code base to show like, it literally, you know, to prove there's no runtime, you just show the direct instructions. I forget the name of the functions, but it's literal. So most of the functions are just like one liners, especially when you're when you're doing like the DOM mutations. Yeah, I mean, I think I think that's, that's one way of really getting familiar with the Svelte codebase but also just understanding Svelte fundamentally. Yeah, you've inspired me, I want to go check out some prs.Kevin Åberg Kultalahti  42:14  I think maybe like a, like a video tutorial or a screencast showing off, like how you would, how you would review a PR or do anything more major, rather than just like that's typing out issues. Could be something.Shawn  42:33  Yeah, we could put that on the YouTube channel for civil society. And yes, get more eyes to it. Maybe it might be an interesting method. But yeah, it sounds like it sounds like there's a bunch of ways people can support like, monetarily, peer review, and then I guess more documentation on the codebase. Quality.Kevin Åberg Kultalahti  42:52  Cool. All right. Do we have any, any other interesting topics we want to talk about? before we head on to pics,Antony  43:04  as an interesting one here, this is from the Twitter but it's obviously not directly related to what we asked, but it's when do you think the first roles is felt developers will start to appear? I mean, that's an interesting question. Because from what I understand, there's actually quite a few roles out there appearing now. I think decathlon were most recently hiring. I'm not sure what the hiring for could be new team. It could be the existing site, because for those who don't know, the European decathlon sites, which is a huge, huge brand in Europe, and in the UK, in fact, then their new site, their rollout in Europe is actually running Svelte to one the UK is running the legacy code base. It looks like so maybe it's porting the UK one. I'm not sure but they're absolutely hiring right now. Yeah, look for Svelte developers. There's quite a few jobs in the in the jobs channel on discord if you want to have a look through some directly related to Svelte jobs. I hired two stockbrokers, you know, I had literally four stock bumpers, so that's good fun. I'm not hiring at the moment, but maybe again in the future, a bit of luck. But yeah, so there definitely are jobs out there. You just have to sort of know where to find them.Kevin Åberg Kultalahti  44:10  Yeah, I saw one. By like one of the largest Swedish universities looking for a Svelte developer. I think for some sort of like data is not sure. Nice. I was interested asAntony  44:26  I saw, actually, a school seeing on them discord today, a school, a school child, 15 year old has actually said that his school's asked him to learn Svelte as part of a project. Isn't that super interesting? Yeah, I know. He's like, he's come to the school with his homework. Like, they've taught me to do this as well. How do I do it? Is itKevin Åberg Kultalahti  44:48  the guy that that has contributed a lot to Svelte society website lately? Maybe?Antony  44:53  I don't know. I don't think it is because he was saying that you found something very complicated. I was like, well Kinda yeah but also not, not really. But it's weird there because like if schools are teaching Svelte muscles can't get better than that.Shawn  45:10  I guess I should also mention we keep track of you know, notable production, usage of Svelte on the tube and as well society Twitter. The typical ones that we always raise are like Spotify Apple, IKEA. What's IKEA? Yeah. And then I guess the data in the database angle I guess the the official government. German government site for vaccinations is also in Svelte. We have Square Enix and Disney they had like Kingdom Hearts and their their main page was in Svelte. There's, there's like a bunch of Alaska Airlines for their booking reservations, uses Svelte as well. There's there's just a bunch and these are just like the household names. Obviously. There's there's a bunch more Schneider that areAntony  45:54  beyond Of course, you know, a start.Shawn  45:57  Yeah, exactly. But I'm not so much in favour of like Svelte jobs as just like, you know, web developer in general, and then just pick the tool that that fits you. So I'm not I'm not too concerned about having Svelte in the job title.Antony  46:10  Yeah, I think I think the reason I like that concept of Svelte jobs is because, you know, if I were to stop doing biankin, going in a job, I really would want to just carry on using Svelte and I would be looking for a specific style job, I wouldn't be looking for a front end job necessarily, I'd be looking for a Svelte job. And just because it's something that I enjoy using every day, in fact, like I said before, on the show, I'm sure, it's kind of, I'm a full stack developer, I could do any part of the stack. And I've always kind of avoided front end. But actually Svelte is the one thing that's brought me back into the front end thinking I really enjoy working on on webwise. Again, which is, which is quite a statement, really, because it's still quite difficult, you know, there's still browser compatibility to worry about, and all that kind of stuff, you know. So I think it's valuable to have a Svelte specific job, and I think that's a good thing that that's being advertisedKevin Åberg Kultalahti  46:59  in that way. Okay. Yeah. So I shall go, then, yeah, you should, it's your second.Antony  47:07  So this is gonna, this is gonna This is where we where our ratings dropped to zero, right? So yep, code comments are bad, I just want to say that, all comments, they should be banned. liberals in the past to remove them. So you can't commit comments to your code base. The reason being, if you've got code comments in your code, it means that your code is violating one of Kent Beck's four main rules is Kent Beck is very prominent, this sort of stuff, but he is absolutely right in the code should show intent. And if you're writing comments to show intent, then your code is obviously not showing intent. And for me, that is a direct, you know, a direct violation. So for those who don't, who can't back, have a look at my Twitter, he's very, very prominent software Dev, a very long time. A lot of the stuff if you kind of follow his guidelines, makes them much, much cleaner, much more readable, much more sensible, logical code, it's easy to maintain. So the priority map, as he does, it has four elements from lowest to highest, the lowest element in his map is fewest elements. So that's the fewest component parts to make it a whole. The next two are to no duplication. Obviously, you know, try principle, don't repeat yourself. If you've got up to code here in there, it's a maintenance headache is a testing headache, and you could get in sync. So remove that into a single place, abstract it and call that, again, within reason. It's like a hard and fast rule. It's within reason. And then the second one on that level is revealed intention, your code should read, in that it reveals that tense so that it makes sense for the person reading it. And the additional downside to comments in this concept is that a comment is not testable. So a comment can go out of date when you write the code. And someone can change that code. Not that the comment, there's no test to check that. So therefore, the invalid if somebody is relying on that comment, which, for comments to have a purpose, they'd have to rely on it, then it means that they're reading something which isn't true and potentially even does the opposite of what the code says. So there are danger if one comment is false or wrong then or even misleading, because it's English language, right? Or whatever language but mostly English. And it can actually give the wrong impression about the code. It can say the wrong things, and then you end up misunderstanding the code and potentially writing books. So therefore, my my, my notion here is that code comments are actually bad. And of course, it's his top element in this map is passes the tests. That's probably the most important of all, no matter anything else. As long as it passes, the test is good. But back to code comments quickly. I believe that code comments for code smell. I believe that code comments are a bad thing. They're damaging, and I genuinely believe that they're, they do more harm than good. And that's my controversial. That's my kind of speak now.Shawn  49:52  It's a very good one.Antony  49:53  A controversial opinion. I always get flamed on this for Twitter, I always get flamed non stop. So So justShawn  50:00  to be super clear, the entire Beyonk codebase does not have comments.Antony  50:05  You are correct. Not a single comment. Well, it does make you write better code. It does make your app decayed. Do you?Shawn  50:16  What about Svelte? Svelte prs like D Do you? Would you reject a PR over? You know, an excessive comment of you probably allow so small commentsAntony  50:30  Yes, so the Svelte codebase goes against a lot of the things that I believe in standards like linting, and things like that it goes against them. This is Rich's style, and his you know, the general maintainers. A great stylist is totally fine with me. And comments are the same, right? The notion is that comments are included that code base, therefore, I'm totally happy with comments being there. And so I accept prs with with code comments, because it's not a violation. However, I will admit to when I see rich adding code to the code base, we've Ben adding code to the code base. But there's the comments. I'm like, No!! I'm totally right and totally fit. But I've just like, it's the way it is how it is. The weird thing about linting in about code style is it actually doesn't matter. What's more important is that everyone uses the same code style. So therefore, if this is the code style Svelte code base, and I'm more than happy that we don't spend time bike shedding about whether they should underscores and variable names or use camelcase. I'm much more happy that we should just have a single style. And actually, I'll be honest, I'm actually coming around underscores and variable names now, which is really not voting. Well, my team because we've always been against that. But hey, you know,Shawn  51:43  progress.Kevin Åberg Kultalahti  51:45  Yeah, we actuallyShawn  51:46  had someone comment on Twitter that the Svelte code base does have a bunch of underscores stuff, and it's very readable. It's quite readable.Antony  51:54  It is it has underscores internally, and it uses camel case for external API. Yeah.Shawn  52:01  Sorry. Good.Kevin Åberg Kultalahti  52:03  Yeah. So any, any other unpopular opinions? I have one, a short one, butShawn  52:09  Well, I thought that was such a good one. It's hard to follow up, Ben. Yeah. Yeah, I'llBen McCann  52:14  jump in and say, don't use Svelte kit yet. Just use saffer. For now. I know people are really excited to use Svelte kit, but I think you're just gonna cause yourself more trouble. There's no documentation for it yet. There's not really any support for it yet. Like the things are still changing. And so I know, like people are starting new projects, and I don't want to have to migrate. But it's it's not going to be a painful migration. And it'll be be a lot less pain than using a project that we don't really intend for people to use yet. Yeah. Yeah.Unknown Speaker  52:58  It's popular here.Kevin Åberg Kultalahti  53:01  Yes. So so I have I have a small, unpopular opinion. Maybe it's not unpopular, actually. It's hard to read tailwind. I started tinkering with tailwind and it's it's actually quite okay. was better than I thought, but, but reading it is really, really rough. Having having HTML for with classes.Antony  53:23  So your opinion is that it's hard to read tailwind?Kevin Åberg Kultalahti  53:28  Yeah. I guess so. Wow.Antony  53:31  That is that is the burning fire, pitchforks, pitchforks and Dawn? Well,Kevin Åberg Kultalahti  53:37  it's not so much that it's hard to read. It's more like, it's just like a jumble of everything in the HTML, and I get confused. So I'll probably learn.Antony  53:48  Who knows. I'm no sale would fun. I probably inclined to agree with you. It's it's class overload. But But yeah, I can see that definitely causing some controversy.Kevin Åberg Kultalahti  53:57  It is nice, though. Like, for this one project. I've tried it on.Shawn  54:02  Ben, what's your take on too, andBen McCann  54:05  I haven't used it yet.Shawn  54:08  You probably have an opinion, though. You've probably looked at it.Ben McCann  54:12  I haven't Yeah.Shawn  54:21  I won't. I won't comment until when stuff but I can I can then jump in with the last unpopular opinion, which is that serverless is killing static sites. And I just realised this, that like there's really no more reason to have like a traditional static site generator that jet pre generates 1000s and 1000s of pages like we used to benchmark sapper on like, how long does it take to do 30,000 pages like doesn't matter anymore. And I realised this partially because this socket, partially because of remix in the React ecosystem. And next JS everyone is is moving towards serverless says like the the rendering unit. And I think that's why like, the reason we had static site generators turned out so many sites was because compute was, you know, centralised and we needed to run the build process and then distributed on a CDN, and that model worked. But now that basically, every hosting platform has serverless, that it's super easy to spin up, that we can just like, run the the page generation on demand and cache it. And there's no need for a static site generator anymore. So that's my opinion.Antony  55:39  Yeah, I think I think that I think I kind of agree with that opinion. Because obviously, like, generating on the fly is effectively static site generation, you're generating something into the cache. You're just not doing it. At the time. Yeah, yeah, you're doing it, you're doing it kind of on request on requests for the first request. Makes sense. If you've got a sensible caching strategy and a way to clear that cache then, then yeah, I think that's a great, that's a great idea. Yeah.Shawn  56:04  So I mean, I don't know if I don't how profound This is, but like, you know, obviously, I used to use Gatsby a lot. And Gatsby is like, if this insight is true, then Gatsby's kind of dead. So is like every other static site generator like it's fine. I still use it because it's like a tried and tested codebase. But just the developer experience of like updating a page and not having to wait for a billion minutes for it to rebuild. It makes it a superior paradigm already. Absolutely.Kevin Åberg Kultalahti  56:34  All right, picks. What do you have? We got to go fast now. I gotta runAntony  56:42  Right? I pick the todos smart heating system. So I've been when asked how my boiler fitted ask the fitter to fit me this like the cheapest possible wireless receiver because I was going to get smart heating and then I didn't getKevin Åberg Kultalahti  56:56  a random pick. Estela randomAntony  57:00  pretty good, right? But anyway, more random Shawn, they say I was getting fitted and never thinking about it and then one day this cheap smart heating system this this cheap sorry this cheap wireless heating system which I will name sailors don't ever buy and the crap it actually broke just just stopped working one day and I was sat in the middle of December in England in the cold which is like one degree or less Celsius. So I got my friend how Tato I looked it up. It is the most amazing beautiful onboarding system i've you know products come with a how to set product up and usually it's it's varying levels of how good it is. And this product is literally you as a layperson going and adapting opening your boiler and fiddling with the wiring right and yet they managed to talk you through it on a smartphone step by step every single detail what's important what was occurred what what you should label everything. I did the whole thing in like 12 minutes or something and to end a tumour board or apartment the first time ever. I took all the circuit shut my boiler, I started unscrewing things and rewiring it and God knows why I was doing crazy stuff, right? And it's totally fine because today is so watertight setup you tell it what boy you've got. It even shows you a picture of your entire setup and I've had a pretty random setup specific boiler specific water heater specific wireless transponder that we use some some naff sales sales sales product or is it had pictures of all of it and how to remove it, how to fit their stuff. Fantastic. So if the product is great, it's wonderful. It's great smart heating, but the setup is just is something that people should aspire to is how to onboard people onto a product. So my pick is today's my eating.Shawn  58:44  Wow. Dude,Ben McCann  58:48  that's hard to follow up. I'd say my pick is Narcos Mexico. That's the I know everybody's been watching Tiger King and that chest one.Shawn  58:58  But he's got the eyes. Yes. Yeah.Ben McCann  59:02  I'm all about Narcos Mexico.Shawn  59:04  So I watched I watched the original Narcos Is it is it just like with different actors like what? Yeah, it's related.Ben McCann  59:11  It's about the Mexican cartels.Antony  59:13  I thought this sounds great to watch this. Yeah, theShawn  59:17  first narco is is really good.Kevin Åberg Kultalahti  59:18  It is. So good. So my my pick is something called kitty. It's a it's a terminal. Terminal replacement. Pretty nice. You can customise it. pretty much it.Antony  59:37  Kitty, right?Kevin Åberg Kultalahti  59:39  Yeah. Yeah, like a small cat. It's, it's it's actually very, very nice. It's GPU rendered. Which is better than those electron thingies. Right. Yeah. To render some stuff Yeah.Shawn  1:00:00  I guess I'll pick Audacity. I don't know if you guys have messed around with it, but it's it's open source, audio editing software. And it's surprisingly powerful. I've never really, I've used it before to edit minor clips. But then I took some time over the weekend to learn how to set levels and like mix clips together and like, post process like pops and stuff like that. It's really powerful. And it's open source, and it's very performant and just amazing piece of, I guess, open source collaboration. And I didn't I didn't know I don't know the history behind this, but I'm curious to learn more, but it's just really good software to use. In other nice Shawn will be on new editing of the podcast, right.Kevin Åberg Kultalahti  1:00:46  All right, it is. Yeah, yeah, it is. So that's all the all the pics done. And that's it for this time. Thanks, Ben for for coming on and talking about separating Svelte and then thanks for having me everything else. All right. We'll talk to you guys next episode. Bye byeTranscribed by https://otter.ai
A New Svelte Year

A New Svelte Year

2021-01-1347:08

A new year, a new Svelte Radio episode!Notes: GDC Spiderman Technical Postmortem Mac Mini M1 Asus PN50 Mighty Browser Perkins Brother Builder YouTube Channel ListenAddict Multris Tiny House Guy svelte-query Svelte Zoomable Svelte Community Stuff: Svelte Society Canada looking for a logo Svelte Dublin Official Svelte Newsletter Picks:  Bone Conducting Headphones Devmode.fm and Andrew Welch Fibonacci Goal Setting Swedish Meatball Recipe:Makes 4 big portions.Ingredients: 500g minced beef/pork 50/50 mix (I prefer to use lamb mince) 0.8 dl breadcrumbs 1 dl milk (3% fat) 1tsp salt half a yellow onion 1 egg 0.5 tsp pepper, some mustard (dijon works) 0.5 dl dark syrup (molasses should work) butter Steps:  Chop onion finely and fry in butter until soft Mix breadcrumbs spices, salt, egg and mustard in a bowl and let sit for 10 minutes Add the mince and mix well (don't overdo it! It can get tough if you work it too hard!) Form smaller balls (half the size of a golf ball is a nice size) and fry them in butter. Transcription:Kevin Åberg Kultalahti  0:00  Hello, everyone. Welcome to another episode of Svelte radio first one of the year. Not a lot happened over the holidays. But we're going to go through the new stuff anyway. But first, some introductions. I'm Kevin, I run a site called Svelte School, where I teach people about Svelte and I'm involved in the community side of Svelte as well. Yeah,Shawn  0:22  I'm Shawn, I work at AWS on AWS amplify, and we are we actually unfixed unbroke, the salt society website recently, so I'm proud of that, even though I didn't really do much there. So shout out to the silentworks, who actually figured out the Modify issue that we had.Antony  0:40  Nice. I'm Anthony. I'm the CTO of a company called Beyonk, which is a travel and tourism stars in the UK. I'm also a Svelte core maintainer.Kevin Åberg Kultalahti  0:48  Cool. So what have you guys been doing over the holidays?Shawn  0:52  Oh, yeah, we so we figured we will start off with like some updates, right. So I think we some of us got ourselves like Christmas presents. Something I realised actually in catching up with my team at AWS is that everyone bought games, like the games industry must be huge right now. Yeah, I mean, this is not that this is not a surprise, but like, really, because there's nothing else to buy. Yeah, youAntony  1:15  say games? Do you mean like board games? Or do you mean like computer games? Shawn  1:19  Mostly? Mostly computer games, butalso board games? I think I think people went for computer games first. And then we realised that we like the digital stimulation or whatever. It's easier to set up computer games.Kevin Åberg Kultalahti  1:33  Have you guys seen the like the cyberpunk game? So what cyberpunk looks amazing. Also very buggy. I was actually I,Shawn  1:43  the bugs are the fun part, right? Like you could see one of my top posts on Reddit, the past week was showing off like the amazing detail of the shadowing, of cyberpunk. And how like, even when you hold the rifle, the shadows fall on the rifle and you can you can move around. And then a guy kept on walking backwards. And the shadow came from a car that was being suspended in the air. Because the graphics were like screwed up, like, but the shadows are great.Antony  2:12  I mean, this is the bit I didn't understand because what makes game appealing, in my mind the games appealing games feel is in its gameplay, and how explorable is and things like that. I don't know much about games. I mean, I'm a Linux user. I don't really have many games like in the store. Maybe maybe tux racer? I don't know. But I guess the point is for me like I love bugs in games, I think they're I think they're brilliant. They make it much more interesting, but I'm not really a gamer. It looks like so put looks amazing. I've seen some live streaming on Twitch it looks incredible to look at. But honestly from from the brief bit that I looked at it for the game looks like GTA, which is fine in my books, because GTA is the one game that I do occasionally play. The graphics is amazing. But the thing for me is I've heard that the AI is just not really there. Like characters don't even have the basic error you find in games, they just kind of wander around aimlessly into traffic. Like, for me, that takes away a lot of what makes GTA appealing in that there's a sense of realism. If I want to just drive around and follow the road rules and interact with people, then I could do that. And if the AI is not working, then that's gone. So it may be a personal thing, but I feel like they're missing a big trick by not having that sort of stuff ready. And it's not it's prioritised been done a million times. Right. So where Why can't it just be working?Kevin Åberg Kultalahti  3:28  Right? Right.Shawn  3:29  The I'm sure obvious answer is that they rushed it. Sure.Kevin Åberg Kultalahti  3:34  Yeah, sure. Probably probably the explanation actually. Yeah.Antony  3:39  So that's all games rushed synthesiser?Shawn  3:41  Yeah, probably true. So well. I wanted to point people to resource the GDC YouTube channel Game Dev conference had a really good breakdown of the Spider Man ps4 ai, where it actually shows you how, because Spider Man has infinite rendering. And you can see people you can theoretically interact with any single pedestrian on the street could attack them, you can talk to them whenever. And it's a really interesting choreography of choreography of how it's random AI and then the moment you interact with them, then they're sort of possessed by a different sort of AI and they talk a lot about it. And yeah, it's it's, it's that sounds pretty much as open source as Game Dev can get without actually sharing the code.Kevin Åberg Kultalahti  4:25  Yeah, all right. So so you guys treated yourself to some new presents, I heardShawn  4:32  Sure. My problem is I don't I don't have like a full report and everyone else. So I Oh, okay, I'll the headline is I got a m one. MacBook Mini. Sorry, a Mac Mini. And that's the first desktop that I've purchased ever. You know? Well, because every prior PC that I've ever made, I actually assembled I bought it assembled and obviously You can't do that with Apple. Right? Because hashtag money.Kevin Åberg Kultalahti  5:02  But yeah, unless you go for the Mac Pro, right? But then, yeah.Shawn  5:08  Well, so it's a big round trip for me. Because when I was growing up, I used to treat like PCs as like this, where you get serious work done. And then somewhere along the lines, everyone just transitioned to laptops at work. And it became a normal thing. And, and then I just kind of went with it. But this is the first time for me going back intentionally from laptops to desktop. And really, the justification was that it's just half the price. And, and I wasn't really moving that much in COVID. So I think, I think that's kind of it. There's, there's more parts, but like, I really did struggle with that decision, because for twice the desktop price, you could get a battery and a keyboard and a screen, that's decent value right there. So right, it was it was a, it was a real challenge to me as to like, what I should get and what I was trying to invest for. But mainly, I was just kind of curious about all the other reports, I definitely felt my main personal laptop, my only personal laptop is from 2017. So starting to feel the the age a little bit. And in particularly, one of my pain points is video editing, because I do a lot of tutorials and like for work and then for egghead IO, and then sometimes for Svelte and it typically compression is like a one to one ratio, like if you have if you're sort of using ScreenFlow and you're compiling like a like a one hour video, you may need like about one hour, maybe one and a half hours to compress that video. Yeah. So anything that can solve that pain point is good. And, and then obviously compiling code. If that if that's any faster than that, then that's nice as well. And then I heard a lot of fringe benefits. So I think some people in the jealousy community like Devin COVID, but then also maybe, I guess some more famous names like DHH. There's others that have actually jumped on the train, who are failing to come to mind right now. But there's just saying, like just navigating between windows. And I even feel that that latency. So I think anecdotally I feel like it is so I've had it up and running for about four or five days. I feel like it's faster. But then I can distinguish between that and just like the fact that it's a new computer with no software loaded on it. So that's my report.Antony  7:11  Fair enough. Fair enough.Unknown Speaker  7:12  I mean, it's it's almost as portable as a laptop anyway. Right? Right, right. But if you decide to like Move, move across the globe to back to the US, for example, you can always bring, it's easier to bring it back Mac Mini than a, like a full desktop tower. Shawn  7:29  Sure. So I mean, one of the reasons is that you should get a one laptop is that the the power consumption is very low. But what's the point of getting a there's no point getting a low power consumption if you also end up making a desktop, where there's no battery? Yeah. But it is Oh, I mean, the other one good thing is that there's no need for a fan because apparently the cooling characteristics are very good. Again, like I'm very out of my depth here. I don't know any I don't know much about CPUs and all that. I just repeat what other people say. And maybe you guys can fill me in on that detail. But I do have my fan spin up like right now on this, this work machine that I'm using my fans are spinning up and on. The one is just quiet.Kevin Åberg Kultalahti  8:08  Yeah, silence is really nice.Antony  8:10  I mean, so yeah, so I think I did the same sort of thing as Shawn. for similar reasons, I think I would really want an apple and one, mostly because I don't like Intel. And they really have like Intel or the x86 architecture. So for those who don't know, Intel chips, AMD chips, run x86, complex instruction set computing, which is a lot more restrictions that directly translate to CPU instructions. Whereas risk, which is what arm uses is reduced instruction set computing, which is basically less instructions more direct, it basically is two different architectures. What Intel do in the core series processors to speed things up as they actually translate risk to Sisk. So inside a core processor is effectively a small ARM processor. But obviously, that translation has an overhead, right? So there's a cost involved there. So it's just not as fast. So being a Linux user, I can't get him one doesn't it doesn't work on there yet, because it's very Apple proprietary, and it's unlikely ever will not be that I'm hoping that some other manufacturer will sort of jump on the bandwagon and produce their own equivalent. And I'm sure they will after a while because there's no way that the x86 architectures compete now and also because like you know, arm is a British company, they were originally where they are now holding this company somewhere but risk and arm were invented in Britain. And when I went to school, I grew up on ARM processors because it's really what we had in Britain at that time. And so there's a lot for me to like about arm and I don't have any other Intel machines apart from my main machine because of the power of it, right because a lot of ARM processors are generally tablet or phone processes. So I couldn't buy an apple m one even though I really really wanted to because I don't want to run a backhoe sector I want to run Linux. So right I've purchased this asis machine which is probably about the same sort of size. This runs a ryzen chipset, which is AMD is new thing or newish thing, which purports to be a lot faster than Intel's processes. notes on the same architecture with with except for the high end ones. It's a very nice small compact machine, which is, again for Shawn was mentioning it's nice and compact, but like a laptop, it's portable, but also costs the same thing, right? I spend one and a half grand on a laptop to desirable for me. I'm buying this and this cost me 350 quid, right? I had some memory. I had a hard drive, right? Yeah. And it's still like, just over a third of the price of the laptop. And I'm not going anywhere. COVID. UK is completely locked down anyway. But I've worked to him for three years anyway. So I probably should have done this sooner because my laptops 2015. So yeah, I think a lot of the same sort of reasons. And it's a bit weird not going back to a laptop. Because when I grew up, I built on a PCs myself made about 14, I was building PCs, because it's great fun. I was playing games, I was running Windows. When I switch to Linux, I just started looking at laptops because of portability, one around the house, take them to work at work, it was all windows shop, and I want to run the next. So I took my own laptop to work. I never thought I'd get desktop again. Because I thought this is so great. It's almost equivalent performance in a little tiny package is not as fast but it's almost as good, right? So yeah, it's another kind of weird twist for me to to have this this desktop machine, sort of a laptop. But I'm looking forward to it. My my disk is arriving later today. And then I can plug that in and start setting it. So I'll have to bring about reports another another time and how good it is. Next time, sir. I got high hopes.Shawn  11:22  I think it'd be interesting to do a count of how many computers per person in your household. And then chart chart that over time. So I have a work machine. I've personal machine. I have my now my legacy laptop, which I just keep around because the resale value isn't there. I have an iPad, and then two phones because I still keep my old iPhone around again, because there's no resale value there. And so that's like six machines, six computers for one person. And yeah, that's that's massively increased from I used to share, like four people to one, one PC, right? Yeah. And yeah, it's really this like transition of personal computing.Kevin Åberg Kultalahti  11:57  The Holy Grail is when you can do everything from your from your phone, right? You don't even need a computer. You just have have your phone.Antony  12:05  It has impracticality.Shawn  12:06  I don't know if we're there. Yeah. Yeah. IUnknown Speaker  12:09  mean, I mean, it's, we're definitely not there. But at some point, I'm sure something like that, it's gonna,Antony  12:14  well, Ubuntu tried to do that right with the with the crossover thing. So at one point where I could have an Ubuntu phone, you could plug it into your laptop into your into your monitor, rather, and it would turn into a full desktop machine running up your phone, unfortunately, never succeeded. But that was a cool idea. And something that I think even Apple haven't really sort of gotten that far yet would be interesting to see. I mean, I think on the subject to how many PCs you've got, Shawn must have between 20 and 30. I've kind of forgotten whatShawn  12:45  Raspberry Pi's don't countAntony  12:48  10 to 20, right. It's still not lower. And it's just because I kind of a hobbyist and I have machines doing various things around the house. And I like building them. I like repairing them badly by cheap and fixing them. I've got two or three behind me. They're just mid repair. So it's like lots of lots of reasons have lots of computers. But in terms of usability, I'm trying to limit to one because I don't like to go into each machine and not have the files on the other machine and the clouds. Wonderful, but it's not quite the same.Shawn  13:17  For that for Yeah, I was thinking actually. So having a desktop and then having a like a if I ever do go for conferences and meetups again, having a like a work laptop, it forces you to backlinks up onto the cloud. And I actually thought I thought it was pretty good discipline because that means again, like it's all this, he kept keep like proprietary state in your local machine and not committed.Antony  13:39  No, you shouldn't you never should. Right. But But the fact is, even if it's even as the cloud, I've still got to get check out all those projects and do the right links across projects and things like that. It's all a little bits of setup, but also like Dropbox forShawn  13:51  regular files and stuff like yeah, anyway. Yeah. No, it's a thought.Antony  13:57  The other thing is I have a thought you'd mentioned like, now I'm non portable in terms of going to a remote office and working, because I've not got a laptop, actually what I what I tend to do in the past anyways, take my Chromebook with me. And then I can basically just RDP or whatever home onto my desktop machine at home. So I don't think it's going to change that much really remote desktops getting better and better. And the Chromebooks perfect for carrying round one because it's arm based, right? It's got super low power requirements. SoShawn  14:24  yeah, for those interested in this topic, Yeah, apparently, you can do that with Xbox and ps4. But then also, stadia is kind of like this whole remote gaming concept. And then also, what I think is also trending is this remote development, like with GitHub code spaces, and what's actually as your code spaces, but rebranded for GitHub. So I just learned about mighty, the mighty browser. I don't know if you guys have heard about this. It's basically chromium as a mainframe mainframe. So you never you don't run chrome locally, but you just kind of remote into this thing. Apparently, it's like way faster because like they do, they do Everything in parallel over there on like a much beefier machine. And so I think we might get to this point where we don't have laptops, and it's just like iPad and a keyboard, or like a tablet and a keyboard. Yeah, I know Guillermo Raj from for cell actually is living sort of the iPad life right now where he's only iPad and keyboard. So yeah, it's an interesting peek into the future. Like, maybe just nothing's local.Antony  15:23  I mean, it's a peek into the future and the past at the same time, right? Because they used to have these these terminals. Yeah, like mainframes and dumb terminals, wise terminals at your desk, where you remoting into a mainframe machine. It's almost like that's the same thing. But now that mainframe is the cloud. Yep. And the local network is, is this the internet?Kevin Åberg Kultalahti  15:41  Yeah. It's like we're going in circles and learning a couple of new things every every time around. More than a couple probably. But yeah, we get into to actual Svelte stuff, maybe. Yeah. Well, that's what we're here for. Right.Antony  15:58  So this podcast is aboutShawn  16:00  Yeah, I think. I think I think people like people like, like the community aspect in the in the tech. We're all interested in New Tech. That's why we're here.Kevin Åberg Kultalahti  16:07  Yeah, yeah, definitely. So. So Anthony. what's what's new in SvelteKit.Antony  16:12  So over Christmas, I actually kind of felt kind of burnt out. So I actually didn't do a huge amount of Svelte didn't really look at computer from about 22nd to the fourth, because I just nice. I just couldn't face it. Almost. Yeah, I did loads of DIY projects. Shawn  16:27  But that's good. That's you shouldn't you shouldn't feel bad about it.Antony  16:29  I don't think I do. I just kind of want more of that. Right. I really want to build a house now. Like, I want to literally build a house from scratch after watching a YouTube channel that I've sort of gotten into. It's like, why am I in tech? It's a really,Kevin Åberg Kultalahti  16:43  yeah, that's so so random. I I started watching this German guy who's building like a tiny, tiny house. He's renovated tiny house. Yeah. Yeah. So fun to watch. Yeah. So are you going? No,Antony  16:56  that's great. I mean, a tiny house things. Another huge thing, I'm gonna mention it, so it's gonna be about pick, but I've got too many picks now. But this is great hammer as well. So so so for my pick, I was going to have Perkins brother build this YouTube channel, because a bit of a sort of deviation from my usual YouTube watching, which is crime and murder and things like that. Perkins for the builders are a couple of brothers who run a company called Perkins brothers builders, oddly enough, and they they're building houses in North Carolina. And they've been sort of videoing it because they've thought, well, we build houses all time. And it's really fun and interesting. And not everyone gets to do it. So why don't we film it and talk you through the process of the decisions we make whilst we're doing it and stuff. And you can kind of watch the channel and watch some of the house bills and go, I think and actually do this myself, because they make it look so easy. But they also tell you all the ins and outs and the decisions they make and stuff. So it's kind of really inspired me, I actually really would like to I do a free internship with them go move that for a bit, right and just build houses for free with them. And I could just be paid in experiences. It's pretty cool. I'd probably make a massive mashup,Kevin Åberg Kultalahti  17:56  right? But you'd have a lot of fun at the same time. Is there anything you've managed to? Well, since you SoAntony  18:04  the one thing I noticed about Svelte actually, is that we have this new contributor, he's not made himself public on the organisation yet, so I don't know whether he does or doesn't really mention, but I'm not going to do it for now. But what I'll say is, this person has really sort of jumped in. And he's given us all these amazing features and bug fixes and sort of completing a bunch of the sort of outstanding tasks we need to get into the beta phase. So it's looking really good right now it's looking really nice. And just, it's really cool. When you see so many chips in like that and sort of gets involved really quickly. And up to speed quickly. Svelte been one of those notorious projects where it's quite difficult to get up to speed, because it is quite a complex thing that it does like this, this sts and compilation is difficult. So it's really interesting to see someone jump in and sort of pick up the ball on that. So you know, and of course, riches, riches, launching projects with it right now. So he's also very eagerly sort of getting everything up to speed. So yeah, no promises, again, at everything like that. But we are over the Christmas period, we we took a few leaps and bounds in the right direction. So so it's looking good. Yeah. And it's worth mentioning, probably the language tools, military as well. They've had a major release. So they're on 2.00. Now, I believe, I don't, I can't see what's going into I don't know what to put into it. But I know that it was quite a big chunk of work. So that's well done to them to getting that getting thatKevin Åberg Kultalahti  19:19  to where it is we should probably have Simon on. Again. We definitelyAntony  19:22  should have sewn on Yeah, about to talk aboutKevin Åberg Kultalahti  19:25  new stuff, because this is not my strong.Antony  19:29  No. And as a non root user, I don't really benefit from the much of this stuff, I get this sort of VS code highlighting and help, but I don't really benefit directly from it. But yeah, I mean, that's, that's probably one of our most busy repositories, because it's just constant improvement from there. The people in language tools are just all over it. It's brilliant.Kevin Åberg Kultalahti  19:48  Yep. Yep. Great work. And then as usual, things are are happening in separate lines as well. Right? Like some bug fixes and stuff like that. Yeah, it's not it's not a bad doneAntony  20:00  yet? No, no. So I think we're going to come to naught A naught point two, nine release. Ben's been sort of triage and things to go into that release. Now that probably will be like the final release. And it doesn't make sense to kind of start adding features to that at this point, especially if we have the resource we have focused on on Svelte kit, so that zero to nine will be probably the final separate release. If there's anything urgent needs to go into there. Probably now's the time to speak. Actually, one more thing about spell kit and what I've mentioned, because it's now skypark enabled, because it's based on snowpack, because it's now Skype enabled. You can do the fancy, no NPM. just specify URLs to skypeout repositories. And it will download the depths and call them in, which is pretty interesting. Pretty amazing stuff. So yeah, if you haven't heard of skypark, have a look at that, because that's pretty, pretty novel. SoShawn  20:46  that means is denno compatible. Yeah, itAntony  20:49  sounds like I don't know, but it definitely moves in the right direction. It definitely is a step forward, I think, because Svelte kit will be almost abstracted from node itself, and it'll be more of a kit around potentially deploying to node, or CloudFlare workers or whatever else you want to do. I don't see why there wouldn't be another platform for that, right. It just needs an adapter. Like a compatibility layer. It doesn't tie you as much as Safa did to node anymore.Kevin Åberg Kultalahti  21:15  That's good. It sounds kinda like the ESM modules, right? Yeah.Antony  21:22  Yeah. Or how should I? That's a good question. I mean, obviously, rich is very all over ESM. So quite possibly, it's very focused on that. All right. Yeah.Shawn  21:32  Yeah, I feel like the the ESM momentum is, is finally coming along. I think node 14 being known for teens where ESM is unflagged. I think, if I'm not mistaken, because I was working really hard. I don't know why it's I don't know why so hard. But it was hard. Yeah. And then and then I saw sindri Saurus is moving all his stuff to ESM. Only Ronnie, he won't he won't break people who, like, assume no polyfills and stuff like that. Yeah, it's it's really coming along. Probably 21 2021 is kind of the year of Vietnam. And pretty good bet to me. I didn't really think about that. At the start, like this time last year.Kevin Åberg Kultalahti  22:10  Yeah. big change. Yeah. Yeah, we should we should probably do some predictions for 2021 oversold later in the show for next time.Shawn  22:23  I guess I could also Oh, yeah. I mean, so there is a new blog post is that we talked about?Kevin Åberg Kultalahti  22:27  Yeah, yeah. I was gonna talk about like the community there.Shawn  22:31  So just to update people on then send Sandoval? Yep. He's kind of like taken over as like the official Svelte community newsletter maintainer. There are other Svelte newsletters that are run independently. But this is kind of like the official one that I guess it's published on the Svelte blog. So it's it's official, and he put out a new version on January 1.Kevin Åberg Kultalahti  22:49  Yep. Lots of fun stuff in there.Shawn  22:51  Yeah. What is what happened with Svelte component types? I saw the PR, I didn't actually understand it.Kevin Åberg Kultalahti  22:55  Yeah. I, I have no idea like pr kilkelly. The since so it's like a minor release that replace a small component with small component type. And it's something to do with the language tools, I guess. I don't know.Antony  23:12  That might be watered down into 200. Right. But I don't know. Again, like I just don't use TypeScript. So I don't see whatShawn  23:20  you're doing the types I thinkKevin Åberg Kultalahti  23:21  we should have Simon on. It'll probablyAntony  23:25  Yeah, I agree.Shawn  23:29  Yeah, it's a bunch of community stuff. Right?Kevin Åberg Kultalahti  23:30  Yeah. Yeah. So there's this Did you see the the listen addict site? I thought that was pretty neat. No, it's it's like a site that notifies you when people have new talks. So I probably like subscribed to you, Shawn. Now, I'll get pings whenever you post new, your new conferenceShawn  23:49  and stuff. I would I would subscribe to that. Just to put it on my own site. Like, here's myAntony  23:55  latest talks, socks. It's not bad idea. Actually, it has a feed of some sort that we really cool. Yeah,Kevin Åberg Kultalahti  23:59  yeah, it's built and built in Svelte, of course,Shawn  24:01  so I know exactly how to commercialise this because I've been thinking about this because I used to work in equity research, and finance. And you have to keep up on the latest news regarding your stock. And guess what, like your CEO is on podcasts, talking about pretty material things to do with their strategy. So it would be nice to get notifications about when when they're on previously, I think the best way is to set like a Google Alert. But that's pretty noisy. So a dedicated tool like this will be pretty helpful. And these guys can pay money.Kevin Åberg Kultalahti  24:29  Yeah. Probably a good good idea for for whoever built it.Antony  24:35  Yeah, I learned recently that I carry using Svelte which is surprising.Kevin Åberg Kultalahti  24:39  Yeah, on the international site, like the ikea.com right? Yeah,Antony  24:43  it's weird because like all the all these national sites or for me, at least not all the non British sites or equivalent of our sites use felt and, and our native ones don't say like the Catalan for instance, the UK is still using their legacy stuff. And all the European ones are the ones I've looked at are all using Svelte Interesting now, throughout this isKevin Åberg Kultalahti  25:02  blowing up though. Yeah, itShawn  25:04  feels like at least it definitely is. It's all relative. I saw I saw Adam Whedon's post it, we're still kind of number four ish in the overall rankings, which is fine. We don't have to be the biggest. And I kind of like that soAntony  25:18  well, I mean, yeah, so it is relative, but I would say that the amount of the amount of like inquiries and newcomers is rapidly increasing. I'm seeing a lot more questions. More people a lot more chat. So, see, it's it's definitely blowing up as you say that we go through these kind of spikes now. And then this sort of 2021 appears to be in another one of those. Yeah,Kevin Åberg Kultalahti  25:41  it's it's fun.Shawn  25:42  I mean, it's definitely due to the contributions of everyone in the community. Yeah. And maintainers. And I think rich himself deciding to kick it up a notch with with socket. It just does show just some some life. Yeah, I've seen other projects that just kind of go stale, because they're maintainers don't really think about momentum. And it doesn't matter, because people want to see a heartbeat.Kevin Åberg Kultalahti  26:03  Yeah, I think that this, this newsletter is actually very good thing. Yes.Shawn  26:08  And this podcast.Kevin Åberg Kultalahti  26:09  Yep. True. Well, and also the upcoming, the upcoming conference, right? Yeah. Do we have a date? Not? Not yet? No. I'm thinking, April, sometime. Okay. I think that that's how much time we're gonna need. But yeah,Shawn  26:31  I mean, yeah, we could we could start kicking off like the talk proposals and stuff like that, I think I think we have a bunch of ideas of how to make things better for for organisers, and speakers and for audience members. Part of that is like the activity like the I've been, I've been actually thinking about this, like, it'd be a nice, nice tradition to have to have like a Svelte coding activity during the conference. Yes, that's hopefully not too distracting, and not too hard. But oh, but also fun. And I realised that clicker games are very involved. Like, I fire up my Apple App Store. And I see a bunch of clicker games. And then, yeah, like, I think they're pretty easy to code. And people can get really creative with them. So we might we might want to do a quick review.Kevin Åberg Kultalahti  27:13  Yeah, we could, could provide like a, like a starter? One. Yeah. And then you can improve on that. Like, yeah, transitions. Exactly.Shawn  27:21  You take it the way that you want, like, you can make the state management very complex. So you can do animations or whatever.Kevin Åberg Kultalahti  27:27  Yeah, I was thinking about having, like, quiz between talks, where you have like, people can join in a cave, or something like that. Or I think it was Jake and Sermo who did a, like they did charades at some Google family. Yeah, like a month ago. It was just like a short one. That could also be fun. So you can invite like community members to join in? Yeah. Lots of cool ideas. It's gonna be way better than than the second one. Even though that was very good night. Yeah.Shawn  28:03  Yeah. Yeah. And also, the other thing that I think we all agree on is that it should be shorter. So it's not drag. You don't feel tired at the end of the day. All right. But yeah, I mean, so the reason I brought that up was because I see a bunch of games here as well. Like there's a there's a multiplayer Tetris game in the community showcase. There's a math based challenge game. It actually reminds me of that the other game that's rich Harris really liked was that like, tic see. Do you guys know about that?Kevin Åberg Kultalahti  28:29  No, not where, what's that? It'sShawn  28:31  like, you have to use it. You're restricted to these four, four variables. TI X, Y, like time index, then x&y position. Oh, yes. And then and you have to code within 280 characters and produce something interesting. And it's like, it's like a really interesting, like code golfing challenge. And that's it. That's a fun game too.Kevin Åberg Kultalahti  28:49  Yeah, that could be something to do.Antony  28:51  That makes sense with the old little matrix thing he posted? A while ago. Dixieland era. Yeah,Shawn  28:57  exactly.Antony  28:58  Yeah, yeah, that's cool.Shawn  29:00  Yeah. Frankie's? Yeah, there's a bunch of octave. kompass I don't know. Yeah.Kevin Åberg Kultalahti  29:06  A lot of fun stuff. And some some new libraries and components as well. Like the someone did the like their react. query, but for Svelte,Antony  29:18  Svelte query. I didn't see that.Kevin Åberg Kultalahti  29:20  Yeah. I think it's like a, I'm not entirely sure if it's the same thing, but it looks cool.Antony  29:29  Svelte, Svelte. No, was it called it spacey a Svelte version of is this react? graph QL. ModuleShawn  29:36  microview. Older is called micro micro graph. QL. I don't know. What one? Yeah,Antony  29:43  I think he rewrote it and Svelte.Shawn  29:45  Right, right, right. I mean, so Okay, I guess I have my cell mentioned. So Matthew, his style. His Twitter handle is like HGS ch with underscores between them. Hey, Jess. Oh, yeah. He also tweeted about a 20 line of code internationally. library in Svelte and then he also made a talk about it and because I am trying I'm in this mode of like requesting for talks to like keep the YouTube active and you know, just like just continue sharing content from from people like outside of a conference setting, right. Yeah. And yeah, I mean, he's just very passionate about it and it made this talk on Svelte internal nationalisation. Effectively labour in exactly is much easier to pronounce. It's just yeah. If you don't know what it is, then it's been hard to find. But anyway, sure.Kevin Åberg Kultalahti  30:30  Yeah. So he's, he's the guy that did the defending democracy with Svelte thing, right. Well, that was the title. But that's, that's what the tagline ended up being.Shawn  30:41  I just like, yeah, the database people have really embraced Svelte in a big way. Yeah. Moritz, I think on the data stories, podcasts also interviewed Amelia Weinberger. And yeah, I almost think there there should be like, a single day of the sales society conference dedicated to database because there's just such a big community there.Kevin Åberg Kultalahti  31:00  Yeah, I was I was a bit sceptical to that at first, but I think why? position? Well, because I didn't realise how popular Svelte is, in the day of is like, Oh, really? Yeah, IShawn  31:14  understood it uses it. Yeah, IKevin Åberg Kultalahti  31:17  know. I know. But then, then I kind of like, I was thinking maybe you could position Svelte as, like the database framework, in a way to as a marketing thing. I mean, yeah. Well,Shawn  31:35  yeah, well, there's d3. SoKevin Åberg Kultalahti  31:37  I know. But if you could do better, or could you? I don't know.Antony  31:43  I mean, d3 is very specialised, right. It's very specialised. Svelte was with general purpose. But I guess I guess it kind of always automatically positions itself for database, because of the way that the rich has built it in ways using it. I think reactivity is also very good for, for that sort of stuff.Kevin Åberg Kultalahti  32:01  Yes. All right. Let's see here. There are a bunch of other new components that you can take a look at. Tiny virtual lists are some routers, we've been missing routers,Unknown Speaker  32:14  yeah, more routers.Shawn  32:17  I mean, it's worth actually checking these out. Because if people are trying to solve real problems,Kevin Åberg Kultalahti  32:22  we're Yeah, jokingly saying it like that. But it's I think,Antony  32:26  I think that having Scotland scale was, was great, because he mentioned tin row. And I've kind of looked at that and never looked away. Now. I'm so focused on. It's just really great.Shawn  32:37  He's got this. He's very opinionated about about routing, which is pretty cool. I'm not it's like, as long as as long as I got a link a way to link things. And, you know, although I wish that I guess, query params were a formal part of the state that you get from routes, because I end up having to build that so much.Unknown Speaker  32:55  Really? Yeah.Shawn  32:56  Yeah. That's how that's how you like get like copy and paste the copy paste of both apps, which with like, the state, just embedded in the URL? Right.Kevin Åberg Kultalahti  33:04  Yeah.Shawn  33:05  Put it on the query. params. Okay, one more, one more. Library. And then and I think we're done is Svelte zoomable. I think it's coming from Daniel Dimfeld. He's, he's just like, very active. I don't know who this guy is, to be honest. But he's just very active online while he's passed away. But yeah, it's just like a transition or animation sort of library type of thing. And, yeah, it's it's, uh, it's published. And it's in a repple. When I mean, the demo looks pretty good. So it's just another way to zoom back and forth between content, I guess.Antony  33:37  It's, I did see like if the channel actually a good one.Kevin Åberg Kultalahti  33:40  Yeah. And there's a bunch of new learning resources as well. I haven't been able to check these out. There's someone made a awesome Svelte list. Yes, that's, that's nice. We also have the salt society one.Antony  33:53  This I mean, this, I think this must be the more the merrier is already right. There's now three, three or four. Yeah. Probably would be nice to have a single manager. I mean,Kevin Åberg Kultalahti  34:02  yeah, I think the problem here is like keeping them up to date. And, yeah, because people lose interest. And they don't have time. All sorts of reasons. Right?Antony  34:12  Yeah, I guess that's the advantage to having one as part of a website rather than a than a GitHub repo because people can actually like vote the feedback on ones that maybe don't work anymore, or, or libraries have become abandoned or whatever. They can rate review them that sort of stuff.Shawn  34:27  But that's my issue with awesomeness in general. No one ever files the PR to note that something is no longer awesome.Antony  34:32  Yeah. Someone someone could do that on on the components inside Svelte actually inside the because we've got this Svelte integrations repository, which is kind of I maintain it myself right now. And it's it's unknown who knows what happened to it or it's where it's destined for but, but someone did to appear, I think to remove a load of stuff. I was like, that's pretty nice.Kevin Åberg Kultalahti  34:52  Yeah, is cool. So I think there's one pretty interesting, like, talk or learning thing here. It's like reactive web apps with crystal and Svelte crystal is really cool. language I suppose for back end development. I've been interested in taking a look at it, butAntony  35:13  what was it based on?Kevin Åberg Kultalahti  35:15  So it's inspired by Ruby. Right? Okay.Antony  35:17  I mean, it's sort of makes sense to space. Yeah.Kevin Åberg Kultalahti  35:19  Yeah. What else is there?Shawn  35:22  I can give a couple of these from the Twitter side of things. So there's new community organisers popping up all the time. I think there is like, I'm tracking something like 15 small societies worldwide. Wow. Which is, it is what it is because like, there's no there's no meetings going on. So everyone's online mostly for the most part, but I do I do hope to start Svelte society Singapore soon. Yeah. So Svelte, Canada is looking for for help with the logo and everything I think Mike Nichols, who has published some some good stuff in the past, he's looking for help so anyone in Canada once you get in touch either get in touch with me or Mike Nichols and get get that going. Small Dublin has is basically up for adoption. The guy was was running it was like I'm not I'm not doing a good job maintaining this but I have a sweet URL, which is spelt dub, l dot i n. So this is Dublin. I measured all the Dublin stuff is just always on squatting on indian indian domain names randomly. But yeah, stuff is going on. I think India is kind of chugging along as well. They're organising a meetup, and I'm helping them put stuff up on YouTube as well. Yeah. So I think my message is, I guess first of all in your area particularly in in different languages, at least for Brazil is is quite active. I have no idea about Russia. But yeah,Kevin Åberg Kultalahti  36:41  that's Yeah, we don't we don't know about much from from from those guys.Antony  36:45  Svelte Russia shouldShawn  36:46  be actually huge, didn't it? We should have sold it. It's probably still huge. We just don't knowKevin Åberg Kultalahti  36:50  yet. Probably. Yeah. There's also so there's a new there's there was a guy contacted me about starting like a Svelte society, Italy, as well. Oh, yes. Interesting. I haven't gotten back to him yet. Which I just realised that. Yeah. Yeah, I think I think that's it for new stuff.Antony  37:12  I think there's one more thing actually, there's humble bundles books, right? There's a new Humble Bundle out and one of the books in there is Svelte three book. Oh, I feel like it's the book written by Italy Pale Ale, I believe works at Microsoft, I think.Kevin Åberg Kultalahti  37:30  Yep. Yeah, he did the router right. Svelte sp router.Antony  37:34  Yeah, these fellas favours it. Yeah, correct. Yeah, sure. That shows laughingShawn  37:39  I don't know why. Maybe I just like is like how we Yeah, we don't know their real names. We just know theirAntony  37:48  sweat. squeaks is laughing at me now.Shawn  37:51  Yeah, exactly. You know, yours. Yours is just Antony, wherever you go. Yeah.Antony  37:55  Yeah. Speaking slower. I can get it. Yeah,Shawn  37:59  no. Cool. But I think that's going on. And hopefully as the year continues, will will, will liven up even more.Kevin Åberg Kultalahti  38:05  Yeah, yeah, absolutely. Right. So picksAntony  38:09  us I do have another pick. Yeah. So I mean, I'm happy to go first ifKevin Åberg Kultalahti  38:13  Yeah, sorry, go for it.Antony  38:14  So my pick is a now this is one of the things like I say that I haven't purchased it but I have purchased it in a way. So we went through went shopping and we were looking at these these bone conduction headphones because my friend has them for cycling and I've got the box here but that's not really useful because now I can really see it but effectively a bone conducting headphones or bone conduction headphones, what they essentially do is they sit just to the front of your ear just not in the air and they vibrate the bones in your ear rather than using sound waves to do that they've written directly so it means that you can actually have music on in reasonably good quality and it's pretty high quality for I've listened to a reasonable volume you know quite high volume even and yet you can still hear and interact in conversations around you and you're not shouting because you're wearing headphones and you're not missing things because you're wearing headphones you can just almost communicate normally with music playing as well. It's almost like having speakers in the room. It's it's quite amazing and they're perfect for things like swimming because there's no sort of there's no actual outputs, you know, Speaker out but things that are totally waterproof and they're Bluetooth capable so you can you can have a Bluetooth to your phone while you're swimming or they can be a music on them. These particular ones called aftershocks. So we've been trying out these aftershocks ones and they're really good in terms of all those features is it's just something that's never really occurred to me but I don't wear headphones often when I'm out in the street because I like to be aware of my surroundings and this does solve that which is quite amazing for me. So yeah, my picker guest is bone conducting headphones as a rule but if you're gonna have a look at these have a look at the aftershocks cuz they're, they're a pretty good example ofShawn  39:51  that. So my dad uses these and I always wonder like, have we conclusively studied all the health impacts of vibrating your your head bone at this height.Antony  40:00  Frequency time. Someone else mentioned this as well. And I think that my response will be this would still be the same is that when you listen to music, whatever volume music works by vibrating the three bones in your ear, right? The hammer and nails, so vibrating via sound waves, or directly, surely is not as much of a muchness, right, if the music's the same volume.Shawn  40:22  It's pretty reasonable, depending on where you were.Antony  40:25  We I think you were there just in front of your Yeah, what's, what's the bone there?No, itjust transmits through the bones. Isn't that space? I don't know, to be honest, but I would feel as it sort of layman's guess. And it's not any worse or better than listening to music via sound waves are basically the same bones.Shawn  40:42  Alright, fair enough.Antony  40:44  But again, I don't I don't know. I'm not I'm not medically trained.Shawn  40:49  Yeah, anyway, it's probably just an irrational fear. Should you go first or should IKevin Åberg Kultalahti  40:53  yeah, I can go so this this Christmas I I made homemade Swedish meatballs. Which are amazing. What I don't come from IKEA.actually made them from scratch. Using a recipe. No, but but if you haven't tried, like homemade proper Swedish meatballs, you really should. It's really good. Okay. Yeah. Yeah, recipe. Yes. I'll share it in the in the notes. Nice. Sweet. Well, that'sShawn  41:28  a good pick. Solid pick. Yeah. Well, I was gonna, I'm gonna pick a friend because he helped me out recently. So this is Andrew Welch is gaijin NT on Twitter. gaijin. Like the Japanese name for foreigner, I assume his blog is at ny Studio 107 dot com. And his podcast is at dev mode.fm. I just generally find him to be a pretty nice, knowledgeable guy. Not not pretty, like very nice and a little bit edgy. He's funny. He just listened to any beginning introduction of demo.fm he asked you like a oddball question that just throw you off your balance. And when the one time I was on i was i was really taken off guard. And I like to totally lost my train of thought. And he likes to do that to like, kind ofKevin Åberg Kultalahti  42:10  what was the was the question.Shawn  42:12  She was like, if you're like camping in the Himalayas, with like llamas and you're on your like, last tin can of food. Which JavaScript framework would you? Like? It's just like a completely unrelated setting. You just don't thinking about the situation because he's, like, very descriptive and very, like he just seems to come up with it on the spot. If you're like jumping out of an aeroplane with no parachute, which kind of CSS style do you like? It's pretty funny. But the reason I'm picking him is because he's very knowledgeable. Like, his blog has articles on tailwind Webpack, AWS Docker, and it's very, very annotated, like if you ever wanted to understand what a web pack config looks like, he's actually gone through and annotated all of it and explained it really well. And it's very nicely laid out. And yeah, I'm in disguise and been in industry for decades. And he's still doing this for fun for Yeah. And it's just like, he's the kind of developer I kind of want to be.Antony  43:03  He's not only houses andShawn  43:04  no houses. No, he's just, he's just living his life. And he's got a podcast got a bunch of friends talking about tech and making clients happy. I think i think it's it's a it's like a platonic idea of like, what a developer life could be like. And then and so like, his blog was really helpful. But then also, I had this problem recently, because I got a vertical monitor, and it wasn't filling my screen wasn't filling up the monitor with and I tweeted it out within five minutes, he actually gave me the exact right answer that I needed. So I was like, damn it, you even know, like, hardware stuff, like so so I'm pretty helpful guy. I recommend him highly. Sounds good.Antony  43:38  Sounds good. Question, actually,is anyone made? And I'm gonna say this because I don't I don't necessarily believe in these new year's resolutions. I don't. I don't think if you've got something to fix in your life, you should wait a year to some arbitrary date to do it. But no problem is one of those things that people do. Right. So So has anyone gone in?Kevin Åberg Kultalahti  43:58  I was thinking about, like, maybe doing one, but not like a proper one. It's just like one of those you do every year? Like, I'm gonna exercise more this year, or something like that? Seems like a good thing to have. Yeah,Antony  44:12  I think Kim, Shawn,Shawn  44:13  yeah, for me. So I also struggle with that idea of like, I think setting one year goals is an arbitrary length of time. And most of us, the way I put it is most of us haven't earned the right to set one year goals if we can't even set like a one month goal, or and then and then like, just like keep cutting it down. So for me, I actually blogged about this at the start of the year. They call this like a Fibonacci goal system where you sort of follow the Fibonacci sequence like you set a one day goal make sure you reach that set, then set a two day goal three day goal five day. What's nextUnknown Speaker  44:42  at the next Fibonacci one?Shawn  44:46  Yeah, apparently, if you got if you got to add, yeah, I forgot to 89. So from one all the way to 89 actually takes 232 days total, which is August 20. And with so anytime you miss a goal, because you're gonna miss them, and the problem with like, annual goals like basically you just kind of give up. Right there. Yeah, yeah, for my system, I think he kind of just stepped back one level. So if you if you miss, like the five day goal, then you go back to the three day goal, get a win. And once you have that when you try the five day goal again, and just to basically build goal reaching as a muscle, and it kind of makes the case that most people don't have the ability to make one year goals, because they don't know how to estimate goals. And you don't have the discipline to stick to it. So you kind of have to just build it up from scratch. So yeah, I mean, that's it. For me, the problem is like, what should you set the goal on? That's an open question. And I don't really have one for So writing is a base baseline thing for me. So my my January 1, one day goal was writing January 3, I did practice a computer for two days. And and then I took it took a break because I fell sick. Today I have to decide my three day goal. And right yeah, just keep going.Kevin Åberg Kultalahti  45:51  I think I'm going to try this. Yeah,Antony  45:52  I was really ready to dismiss the first like you have to earn the right to make a year goal kind of thing. Because I thought, well, I'll do what I like. But actually now you've put it in that perspective that you work your way through the Fibonacci sequence. That's really interesting. I really like that. Actually, I'm not trying to imply that, that,Shawn  46:07  obviously illusions or figurative figures are right. You know, it's justAntony  46:10  yeah, sure, sure. But it's one of the things is like, it's like, it's it seems like, I don't know, it's, it's interesting that it immediately sounds like a negative. But actually, if you think about the reasons behind it, it's really positive. Actually, I really like that interesting.Shawn  46:24  We've got to build a thing up. The reason the reason I started thinking about this, because I've been very steeped in this idea that systems are better than goals, which is this idea that just setting goals by themselves also don't tell you how to accomplish them. Sure. And also, once you reach them, you kind of lost, whereas systems are kind of just ever running every going. And they kind of just tell you what to do every day. And so a lot of systems over goals, people are just like, it's just Google's like no, no goals. And I don't think that's right, either. So I wanted a balance with goals and systems. So essentially, the the conclusion was a system of goals. And this was what I came up withKevin Åberg Kultalahti  46:56  a system. This was was this a blog post he wrote,Shawn  47:00  yeah, it's a six.io slash people. And he goes, Yeah,Kevin Åberg Kultalahti  47:03  we'll link it in the show notes. All right, cool. So that's, that's us for for this time.Shawn  47:08  Yeah. It's always fun catching up and yeah, Happy New Year.Kevin Åberg Kultalahti  47:11  Yeah. Happy New Year, everyone. Bye. Bye bye.
This time we're joined by Svelte core maintainer Luke Edwards, known for his many NPM packages. We talk Cloudflare Workers, his jest alternative uvu and a bunch of other cool stuff.Guest: Luke Edwards. Twitter. GithubHosts: Kevin, Shawn, AntonyNotes: Svelte at the edge Error Component by Hyberlab Sentry  Polka Uvu Klona  svelte-preprocess-esbuild  svelte-preprocess  Cloudflare Workers Picks: Rummikub Google Stadia  Cookie Clicker  Monopoly Deal Transcription:Kevin Åberg Kultalahti  0:00  Hello, everyone. Welcome to another episode of Svelte radio. Today we have another guest on the show. But first introductions. I'm Kevin, and I run a site called Svelte school where I teach people about Svelte. And yeah, that's me. Shawn  0:15  I'm Shawn. I work as a developer advocate at AWS. And I guess I do stuff on this whole Twitter's Antony  0:24  Hi, I'm Antony. I'm the CTO of a startup called biank. I'm a supposed Svelte maintainer. And yeah, that's about it really, I'm also going to introduce the guest, because I know everything there is to know about Luke. So our guest is Luke. And Luke is not Australian. That's the first most important thing there. And so Luke Edwards is an Australian Californian, that's very important to know. He's also a co maintainer of Svelte. And he's the creator of polka, which is an express alternative, which is focused around speed. And also modularity, I believe. And he's been recently involved in deploying loads of stuff to CloudFlare work, which is interesting, this whole talk on that you can watch, it's also worth mentioning that Luke owns the most number of open source modules on NPM out of anyone. And that's a fact, really, anything you want to add to that, that's not true.Luke Edwards  1:20  And that's pretty much it, I do do a lot of stuff in the open source world. And I imagine we'll talk about some of that. But for the most part, just keep my head down and enjoy building things. So that's kind of what that means contract work or salary positions doesn't really matter. I just love to get my get my hands dirty.Antony  1:37   So you don't code for money. As a rule, you code for passion. And money is a convenient side, Luke Edwards  1:42  I code for interest, I kind of tell I turn away a lot of not a lot. But I turn away clients with that sometimes, just because if I if I'm not interested in it, then it's not gonna turn out well, and I'm gonna find excuses to try to stop doing it. Antony  1:56  Nice. It's funny, because I saw Twitter so quite recently about actually, what got you into tech. And the amount of people who replied by just showing a little bullet emoji was quite shocking. Actually, I couldn't imagine being it just for the money just wouldn't work for me. Shawn  2:11  I mean, I'd say I'd say it's partially for the money for me.Antony  2:16  Fair enough. I mean, it's not you have a passion in it. Right. You have you you enjoy what you do you enjoy advocating as well, and that sort of thing. But just for the money, just, and they enjoy life, right. Enjoy life first. And then yeah, like,Kevin Åberg Kultalahti  2:29   I don't I don't think I could see myself doing something I didn't want to do. Don't want to do Antony  2:35  No, definitely not. Luke Edwards  2:37  It's also kind of amazing, because like, some people would make like hard career changes, right? Where they're like struggling and stuff, and they'll invest the six months, whatever it is, maybe less, and, like, dramatically turn their lives around. So it does start as just money. But like it's so that they can actually do something else and get by better. That's a good point. Maybe people can grow a passion for it when they start doing it. Maybe that's how they got into it. But that's not how they how they were they were maybe Kevin Åberg Kultalahti  3:05  i think that's that's definitely true. Luke Edwards  3:07  I think that's actually kind of at the core how I started to like, I actually was like, enrolled in med school. I hadn't started I was doing all the like, prereqs and stuff. Antony  3:16  wowLuke Edwards  3:16  I guess, disclaimer, self taught. But I was maintaining a nutrition blog to kind of like Chronicle my journey through what would be med school and stuff. And as I'm preparing and like working on this, how do I make my WordPress do expert? How do I make this better? I just unfolded more and more. And at some point, like someone just handed me a client said, Hey, do you think you can build this? Sure, I'll give it a crack. And I got paid. I was like, Well, why? Why am I gonna sign my life away for another like six to 10 years before I start getting paid? If I can just do this now? And yeah, then a passion developed? Because just questions be folded more questions, though.Kevin Åberg Kultalahti  3:56  So you started in WordPress, then? Yeah, your coding career? Yeah. Yeah.Luke Edwards  4:02  Luckily, I have not touched it. And it's been a decade, but it's still alive. It's still kicking.Kevin Åberg Kultalahti  4:10  So can you take us through what what your journey has been from WordPress to where you are now.Luke Edwards  4:18  So I mostly started as a designer, actually. So I was doing my own WordPress stuff. And you always focus on design, and I wanted to cool carousels and stuff. So my first that first client I was talking about was mostly a design work. And then I just implemented it and like basic HTML, CSS, which was all it needed, was mostly design base, and then, you know, a cup that lended itself to other projects that basically I got lucky and it became like word of mouth thing because they knew no one. So all those sort of projects just sort of like honed my design skill set, but then it also honed more front end work. So I basically I started going from backbone route into Marionette and then into I stuck with Riot for a long time. But basically a lot of fun and work in that at some point over, like the next three or four years I started having to work with, or alongside backend engineers, so back into WordPress back into custom PHP stacks, so a lot of Code Igniter, a lot of beginning Laravel stuff. And so I just that gave me some the beginnings of the full stack experience. And then I became more full stack key on future clients, same clients or new ones, and basically lived with a foot in each world for a while. Well, I guess three worlds because there's design in there, too. But yeah, and then so the PHP stuff eventually evolved into elixir. And then I came full circle back into node j. s world, because I was thinking why elixir was kind of starting not to kind of it was definitely still in its in its infancy, a lot more people have heard about it now, which is a good thing, check it out, if you haven't the. So I started doing a lot more Node JS just because serverless was popping up and just throw a lot more companies working with Node JS at the time. And it was just easier to market yourself as a full stack. contractor when you know, you can prove your JavaScript skills on both front end and back end. And so that's kind of where I've been I've dabbled in other stuff along the way. But that's kind of the core synopsis of where things are at.Kevin Åberg Kultalahti  6:28  So have you tried any of the other front end frameworks like React? Luke Edwards  6:32  Yeah, I have them all. Just because as a contractor, you don't really have a choice, you just have to be able to jump into whatever you're doing. It's not the common case that you're starting something from scratch. So it's just whatever they've got, you got to work with that try to improve it, building features, whatever it is, so I've done everything except for anything after Angular two. Right. But like all the other, I have refused to touch Angular after to know, like shots fired, I just, I there's no, like new utility format for me with it anymore. And it's not all that common anymore, either. At least on the contracts. Shawn  7:12  So you've been you've been a contractor for this all this long. Like what I've been up to been tempted to be an employee.Luke Edwards  7:19  I was for the most the majority of the last decade. But I did, sometimes I would sign on for like, a long term contract, like with a couple companies. But for the last my longest was with the company for two years, they were transitioning into an advertising company. And so that's where I basically stopped at the beginning of this year, just before COVID lockdown stuff. So good timing on that. But see, I was the I was there for two years and doing all their backend stuff, all the architecture, a lot of fun. And but luckily, people came in to do a front end work toAntony  7:55  Something is kind of weird, because I don't think contracting is as common in the US as it is in the UK.Luke Edwards  8:00  I don't think it is. I like if I tell new friends or extended relatives I haven't met before, like I'm contracting, I get a little like, I think it's just a way to say unemployed.Antony  8:14  Yeah, it's definitely a definitely different market. And it's changed over here quite recently, I think because of the whole tax crackdown, stuff like that, but contracting used to be where people would aim for. And it's kind of weird when Shawn says like, what you tend to be an employee. It almost never crossed my mind when I was contracting. And then one day I did it. And I spent all the time regretting it and thinking when can I go back contracting again, it's really different. Luke Edwards  8:35  I was definitely feeling that towards like the halfway mark of my last of my salary position I was talking about just the reason I don't know if this is how like I naturally am or if contracting just like promoted it. But I tend to have a project ADD, right, like, hence all the modules. But so if, if I'm working on a contracted thing, there's a there's a fixed start and end date, for the most part. So like most that end date is gone, has come and gone, I can move on to something else, either a new plant entirely or just some other new project and like that works. But if I'm staring at the same stuff for too long, I tend to my eyes tend to glaze over.Antony  9:16  Yeah, that's fair enough.Shawn  9:17  My impression of how it works in the UK, is that like, that's actually how you get the better paying jobs is you contract because there's some sort of rule where you have to, if you go above a certain amount, then then that's there's some tax issue is that I assume I assume that's what Anthony's referring to.Antony  9:34  Yeah, there's loads of weird rules. They've changed it recently. Like when I stopped contracting, which is like four or five years ago now they changed all the tax rules around it. But it used to be that you're a company so you only paid corporation tax. There were there were a bunch of tax breaks but also usually get paid maybe three times as much as a permanent role and the equivalent so anyone with any seniority would go into contracting because it it made sense you know the time but I think a lot of people abused the taxing and try to pay basically rotax, they got a lot of trouble, the government cracked down on it. And because it's kind of an easy, easy win for them. So it's in terms of payment wise, it's become a lot less attractive. And they've removed a lot of the protections you had as a contractor. Because when I was contracting, for example, I was basically an employee anyway, I was treated like an employee by the company, they, I didn't have to get all the shit work, I had the good work and stuff like that it wasn't anything like a kind of you come in because you can tackle these problems, or we don't care about you or anything like that. So it's very, it's very different market in the UK, or it was than it is in other countries.Shawn  10:34  It's in the US. It's like freelancing, or consulting as well. These are different terms that people use. Antony  10:39  Yeah, yeah. contracting usually means you have a limited company, and you treat yourself as a company. You go in, and they don't tell you when to come in. They just say, this is what you want. We want you to do, do it kind of thing. And you act as if you're a company kind of thing.Kevin Åberg Kultalahti  10:53  Sounds about right. All right. Yeah. Should we get into some? Some on topic stuff? Svelte stuff? Yeah. So you You did a talk at Svelte summit, about Cloudflare Workers, right. server side rendering? Yeah. What was that about? So,Luke Edwards  11:10  I mean, what, where do you want me to start, I guess I should give like a primer onKevin Åberg Kultalahti  11:14  workers or just just a summary of the talk. Right?Luke Edwards  11:19  Okay. So basically, I spent, probably, like, 20 minutes out of my 30 minutes, kind of explaining what workers are on in the front, from a front end developers point of view, right. Like, there's service workers, which like, some people are happy about, some are mad about web workers, worthless, which didn't matter. But basically, I give this little like timeline of what workers are and how we may already be familiar with them. And then how powerful workers are kind of the same thing, but in a server, the same thing as a service worker, but in a in a one of their servers. And then the big reveal sort of thing, which says that CloudFlare servers are everywhere. And so that means that your code will run everywhere. And because it's the way CloudFlare workers themselves are architected, they're basically always on all the time, but you're not paying for that, which is what you would get with a traditional global architecture, like one that I set up at my last company, which you pay for it 24 seven, so hugely, way cheaper. And then I went through a couple of demos to show you like how you can just get started with Svelte server side rendered within a worker. And I deployed two demos of that one word, it was like mostly, mostly manual. So it kind of showed you like what that repos still alive. So shows you all the manual configurations and how you would go through it step by step. And then like the last 30 seconds of the talk, I revealed this new tool called freshie, which is kind of all those configurations and build steps done for you so that with pressure you can target, you can build your app as a as if you would with a sapper or next js and then build it in a way that's ready for workers or for node js, whatever you want, which obviously has overlap with the Svelte kit project, but same sort of thing. So it was just the summary is turning into as long as the talk but the whole thing versus this is what workers are, this is how you can exploit them to your benefit as a salt developer.Kevin Åberg Kultalahti  13:19  Cool. So speaking of Svelte kit, and Cloudflare, I'm a huge Cloudflare worker fan myself, so I just got to ask it. Are you working on a on an adapter forLuke Edwards  13:31  there is one being worked on, I personally haven't worked on it yet, just because Svelte kit itself is still kind of its like, interface design is a little bit in flux still. So some of the way the current adapters are, which are all node focus, there's a lot of assumptions within spell kit itself that like we have a node back end, but that's not true with the worker. So half half Nelson, I think is the one who's done the initial adapter, or and he's sort of relaying his findings with what needs to change within the current Svelte kit to accommodate this freshly solved just by basically duplicating the same routing logic, whatever, in different ways for each adapter, which is duplication, but like each of those things only exist once for package. So it's not too bad.Antony  14:23  I think and what Yeah, what we found is that, so I've written these these two adapters for Svelte kit and Rich's written one, and we've rewritten them all at least three times. But what we found every time we've written them as it becomes more and more concise, but they've all boiled down to essentially the same bit of code because everything runs on AWS lambda underneath. Whereas the CloudFlare workers like the access is a completely different approach. It doesn't have noticed it doesn't have a library need. It's very much I've got an attacking myself actually because I have a few so lost. I think it's made us think about what the scope of an adapter is and what it should do as well. Because originally we had to see this and adapt to my deploy the code as well. But what that comes out as is we'd have 100 different adapters for every single possible deployment platform, when fundamentally they do the same thing. So, yeah, it's very influx. And yeah, like Luke says it is being worked on. It's just 100 game changing ones.Shawn  15:19  I think this choice of being node based is interesting. I do see that more design decisions on projects are like, should we assume node because of environments like Deno, cloudflare workers, like these are all just, I guess, isolated space? I don't I don't I like the technical knowledge to go any further. But it seems like there's there's a slow movement in JS to diversify away against from node. I don't know if you guys see this as well.Kevin Åberg Kultalahti  15:49  Hmm. So basically, like, node, I guess, Cloudflare? Yeah. Yeah. MaybeShawn  15:54  like not assuming no API's?Kevin Åberg Kultalahti  15:56  Yeah. Yeah, like a good thing, though.Antony  16:00  It's weird, because people always describe JavaScript as a bad language. I think ES6 has kind of laid a lot. There's concerns. So maybe it's now that people feel the language is so good, that we just need to be able to run that same language across multiple platforms, a bit like the JVM does for for Java and groovy and closure, and all every other Scala, I've forgotten even how many languages around the JVM, but all of them, maybe that's maybe that's how we're going with JavaScript. I don't know what it's where we're going with the ES6 perhaps I don't know.Luke Edwards  16:31  I think the only like, real limitation is when you get into things like like file system API's. Right? And I don't even know if Deno has a I know it has that file system API. But I don't know if it has one that will magically work in the browser. Right. Like, maybe that's where they draw the hard line, too. But I think until you solve that, or things like that, there will always be some sort of division. But yeah, I mean, I agree that like JavaScript should be able to just run everywhere, because that's sort of the whole like tagline, right? Like JavaScript, it just runs unless you need compilers, and whatever else. But yeah,Antony  17:08  I think it's always been a missing puzzle piece for me is it's a puzzle piece that people like, we like you, like rich actually have that you build something that's concise, but so generic that it can work from a multitude of scenarios. And this is the same now because we're saying that Svelte kit can run on multiple different backends or hosting platforms, we have to find the right abstraction level that we can take a Svelte cap and pump it into this and come up with something that run that platform. And it's something I've never, I've never really had the opportunity to do before, but also never really figured that I had a plan for doing that. How do you build a framework? Because I don't know how the world's going to use it kind of thing. And it's something I think some people have, and some people just don't. And I'm definitely one of those ones who doesn't.Kevin Åberg Kultalahti  17:51  Right. So yesterday, I saw you posted a new library. Another one, or I don't know what you would call it, maybe not a library, but a preprocessor. I guess.Luke Edwards  18:02  Yeah, that one's more of like a, it's like a proof of concept sort of thing. The so for everyone listening, it's svelte-preprocess-esbuild, and there's esbuild is this magical golang driven bundler, which also happens to transpile JavaScript and TypeScript that like blazingly fast speeds. So I've seen some esbuild Svelte, like combinations already in the community. But a lot of them just don't bother dealing with TypeScript within the script tags. And like so you'll have various build there. But then you these things are just passing the TypeScript through, like regular TypeScript, which is slow or slower, then yes, build. So I was like, well, you just have habeas, we'll do both, like what's not have to do both. And what's the problem? So I found found out that there are problems, and I'm working to fix them. But the whole project itself is sort of meant to be a proof of concept or like a guinea pig, because it shouldn't live within Svelte preprocessor itself. So this is kind of a way to just like test tests in the real world and like, get some some mileage on it before bringing that risk, into Svelte, we processed correctly. And the reason that's possible is because I think as of the most recent major version, Svelte preprocessed doesn't do type checking anymore. So yes, bill doesn't do type checking. So now their goals sort of align.Shawn  19:30  Gotcha. Yeah. So I mean, that kind of brings me to a question, I guess I always wondered. But a small piece of pre process used to be a third party sort of extension to Svelte and I think it's been brought in to spell like the Svelte org as part of the TypeScript support movement. Is that is that something that's basically formally managed by the the core team now? Is that how it works, right?Luke Edwards  19:54  The people who are already working on stop the process before the migration are still the ones working on it. They're just all So maintainers, so they're just working on the official orc project now, but it's the same project is relocated. Shawn  20:07  And you're thinking that the future is for pre process might be, yes buildLuke Edwards  20:10  for the TypeScript integration. So the way that works is basically, it's set up with a bunch of Transformers ready to go, so long as you have the correct flags within your component markup directly. So for TypeScript, that might mean Lang equals Ts Lang was TypeScript, you know, source equals, you know, there's a bunch of triggers, but it will then only successfully do something if you have the TypeScript peer dependency installed. So it doesn't bring everything with you because it does a dozen or more things, post CSS, sass, eyeless pug a bunch of stuff. So it's just, it's pre configured to do what you want, but you have to bring the engine to do those things.Antony  20:50  This is um, this is news to me. I'm, I'm learning a lot on this podcast.Luke Edwards  20:56  Admittedly, I haven't used most of it. Like there's I know there's a dozen or almost a dozen, but it's a lot of spirits. Every fun and tech you can think of is already pre configured through Svelte pre process and a lot of things that I think wouldn't make sense. Again, like pug not not to pick on it. ButAntony  21:15  I agree.Luke Edwards  21:16  Yeah, it's just ready to go. And you just have to instal one thing. And you're done. It's a nice userKevin Åberg Kultalahti  21:21  experience, developer experience. So it's kind of an interesting thing that you you're building it in, in public sort of, is I think, you guys always push for, for like someone to do it in public first, and then it can be brought in to Svelte. I think I've heard that several times. It's a good thing. It's like the it's like the actions package. You started, Shawn?Shawn  21:50  Yeah, I haven't touched it recently. But yeah, someday we'll, we'll get that merged.Antony  21:55  I mean, people people ask, people ask how to contribute a lot. And I think that's a good way. If you make a product that is that is good enough, then there's no reason that couldn't become part of like the core organisation. It's a good way to sort of sort of get your contribution in really,Luke Edwards  22:12  yeah, yeah. Another example this and I hope it's fine to mention, but now I'm from now I'm forgetting the name. Anyway, in the maintainer chat, there was a Antony Maybe you remember, remember details, but there was a, like an error boundary component that was shared from a spell library. And I never would have thought to use to set up an opponent that way. And I saw it was news to me. It was awesome. And regicide, too. And I was also surprised, and a bunch of us were surprised and impressed by it. So now, this is not an ongoing conversation. But briefly, in the moment, we talked about, like should something like this be part of core Svelte? Because it Yeah, was such like, its utility was obvious, as soon as you saw it, and there was enough documentation examples there. That it was just, it's one of those things where like an RFC would have been good by like seeing it actually, like alive and working and proven. Is is just like, okay, you can't really argue with that.Antony  23:11  Yeah. So this is this is this is crown frameworks and error boundary components. So I think Jason made it but actually half Nelson was the one who originally conceived the idea. What it does is it kind of Monkey patches, the one a Svelte component, so that you can define a perimeter around in your component hierarchy, where errors will be caught and dealt with in line. And I think other frameworks kind of have this already. And we don't so they made this component and published it because they are building like a Shopify kind of equivalent in Svelte and it's something I've wanted for quite a long time. And there was like an issue about it, there's no formalised see, like the access, but there's a, an issue about it. And it does work really well, the monkey patching is concerning, because obviously, if we decide to change the way components are built, it will break. So there's that kind of watch out. And I thought, well, this is probably pretty valuable. It works. It works well. And it's got a it's got a kind of a nice felt fluent UI, not UI, but kind of interface. So yeah, and it actually was quite surprised, because you know, maybe I spent a lot of time in the community, but people hadn't seen this and exposed to it. So those those people were quite impressed with it. So I'm happy about that. And it hopefully will be discussed the next maintainers meet if I can get it highly high up in the list. The original authors of it are very interested in making parts of course, well, I think a PR, but obviously, they all have real jobs. So they're not going to promise anything before before the end of the year or even even maybe January. So we'll see how that goes. But But yeah, it's definitely it's definitely something that we'd like to have because it's super valuable to have to catch errors within a certain hierarchy and and deal with them there rather than your whole application exploding.Kevin Åberg Kultalahti  24:51  Yeah, so Didn't you add this add this to Beyonk? I think you were talking about I have yeah,Antony  24:57  check out now uses it. So it Anything, anything that's in the most pragmatic critical part of the application will now be caught. And what we did actually, we, we instal Sentry. Sentry for those who don't know, it catches errors and logs them and gives you a stack trace in it. And they're kind of isolated system. So you can see when users are having front end, there is no side that you can't otherwise see in your logs. I talked to the guys at Sentry about what's going on here. You know, why isn't there a Svelte integration kind of trolling them, really, because you don't have to do everything else? And then they replied, saying, well, because Svelte doesn't support it, basically. I was like, What? So? So yeah, I then sort of start investigating push the issue a bit. And hopefully, there'll be some more news soon, with a bit of luck.Kevin Åberg Kultalahti  25:45  Exciting. So speaking of the of the maintainers meeting, you guys, but every every other week or so? Or is that every other month?Luke Edwards  25:53  Once a month? Once a month? Yeah, typically towards the end of the month, but with thanksgiving in the US and Christmas, both at the end of the month, it's the end of the year, this year is getting a little dodgy. I'm not sure if that's gonna happen this month.Antony  26:08  We'll see. Some of the year will definitely end it. Should you? Yeah,Kevin Åberg Kultalahti  26:15  Can you guys talk about anything that's, that might be coming up. That might be interesting.Luke Edwards  26:19  Well, I mean, Svelte kit, I mean, it will undoubtedly be talked about, and it will probably be the majority of the meeting, right. But yeah, like Anthony alluded to, there's usually a list of things that like come up during the month that we want to talk about, and then it's just a matter of accumulating to see like the order that they get talked in, sometimes we will, in meetings past, we would end up talking about, we'd have a list of like seven or eight. And like sapra would be second or third on the list. And then we just end up talking about sapper for almost the entire meeting. So that whatever we didn't get to just becomes part of the next next month's list.Antony  26:56  And the thing that's cool sort of reason for Svelte kit being so important, because the reason saffa dominated was cuz it is a bit janky in terms of code bases, it's kind of evolved, and it's not really a good place to maintain and stuff. So certainly, it'll be nice to have that kind of off the list. Maybe Svelte will take his place he knows, but it's initially at the start of this maintainers chat. It was difficult to get past issues, because they were big issues. But I will say that we've definitely got through these big issues now. And things are a lot more free flowing, I guess, which is which is definitely a good sign. And slots was another one that just had a lot of things around it people wanted the original design was more limited. The people needed it to be and that got attacked pretty quickly. In fact, I mean, it's it's Tammy how just attacked most of it. But yeah, that's what he does his machine.Luke Edwards  27:42  Yeah, big props.Unknown Speaker  27:44  Yeah,Luke Edwards  27:45  I think that's one thing to highlight, though is the big, like, the bullet to me, at least the major value in Svelte kit is, is its flexibility. So like sapra was great, especially the beginning because it did if you had a use case that fit sapper like it worked really well, right. But as time went on, your needs may change, you may need to add things you may need to do more complex things because your apps evolve. And it's that fitting tends to not evolve with it because it was so opinionated is a strong word. But it was so good at just what it did that it wasn't really possible to have it move beyond and so there have been really good community efforts for other solutions routed by alder, j. s. Forgetting some but there are multiple out there. And so Svelte K is sort of the sapper 2.0 where it's going to be really good at a bunch of different things. So that you know, you can your applications can evolve with the same tool over time and not hit some sort of ceiling and be like, okay, shoot nowAntony  28:43  what do I use? And modular? probably worth mentioning more modular? Cuz I think that's a big, big theme is modularity, being able to sort of pull out things you don't want and put things in that you do want? Right?Kevin Åberg Kultalahti  28:59  Yeah, right. So CloudFlare workers, I want to I want to talk more about CloudFlare workers. Okay, well, what's so great about them?Luke Edwards  29:07  Well, they're, they're just incredibly quick, and they're practically free. So I mean, most people, it's something like $5, and you get 10 million requests a month, right? And then it's 50 cents for every million beyond that. I mean, like, you just, you can't beat that, right. And they also just execute quicker. So if you have something like a Google function or an AWS lambda, like Bay, they have to start up and most of what that those platforms are doing over the years is trying to make those startups smaller. But like, workers launched with effectively zero startup, I think it's less than shoot, don't quote me, it's either less than 10 milliseconds, or like 15 microseconds startup. There's, those are the numbers that come to mind, but it's, it's one of those.Antony  29:54  Why Why is that the case? Luke Edwards  29:56  So again, don't quote me. It has to do with how they How they store your upload. So they support multiple languages, and all of them have some relation to WASM. So they, I think what they do is they compile it on upload to wasm or some Islip whatever, so that it's basically already in this ready to go state. So that instead of like starting a node process or starting a whatever, it's it isn't there and an ongoing, again, this is how I imagine it an ongoing V8 engine, or something is just filling in these different files. They Okay, you go, you go, your turn your turn. And so it's there's no parsing time, there's no Ready set and go it's just goAntony  30:41  is essentially, essentially assembly language running on a potentially a processor. So something like it's not it's not a interpreted which, which node, JavaScript obviously are a status, right. Interesting is kind of backwards from where we came from.Luke Edwards  30:53  Yeah. And it happens on Upload. And I thought, when I first ran into that, I thought it was a bug. But basically, it's understanding your code when you deploy it. So the reason I ran into this as I was working on a validation library, which I still haven't finished, but it the core of it relied on like a new function, right? Like you would you're programmatically creating a new function. And then the whole library was just creating this function body string so that it can be evaluated. But that's unsafe, right. And so CloudFlare workers has this unsafe protection. So it disallows the function, disallows eval, and it was detecting that within 30 milliseconds of me uploading it. So the entire request on my side was 30 milliseconds, and it came back saying, hey, online is deeply nested line on like, line 200, whatever. It's saying, you're using new function, you can't do that. So it's doing some amount of parsing, and then I remembered, oh, it's doing isolates in the background. So it has to know what's going on.Kevin Åberg Kultalahti  31:54  Okay. I think like, all of these, like, serverless, I don't know what to call them, like services, or I can't even imagine how complicated they they must be to, like, make from scratch. So it's pretty, pretty cool.Luke Edwards  32:14  I imagine it's I know, satisfying, though.Antony  32:16  Yeah, I mean, once you once you've got that running with no with no cold start time, and then it's been the biggest complaint and every service provider in the world, cold start time, then that's pretty impressive. I was talking to a friend of mine, actually, he was talking about fastly doing a similar sort of thing. And it he said that there is a lot of complexity with components and wasum. Because, yeah, you can't rely on all those libraries being available that you that you normally have, you just can't bring everything in and to dos. Like it's like writing isomorphic code on the client, you don't have things like process, you don't have file system, all that kind of stuff. So yeah, I mentioned it's deeply complicated, in fact, so that people who nail that are going to be the new the new AWS. Sorry, Shawn, but it's true. I think. Yeah, yeah. Well,Shawn  33:00  I always thought that. So the missing part is state, right. Like, and that was this was pretty excited to see that the launch this thing, new durable object thing, just actually strongly consistent. That that seemed, at that point, I was just like, Okay, well, fair, you you own this, like, this is this is amazing. I want to buy your stock.Kevin Åberg Kultalahti  33:19  You know, I I actually did buy Cloudflare stock the otherShawn  33:23  week, that'd be totally dominating this, this new cloud. So it's,Kevin Åberg Kultalahti  33:27  I mean, the drawback is that you can't really work, right? You can't really pull in any node library, right? Well, for worker, can youAntony  33:37  because of the wasm thing,Luke Edwards  33:40  Well you can't pull everything, but you can certainly pull a lot of things, right. Like, it depends on how specific like the module was, right? Like, most know, libraries are so big, that it's kind of impossible to know everything that's going on through all the dependency chain. But something like class x, right, like my class names, alternative thing like that doesn't care what you're running on. It's just a function that returns a string.Kevin Åberg Kultalahti  34:05  Yeah. Yeah. So speaking of, of your libraries and stuff. So what motivates you usually to like, build these? They're quite quite small, right? They they're very specific to certain problems.Luke Edwards  34:20  Yeah. It's usually like curiosity, sometimes anger, but it's usually a curiosity. So it's just to see like what's going on under the hood. And so I say anger jokingly but like, if I'm using something and I'm realising that everything else I have in my application is small, or is running pretty smoothly, but using this one thing or waiting for this one thing to run doesn't feel quite right, then that's going to pique my interest to say, okay, what's going on? They're like, why? This is just an HTTP request. Why is this thing like consuming hundreds of megabytes of memory or why is it failing half the time? Why do I have to do this or if this and that is So that kind of, you can call it like some form of OCD, I guess it's just being particular. And I feel like things aren't exactly right. And so that kind of just goes somewhere into the back of my mind to say, Okay, this probably should, should or could be done better. And then I get to at some point, and then I basically treat each one like a puzzle. So I add this extra constraint of making it either as small or as fast as possible, hopefully, both. But that's usually not the case. And just see what I can do with it. But it does. Well, unless unless it's like a necessary thing. Like, unless it's an application I'm actually working on and that bottleneck is currently present. It's some of these things can take months to refine and to, to figure out just because it is a puzzle, and it is for fun, but not most, pretty much. It is most but 90 something percent of the time, something doesn't get released until it's I know, it actually works. And it has been used in production stuff, either my own or client stuff to say like, okay, like it didn't make it did satisfy the requirements I had for it. And then so I try to have this unspoken promise that like, if I release, it should work unless it's like, a not dot zero dot whatever release or has like a work in progress mentioned somewhere on it.Shawn  36:21  But yeah, I mean, I'll mention one of the many libraries and that's something I admire, but also and a bit terrified by but so so I think it's worth mentioning that I think polka and serve in sad, sade, sade and sade a oneLuke Edwards  36:39  Sade the musician.Shawn  36:41  It's a I don't know who that is COI frameworkLuke Edwards  36:43  that's as smooth as Saudis voice or something. That's the tagline should listen.Shawn  36:50  All right, well, yeah, we'll mention it. Yeah. Like these are all used in this whole ecosystem, like I think serve is the default way sapper was serving files. And that's, that's pretty awesome. And it's pretty notable how fast it is. That was actually one of the first things that drew me into Svelte. I was like, okay, it's not just about the compiler. It's also about the kind of people that are drawn to Svelte will also not tolerate the slowness that is in the rest of the JS ecosystem. So I think you you are one of my prime examples of like, yeah, like, if it's not good enough, you're, you're rewriting it, and you're not afraid to do so. Whereas I would?Luke Edwards  37:26  Yeah, it is. It is definitely daunting. So one, one, thank you. But to like an example, this was just this week, Josh Duff is listening. He and I have been talking about me, well, it was my fault. But I mentioned possibly having like another fetch another like, node fetch and node, but not node fetch, just because node fetch, I know, it's being reworked. But it's pretty big. And most of the time, you don't care about like the rest of what node fetch is doing. So I said, like, Oh, just make another one. But it's kind of a bitch. And I'm sure that the node patch teams node knows this and props to them. But if my my do is to set out like a very simple fetch compliant wrapper, so that you can use Fetch as like it, like you would in the browser, button node. But I was like thinking, well, so many things are built on fetch. And so many things are built on like those properties of fish that I don't use, but like the streams API, which everyone uses in the browser. And so so many fetch based wrappers would break in my current version of fetch just because it implements streams. Well, this is where the bitchiness comes in. Because implementing, like readable streams in a browser way which node has always had streams, but not the browser's versions. Is this becoming this huge? undertaking? And so yeah, it can take a while. And I, I guess, one thing to mention, because people ask me a lot is why the reason I have so many of these, like mode variants of my modules, like deepl has equal equal light. phono has three modes, a lot of things have modes. And the reason is because like, I go through so many iterations of modules that like, I'm trying to figure out what I want. But I'm also thinking, well, not in this fetch case, like not everyone's going to care about like the streams API, so they can just pull in the version that they want. So that if you want numbers now, if you want, like the full node fetch, it will be like a kilobyte and a half or something, right, which is mostly the streams stuff. But if you just want to fire off an HTTP requests, that uses a fetch looking API, like s 400 bytes, right. And so it's just, again, most people don't care, especially in a Node JS context. But if you're doing something like workers, right or using building a Svelte kit that can do a can have movable back ends, you know, what your HTTP requests are going to look like. So you can just pull in a package that will satisfy all of those different backends a browser version, a Node JS version and a work er version if it's different, and just pull that in, and it's ready to go. So that's, that's kind of what motivates me with all these different modes. But it does mean that things take longer to finalise, because I'm thinking of all these different use cases for how they might fit.Kevin Åberg Kultalahti  40:16  So speaking of, of Klona, I have to ask, is the name meant to be the Swedish word for clone?Luke Edwards  40:26  Yeah. So I think it says on the top, it says like, why clone and it says, it means clone and Swedish. And then it also says, Why? Why the sheep logo? And because it's Dolly? So Dolly the sheep was for Sally, right? Oh, and so it's a sheep becoming a sheep? Yep. I had probably, like, more fun than I should have had making that logo.Shawn  40:48  But, but I do notice that you you spend time you spend time with the polish like the the logos, the banners, like these are? Yeah, it's nice touches.Luke Edwards  40:58  Yeah, sometimes not all the time. But if if something comes to mind, that seems like it could work I go for sometimes it affects the name choice, too. If I can help it. Shawn  41:07  Are you squatting on any good names? Okay, I'll tell you, I'll tell you my squat. So I have happier. So it's, it's, and I also have prettier so that those can do that.Luke Edwards  41:24  No, I don't I don't think I have any. I have a name that I thought. So I only try to use names or reserved names if I like have a use for them. Because I have some may I don't want to end up like in a situation where I get banned or whatever from NPM for squatting on names. I don't know just risk aversion, I guess. But one name I do have that I planned on using but didn't was y2k. And it's not really a good name. But I feel like I could do something with it.Kevin Åberg Kultalahti  41:53  Yeah, I feel like in general for for libraries and repositories on GitHub. Like it's it's always nice to see good README or like, good, like the first impression is more important than what most people would think.Luke Edwards  42:08  I think it should be something you want to read. Read Me, it's one of those ironic names. Like I get this client all the time you leave them this, like really complex or complex, thorough README for them to read to say, like, this is what I did for you. Here's how to use it. And they don't read it. It's like that's, that's what that's what the file is called. Read Me.Kevin Åberg Kultalahti  42:28  Yeah. All right. Any, any last few questions?Shawn  42:32  Well, I wanted to especially highlight uvu, which is a test runner that i think i think it's been one of my more successful launches this year. Yeah, I agree. Not Not Not like I pay super close attention. But it seems like it's worth talking about because most people think justice, one of the most universally loved tools, according to the surveys, and you made a competitor.Luke Edwards  42:54  Yeah, maybe not in terms of like utility, but I definitely had a competitor that competes on the speed side, right, like so I I'll have, the reason I made is because I was working with a client that had a massive jest suite, and it ran. And it's not specific to them. But it took minutes to finish. And it was only something like 100 suites, or something which may have been 1000, or two assertions, but like 100 isn't that much at all. And then so I spent a weekend converting it into uvu. And it was, I mean, so if I'm talking minutes for Jess, it was like 8.9 something seconds with was just like, jest was doing so much, like setup and prep work and stuff. And a lot of it, admittedly, was how they were doing hooks, but like, because just was set up. The jest files are set up in a way that made it not obvious that their hooks were sort of running more than they should have been, it kind of just didn't feel right. And even at its best case scenario, you're looking at, like, probably would have been 45 seconds versus the same eight seconds. So it's still slower than the day. But you, as of today, you can do, for example, browser testing out of the box, which is a JSON back end anyway. But that's not something you can do with UI out of the box unless you set up a register hook or something. And I have examples of that in the repository. So you can definitely do it. But it's not going back to the modes conversation a second ago, like I don't, I try not to put anything things in by default, unless I think it's going to be used by default. So I don't think most cases are going to want j s Dom by default, so I don't include it, but it's easily easily added if you do want it.Shawn  44:35  Awesome. Cool. Well, all right. Thanks for all your open source.Kevin Åberg Kultalahti  44:40  Yeah, so do you guys have picks?Antony  44:47  We've again, informed the guests haveKevin Åberg Kultalahti  44:51  heard their show before I knowLuke Edwards  44:52  I know what it is.Shawn  44:56  Yeah, and it's mostly just like whatever we enjoy as well. Right? Yeah. Yeah, you could just beKevin Åberg Kultalahti  45:00  like the weather series. Yeah. Yeah, I don't actually have one. This this is this the first episode without pics? Well, it'd be fun.Luke Edwards  45:12  Yeah, it doesn't have to be tech related, right?Shawn  45:14  Doesn't have to be. Okay.Luke Edwards  45:16  I haven't pick. Okay. Okay, so it's a game called Rama cube, which is kind of an old game if some people may have never heard of it. But basically, it's like rummy with cards if you've ever played with it, but it's with tiles. And I like it as a developer. Because when you have down these games with three or four, whatever, and it's either in strips of the Shawn habit.Shawn  45:37  Oh, so that looks like a family. Yeah, it's a knockoff Rami Rami coupe thing. Yeah, the same thing and just use the numbers.Luke Edwards  45:45  Yeah, you just need numbers. And you can play with cards. If you don't happen to have the game. It's basically two decks, but with two Joker's, which are the wild cards. And I love it as a developer, because it's basically refactoring the whole time. So like, ladies, play these games down. Sean's laughing because he knows but anything that's done on the board is open to be regrouped and rearranged. So you have to keep track of all these these pieces and arrange new games or new valid games using those pieces and not having any invalid games before your time runs out. So it's,Antony  46:19  it's pretty parents have it? I think they must. I think the musty they've gotLuke Edwards  46:23  I recommend stealing it. It's pretty fun. Yeah. SoShawn  46:28  my family's story is like we played it at like a family gathering. One of our one of my cousin's brought it. And then we loved it so much that we got it for ourselves. We just within my family. And then my dad got so obsessed by it, he downloaded a mobile app to practice on his own, to be insanely good. So there is some skill to this. Yeah,Luke Edwards  46:45  I play every day. I mean, I played three rounds before the podcast this morning. By yourself, like on the app, so there's an official rummy cube app, or whatever, and you're supposedly playing. You're supposedly playing other people around the world, but I'm pretty sure they're all bots. And, you know, but it's fun.Kevin Åberg Kultalahti  47:05  Yeah. All right. Any other pics I actually have right now, for me.Antony  47:10  So I haven't picked out because Luke inspired me to think of the whole cover behind me the board games and boarding club games. So my pick is definitely a monopoly deal. So if you'd like monopoly, if you can imagine it being playable about 15 minutes, so yeah, monopoly deal. It is 15 minutes long monopoly, I have no can see on the camera anyway. So I'm not sure I'm holding it up. But I am. And it's super, super vicious. So if you think you get angry monopoly, you can get three times as angry in this in a quarter of the time was crazy. It's just really, really nice, like fast paced, the same kind of concept. But everything sort of compressed down a bit so that you things happen more rapidly, and they happen more directly. And it's just great fun. So I recommend this game to anyone.Luke Edwards  47:56  And does that just mean you get like more money more faster?Antony  48:00  It means you get more money faster, it means you often if you may get cards thrown at your face by your wife. It genuinely is so so you get her? Oh, yes, I did. I definitely do. I mean, she would contest that. But of course, you know, that's part of the fun, right? There's a lot of stealing. So I have at one point, been playing with two of the people. And at one point in the game had enough built of my hand that I could take all of this stuff off the table. So just be having everything and no one have anything else is that kind of direct. It takes if you play one round, you will learn all the rules. And that's all you need to know. It's it's not a long a long learning game. So 15 minutes, and you're done basically.Shawn  48:44  Yeah. My family plays that too. So the two of you pick the top two games in my family fully endorsed.Kevin Åberg Kultalahti  48:51  I have a game as well. Yeah, exactly. Yeah. So I tried to Google stadia. And I was actually blown away by how well that service works, right? If you don't have a gaming computer, so it's basically a cloud gaming service. Right, butLuke Edwards  49:11  which one did you play? Oh, IKevin Åberg Kultalahti  49:13  played like one of the free ones that comes with service. So I think it was Orcs Must Die three.Luke Edwards  49:20  A lot of fibre into that name. Yeah.Kevin Åberg Kultalahti  49:25  It's it's pretty cool, though. Like the service like there's no latency latency or Well, yeah, that's pretty cool. Okay.Shawn  49:33  Okay, well, I had to pivot to a game pick. All of you picked games. So Jeremy Wagner actually pointed me to this one, but apparently this has been around for a while Cookie Clicker has it's a browser based game or Taylor dash net or cookie clicker. Just Just Google quick cookie clicker. You get it? It's a clicker game. So you just click click like and then and then you set up factories and machines to to help you get more cookies. And, and it's it's a really mindless game. But it's it's pretty, it's pretty addictive. I had to I just had to close it down in Salt Lake because it was really that addictive. But I did give me an idea that our next Svelte society or a Svelte summit activity, because I think we want to have to have a tradition of like when we have a conference, we'll also have give people something to caught up in and show off and demonstrate. And last time we pick something too hard. But I think the clicker game could be just just good, where you can get creative and bring in some art assets and do some animations. So I think I think that will be my pick.Kevin Åberg Kultalahti  50:33  Cool. All right. I think that's it. So where can people get hold of you? Twitter, website,Luke Edwards  50:40  Twitter, GitHub, discord, looky everywhere, but leuke 05 on Twitter, I said,Kevin Åberg Kultalahti  50:46  All right. Cool. Thanks for joining us. Thank you guys. And thank you all the listeners for sticking with us for an hour andShawn  50:55  a half you Happy New Year. Goodbye, everyone.Kevin Åberg Kultalahti  50:56  Happy New Year. Yeah. Merry Christmas is probably the last oneShawn  50:59  before 2021. Yeah.Kevin Åberg Kultalahti  51:02  Yeah, definitely.Luke Edwards  51:03  See you guys next year. Bye.Antony  51:05  Bye. See you soon. Bye bye.
What's new in Sveltia?

What's new in Sveltia?

2020-12-1224:08

We talk about what's new with SvelteKit, how to contribute and other news in Svelteland!This week Karine joins us to discuss community, news and other Svelte related things. Have a listen.Notes:- Newsletter (sign up to the unofficial mailing list here)- rollup-plugin-svelte changes CSS defaults- Crown Framework and the site built using it.- Ruby on Rails DoctrinePicks:- Shawn: Mandalorian- Kevin: reMarkable 2 - Antony: Asus PN50- Karine: Queen's GambitTranscription:Kevin  0:00  Hello, everyone. Welcome to another episode of Svelte radio. Today we're going to discuss what's happened in Svelte these last few weeks, maybe months. But first, some introductions. I'm Kevin, I run Svelte school. I'm heavily involved in the Svelte community. And yeah, that's me.Shawn  0:20  Hey, everyone. I'm Shawn. I work at AWS and I mostly should post on Twitter. That's my job.Antony  0:28  Hey, I'm Anthony. I'm a maintainer of Svelte and I am the CTO of beyond. Nice.Kevin  0:35  And today we're joined by none other than Ah, Hi,Karine  0:39  I'm Karine. And I work in Seneca in France and I'm the CO organiser of Svelte society day France.Shawn  0:48  Oh, welcome, welcome. Antony  0:50  And you have a cool discord name as well. Shawn  0:52  K6 what is Yeah, what is key six?Karine  0:54  Oh, it's just because Karine is six letters and K6 is shorter Antony  0:58  It's the thing right is KubernetesShawn  1:03  Numeruneum. There's a term for that Antony  1:05  numeruneum. I see!Kevin  1:07  I did not know that.Shawn  1:09  For those who may not know actually so Corinne basically organise society day you run Svelte society, France, and it was just like a beginning to end. I wasn't sure if like Svelte was ready for like a non English conference. But you just did it. And then you got so many submissions. Even got rich to say some French.Karine  1:31  A very memorable moment. That's been recorded. Oh, right.Kevin  1:35  You can see that online. Right.Karine  1:37  Yeah. On the YouTube channel.Shawn  1:39  Yeah, I mean, I think there is a French community. I think Schneider Electric, they get back I was speaking in French. Then there was like the the newspaper like, was it les echos?Karine  1:49  Yes, Les Echos, Yes. And they do lots of infographics, papers. Some of them are powered with Svelte animation. I think there's also a radio france, which is the well the broadcaster of many different radios. And they they use Svelte in some part, and they have a very, I just tweeted recently, an article by their tech, tech lead, and they have a very interesting and modern stack, including Svelte.Antony  2:23  Wow. I mean, radio, France has clearly sort of got their inspiration from start radio.Kevin  2:30  Obviously, it's cool. Speaking of Svelte, what's new with the Svelte lately? Anyone know,Shawn  2:40  there's some versions.Kevin  2:42  Exciting.Antony  2:44  So we've we've definitely started publishing a newsletter. I don't know exactly who's involved in that. But somebody sort of started publishing announcements, because I think we mentioned on here that we never announced any new features, we just kind of rolled them out. And it's good to sort of get a bit of notice and traction around around the version. So there is no newsletter. I'm terrible, because I don't know where it lives or how to see it. But it's probably on the blog. Right. It's on the stock blog, which was abandoned for a long time, but but it's on there. It lives again.Shawn  3:11  So I suspect this is like a tear. Yeah, so Svelte dot dev slash blog. The thing about this newsletter is that there's no place to sign up. What what kind ofAntony  3:21  like, it's like a blog, news block. You can't You can't syndicate a writeShawn  3:28  it there's, I don't see an RSS Yeah, there'sKevin  3:30  no rss,Antony  3:32  unsubscribable.Shawn  3:33  If you want to contribute to Svelte you know what to do.Antony  3:37  Yeah, that would be a very good, very good first thing, actually, because this is stored as a bunch of markdown. So there's no reason this can't be syndicated pretty easily. Yeah, so so new, feature wise. I mean, I mean, everyone's everyone's sort of focused on Svelte kit right now. But in the background, there are some new features going into Svelte itself.Kevin  3:55  I think we've had a number of like smaller point releases, right? Antony  4:00  Yeah, Kevin  4:01  with some new features like props, rest, props, and custom web components is one of them.Antony  4:08  And it's just I think there's just some syntactic sugar around the promise, like the await syntax, just to keep your code clean a bit cleaner. I'm still not a fan. putting away in your template. It doesn't feel doesn't sit well with me. But for those who use it, I guess it's really kind of a terse way of just making sure your data is ready. And then they're pumping out to the page. So this is good. Yeah it's good that that is getting some love Kevin  4:32  some, some other stuff as well?Shawn  4:34  I should mention Karine has in the chat. You can speak Karine. I think you found the signup link.Karine  4:40  Yeah. It's it's Svelte that substack.com and there you have the sign up for the newsletter and Oh, that's a different clever link. It's okay. It's, you know, it'sKevin  4:53 it. It is the same but like we, I guess you kind of want the like an official signup thing because This is run by the guy that writes it, I think, okay, which is fine. I suppose.Shawn  5:04   that's good enough. Better than us maintaining a separate mailing list.Antony  5:09  Yeah. Okay. Well, that's, that's that's nice about it to be honest.Karine  5:13  So now Antony you can subscribe.Antony  5:16  Now that what's going on, we should be really useful.Shawn  5:19  I just very keen on email capture. I'm like the next conference that we do we need to have emails. Antony  5:24  Yeah, absolutely. Shawn  5:25  Activate people. All right. So I guess maybe the one surprise because I haven't seen this before. I would want surprise I was rollout plugin Svelte removed the CSS option, Antony  5:36  They didShawn  5:37  This is surprising Why?Antony  5:38  It's not a question I can answer. Again. I didn't work on that plugin. And I think now i don't i don't know. But yes, I know that you have to specify a specific CSS plugin for it. Now. It's cool to come people out because they're just sort of upgrading major versions without realising that. It caught me out. And we're gonna try and diagnose them in the book. But yes, that's the case. There'll be there'll be a bug somewhere that tells you exactly why it's been done. Yeah. It changes on that,Shawn  6:03  apparently, and it was discussed in Discord. So it's PR number 147 on Rollup plugin Svelte, and they just want to handle CSS within rollup. So cool. All right. So this metric changes. I mean, I often been thinking about how you know how Svelte in tailwind is a little bit hard to set up. I've often been thinking about adapting or forking the roll up or Webpack loader and just incorporating it by default, so that it would be zero setup. I don't know if I haven't needed it. I mean, when I start my next project, I'll probably do that. But if anyone else wants to steal the idea, please be my guest.Kevin  6:42  Isn't that kind of what Svelte kiss kit isShawn  6:45  sorry, I'm doing. We're not we're not digging in post CSS and stuff like that.Kevin  6:50  Oh, no, no, but like the no build, or sorry, no, no setup stuff. I mean, speaking of Svelte kit,Antony  6:57  Speaking of Svelte kit. Kevin  6:59  What's new?Antony  7:00  I can tell you kind of what's going on literally right now as we speak. So in terms of what I've been doing, I've been working on the Vercel and the begin plugins, the adapters. So those are now Vercel works really well. The begin one doesn't quite serve static assets yet, but it will leave very soon when now because they've been very helpful. Both these both these people, both these providers have their have their people on our Discord. And we're on their slacks and stuff. And they're collaborating with us because they really want they're really eager to make everything a first class citizen. So I think both beginning wsl will have baked in support for Svelte kit, and it'll be a matter of just pushing it. And it works rather than the kind of custom created driven adapters and things like that. So that's pretty exciting. They're both big fans of it, the netlify adapter has been rewritten as well. So what happened with adapters as a whole was they went from a kind of more manual process of taking the snowpack output, and compiling bits of it building manifests wiring that up into a format that each type of provider could use such as lambda, one day, rich came along and simplified the whole thing. And now there's like a builder, which just has a bunch of methods, you can call like four methods, one for static files, one for client files, one for SSR content, and they will just basically provide you all of this stuff as a file system, you can then drop in the right place, and then you have a lambda to serve it. So adapters got radically simpler, which should mean that people building their own can do it in a predict less than hour, maybe depending on how well you know the host you're going for. So it's pretty exciting. You won't need any specific knowledge, it's pretty, the API is pretty verbose and straightforward. Language wise, in terms of the application, like SvelteKit itself, is just getting more and more polished. So obviously, it started out as a bit of prototype, it's now becoming very much like, like for like for sapper, we're having some discussions around testing strategies, and perhaps making testing a first class citizen. So we've in the past kind of shied away from a bit because we don't want to enforce a specific testing methodology or bless something like Cyprus, or QA wolf or any of these providers, or libraries, because it kind of puts us in a position where we're advertising something without really having any say over it. But what we're going to do is provide a way to make it a one step journey. When you want to write tests. There's not like, Well, you can't test it. That's that it's more, go and look at these. Here's some suggestions. Here's some options. One interesting thing that happened was from the actual codebase itself Svelte kit, TypeScript was removed entirely not for the supporting on the outside but removed from the code itself. And the reason that happened was because when we're prototyping mostly when Rich is prototyping, actually, the types kind of become more of a hindrance than a help. It's like, you know, you wouldn't write prototype and then cover it in unit tests, because we can get in the way. So the plan is now if you know, we release this into the public domain, at some point soon, people might be shocked. Where's all the TypeScript gone kind of thing but what's actually going to happen is we're going to add it Afterwards, when the API is more stable, and then we're going to have, you know, all the types available to make developing it really, you know, simple and exciting. So, so yeah, there's a few things that have gone on a few things more controversial than others. What else has happened? You know, it's one of those things that sort of every day I wake up and everything's changed. So it's not a bit like that. Yeah, there's nothing else that I can sort of say that I've been absolutely all over. Yeah. And we're having discussions about CSS. So that's good. And there's also discussion on image processing, whether we provide a plug in or not, not sure. But snowpack can do this sort of stuff. So it's possible that maybe there's a chance that there'll be a sort of guide to say, instal the snow pack plug in. And there you go, you can process images.Kevin  10:43  Cool. So that's Svelte kit. What's happening in the community? Like, did you guys see the website by the HyberLab guys? It's like they made an e commerce site with the sockAntony  10:57  crown framework,Karine  10:58  the Swedish history, brand of clothing.Kevin  11:02  Yeah, exactly. I actually go on to the website, sometimes to just experience the speediness and snappinessAntony  11:09  it is really nice. It is a really nice site. Actually, on the on that subject I used there, they've written a, an error boundary component is something actually I think, personally, I'd like to see added into Svelte but essentially a way of demarcating an area of the of your page or component where any error is thrown a call and you can handle them independently, everything else. They weren't bubble up and break the whole site, is a bit of a monkey patch at the moment sort of goes in and changes internals, it might not might not work the same way forever and ever, never. But it's definitely a good indicator of how it can be done. And it does work about to start using in production. So fingers crossed. Wish me luck. But that's Yeah, that's quite a crown framework. So that's pretty cool.Karine  11:48  Well, I was wondering, we are similar people wondering how how people can contribute to Svelte kit, the core Svelte kits, and how do you maybe screen people? Is there a process? Or how does that happen? For contributingAntony  12:05  So I guess the main contributor right now is rich, it turns out that the way that works best for Svelte and has historically is that rich goes away and scrolls away and does something and then comes out with a with a product. And then people jump on afterwards, that's kind of happened, it's it's difficult to get a lot of people around something when it's in such an early stage with a lot of movement. I'm doing adapters, because they're quite isolated and separate most of the codebase. And people are contributing various things. So Ben was looking at the TypeScript stuff. He's doing all the build tooling, things like that. There's lots of other contributors, but the, the core is mostly Svelte maintainers. The reason being that with probably like, 16 of those 20 years, right now, with just those opinions, it's very hard to come to consensus on stuff. If we then throw in the whole community, it gets really hard to come to consensus, and the whole thing could grind to a halt. So I think until something foundational is there, it will be kind of private, hopefully not for too much longer. The other thing we've done is we have added some contributors from other projects. So you asked how outsiders can get in and contribute. We've added contributors from projects like our you know, all the kind of projects doing similar things. So Svite, for example, Elder.js, for example, anyone with ideas about how something fundamental would work, and who already has an implantation of it was invited to come and get on board and join in because they can provide that sort of the insights have already gained. Outside of that we've got people from Vercel, Begin there. Also, they have access to the code and they're able to review it. That's mostly to make sure that we're doing things that are saying when trying to ensure their platforms. Apart from that, there's pretty much no one else, there's no one else. There's no one else from outside who's contributing just yet. There's a bunch of people trying it out equally and being very confused at why it changes day to day. But yeah, so the idea is to go into a sort of an alpha stage soon, where we'll open up the repository, the source code, I guess, and then have some maybe installation instructions. And then on top of that, we'll have a repository that just handles issues that isn't the main repository, so that people can log and triage things that are affecting them. These will then be filtered and raised in the main repository where we can handle them. Hopefully, that period won't last too long. It will just be some ironing out some basic issues and then we'll have the the kind of proper open public beta, where everyone can jump in and get involved in contributing. I'm sure we'll have a million adapters for everything under the sun very, very quickly. Yeah. Karine  14:34  Okay. And are you planning on maybe having some kind of guidelines or, um, I remember back then, when I was working on rails, Ruby on Rails, they had that doctrine that was like the the, the 10 commandments of rails that guides you from what you will do and what you won't do what you're willing to compromise on. TAntony  14:57  That's a good idea. We don't have any more Like that, traditionally, we're very, very bad at providing contributing guidelines. If somebody wants to write these, that's fantastic. We definitely would like to have that I think we need it even internally in the maintainers. Because Svelte is in a position where it is actually quite a complex concept is doing something that not lower the frameworks are doing, and it makes things a lot harder. And even within the maintainers, there's, there's not a huge spread of knowledge. There's a bunch of people who know certain areas. So it's definitely something we'd want to have. We just don't have it as yet. So yeah, that's a good way to contribute that Hey,Karine  15:34  girls with with, I have the impression that this is a very opinionated language or framework. I don't know which term defines it best. But yeah, it's really at the image of rich, actually, which she who is someone who's very opinionated. So usually, yeah, they're probably some boundaries that you don't want to be crossed. Sometimes.Antony  15:58  There, there probably are. But I think the word boundaries is in itself, maybe a bit, a bit anti rich, because if you talk to rich, what he will say is, don't try and confine yourself to boundaries, think outside the box. And that's how you can wake up with great ideas, everything that he does this kind of against conventions, sticking things in node modules that aren't from NPM, for example, that sort of thing. They those are not within any boundaries. So I think you'd actually invite people to come and give their own opinions and views on things. Obviously, people open prs and things get merged. And things don't make sense or wouldn't be good. Just not going to get motional get a lot of feedback saying this probably won't work because of x and y. But I think I think any contributing guidelines given would be more along the lines of where to find things, what to get going with what's easy, what's hard, why things are done a certain way. And I think you could reverse that maybe by saying, as somebody who wants to contribute, what would you be concerned about? What would you want to know? And from that maybe we can build contributing guidelines based upon what we know of, you know how it is.Shawn  17:01  I should probably also mention that you don't have to contribute to Svelte core, you can also contribute in other ways, like organising meetups.Kevin  17:09  Yeah. Svelte society website. We got some some prs. Right. Yeah, yeah,Shawn  17:14  we got a PR from MAC FPGA on GitHub. I don't know their real name. But yeah, they we now have a working components filter search thing on the spot society, Dev nice. And we need more recipes. We just I'm you know, all of us are just volunteering time. But it's one way to demonstrate that you collaborate and are interested in Svelte and I think that's one way to give back to the community. You can ask her questions on discord, there's endless questions, a Stack Overflow as well. I'm not sure if people are actually searching on StackOverflow. But they're asking, asking questions, for sure. And they need to be answered.Kevin  17:50  All right. So this is gonna be a pretty short episode. This time,Shawn  17:54  I have a couple more announcements that we I don't know where we're wrapping up. So this felt jobs account came back alive. I think Noah Glaser from San Francisco is running it. So he's doing a meetup on December 9 at 7pm pacific time, you can sign up on the spot jobs account, I guess, just look for a small society, Bay Area by Noah Glazer. And then the other announcement that we should probably mention is that the state of JavaScript survey is going is going on. So obviously, we're not telling you what to vote for. If you're listening to this, we would like your your opinion to be heard. So you can hit head to state of js.com particularly, this kind of survey has historically been over represented by people who are extremely online. If you're listening to this podcast, if you're on Twitter a lot or if you're on discord, you're probably extremely online. There are a lot of developers who are not represented because they're they just do their jobs and they don't really engage that much on online community. So be great to reach them. And yeah, state of js.com it's the link there.Kevin  18:54  Cool. Antony  18:56  I've done it already Yay,Kevin  18:57  you have a pick. Shawn  19:00  Oh, we're doing we're doing picks. Kevin  19:02  Okay, I got this new tablet today, huh? It's called a remarkable tablet. Oh, that's like $200, right? Oh, no, more like some 400 I think, Wow. Okay, it's like an ereader. But instead of reading you do or writing on it, and like converts text and you can annotate on top of PDFs and stuff. It's pretty neat Shawn  19:24  Do you draw, or do you do diagrams, what do you actually use it for? Kevin  19:28  So I I just got it today. So I I haven't really been using it much. But from the little I've done, I've done some annotations on PDFs pretty much highlighting stuff for arrows. You can draw on it as well.Antony  19:43  It's very cool. I'm thinking of asking them for Christmas but not sure Santa can afford it.Kevin  19:49  And the waitlist is huge. So I ordered back in like three months ago. Wow. I just got it. Yeah.Shawn  19:58  I can go well, the rest of you Think about your picks. I'm going to pick the Mandalorian so good. And it's Yeah, for those who don't know it's it's kind of takes place it's it's a Star Wars TV show run by me by Disney plus, and they're releasing it weekly. So it's not like the the Netflix l dub the whole season on you at once. And it's just so great to watch something together with other people and just like speculate about what's going on. I can't try not to spoil anything, but it's taking place after the the main original trilogy movies and it's just very well executed really good action. I run when I watch it. I don't even feel like I'm running. I just, I just get a good 30 to 45 minutes of exercise just watching it and it's one of the best TV shows I've seen.Antony  20:40  I'm gonna have to watch that. That sounds that sounds pretty good. Kevin  20:43  It is good. It is good Shawn  20:44  And the soundtrack. Oh my god. So good!and the technical side as well. Have you seen the documentary?Antony  20:51  Yeah, I'm gonna go because I've got a pic. Again, in tradition. I'm going to pick something weird. So it's something I don't actually own is something I want to own and I spent a lot of time studying it and I hopefully will own soon. And it's the Asus, pN 50 barebones computer. It's like a tiny little desktop computer that runs a ryzen AMD ryzen processor. So I'm a massive fan of ARM processors, I really, really want an M one. But I really, really don't want to run OSX. I'm a staunch Linux user, and I will not be changed. So I'm going to be sort of stuck for arm apart from my Chromebooks and stuff for quite a while yet. So I'm going to buy this bare bones PC with a with a really fast processor in it. And hopefully, it will alleviate my problems where I can either podcast code or use discord at one time, because my machine's got eight gigs of RAM. And it's, it runs out of power pretty quickly. So yeah, my pick is going to be that machine. And hopefully in a future podcast, I will tell you how great it is. Yeah, it's surprisingly cheap, it's probably comes in at about 300 quid. So also,Kevin  21:53  so that that's cheaper than my tablet. Antony  21:56  Yeah, yeah. I mean, it's that cheap, you know, don't get memory with it, or an SSD. But I mean, those things are cheap, and probably people already have an SSD anyway. You know, and a memory memory is another 100 quid or something. So again, you spending probably half what you might spend on a laptop. And it seems to be very, very, very fast. So looking forward to that as a new death machine.Kevin  22:15  Yeah. Oh, wow. Check it out. Karine, Do you have? Do you have a pic?Karine  22:20  Ah, well, yes, I it's been a long time since I watched a TV show on Netflix. In the last one I saw and liked the loads the Queen's gambit, you've probably yes, came across that one. Because it's really a very popular. Well, I could have watched it because it's quite short. It's only seven episodes. And it's that's the story of that badass chess player, the woman, a woman that plays chess is a very high level and it takes place in the in the 60s in the 70s. And while the story is nice, you can really get you can really get into it without knowing anything about chess. And I think there was a publication stating the influence in that series on the record sales of chess boards, right, was released. And the last point I really loved about the series is the the soundtrack and takes place in the 60s and the 70s. And then the colours and the graphic treatment of that Siri, the vintage settings and the vintage looks. It's really great and refreshing. It was nice. I mean, liked it.Kevin  23:31  I'll have to check it out. Antony  23:32  Yeah, an interesting note on that as well on Twitter last night, actually, they cast a transgender actress as the teacher and the school just as a playing a woman just just that's it. No problem at all. There was just no furor about it. There was no you know, special treatment like that. And people thought that was fantastic. Just so, so natural and great. So that's, that's pretty exciting as well. kudos to them. Alright, soKevin  23:54  that's it for for this episode of the Svelte radio. Thanks for joining us, Karine,Karine  24:00  thank you so much for having me.Kevin  24:01  We hope you can join us again, for a longer episode maybe in the future. But yeah, Goodbye, everyone. Thanks for listening. Bye bye bye.Transcribed by https://otter.ai
Scott Tolinski of Syntax.fm fame joins us to talk about Svelte, React and podcasting. Oh, and he has a new course on Svelte animations! Have a listen!Check out his courses here: https://www.leveluptutorials.comPicks:- Scott: Q clearance - the hunt for QAnon (podcast)- Kevin: Brandon Sanderson - Stormlight Archive (books)- Shawn: Writing Excuses (podcast) and Acquired Podcast (podcast)- Antony: That Chapter (YouTube Channel)- Scott & Antony: JCS Psychology (YouTube Channel)Transcription:[00:00:00] KAK: Hello everyone. Welcome to another episode of Svelte Radio. Today we have yet another guest. But before we introduce the guest, we're going to introduce ourselves. So I’m Kevin. I run a site called Svelte School, and I love Svelte, and I run this podcast as well. [00:00:19] SW: I’m Sean. I work at AWS, and I’ve been doing some work on the Svelte Society website recently. Got to give it some love. [00:00:26] AJ: Hi, I’m Antony. I’m a Svelte maintainer, mostly working on kit at the moment. And I’m also CTO of Beyonk, which is a booking system for tourism and leisure. [00:00:35] SW: And thanks for picking back up, hopefully. [00:00:38] AJ: They are. Well, yes. And it’s a tough one, but I think so.[00:00:43] KAK: All right. So our guest today is Scott Tolinski. He is a friend of the show, sponsor and lover of Svelte it seems like, because I just listened to you on the latest SyntaxFm where you're the co-host. And when someone asked what's the best and easiest JavaScript framework for beginners, both of you answers Svelte, which is I think it's an interesting change from before maybe where you may not necessarily have said that. And Scott is – So I’m going to try and do an intro, because I feel like I’ve heard it so much, but then also you can fill in the gaps. I like that description that you always say like you're a full stack developer from Denver, Colorado. That's a mouthful, but it accurately describes everything. You run Level Up Tutorials, which actually I think started as a YouTube channel with some tutorials on some kind of design software that I have it in my watch list, but I haven't seen it yet. It's a huge channel. I think you're like 300 something K subscribers. But now it's a paid platform where you have monthly video courses. And then you're also a Bboy, and I always love watching your videos of your breakdancing. Is there anything that is typically not mentioned in intros that you'd like to share?[00:01:55] ST: I don't know. I’ve been a developer for since 2011 professionally, but I’ve just been a lover of making websites for a very long time. I just like really find passion in this stuff. So whether or not that is like a part of my business platform or what I’m doing, like it was first and foremost like a hobby for me and the thing I kept going back to. So maybe that isn't often mentioned just like how much I truly love this stuff, and I think that's maybe something a little interesting or not. [00:02:27] KAK: Yeah. I mean I do see when you post updates about how you're changing the Level UP site, and you put some effort into the little details of the animations and stuff like that on the site and it really shows that you pay attention to the details. And it's mostly a one-man operation, right? Like you have some content creators, but it's mostly you.[00:02:45] ST: Yeah. And I’ve had three guest creators and we just hired on our first like full-time developer last month. We've had a part-time developer for the past like year or so, a good friend of mine. And then now we have two devs working on it, one who's part-time and one who's full-time. And so it's a growing operation and we're hoping to have a bunch more guest content creators on next year. We have a few people signed on to do some really neat courses for us on stuff that are gaps in my knowledge base. It's funny because like some people are a little surprised that I can produce like a 20 video tutorial series in a month every month for a year. But I should say that I’ve been doing it since 2012. So like for me I have the flow and everything so practiced and I have the formula down to how I like to do things and how I like to learn things and how I like to explore topics that like, “Hey, when we started Level Up Tutorials, it was just a way to try to give back to the Drupal community specifically on YouTube because there was like no good Drupal content.” I was cranking three videos every Monday and Wednesday. So I was getting like six to nine videos a week. And I just did that for a billion years until now, and then it's like I’ve had all this practice to be able to do it. So it's like, “All right.” Well, I feel like I’m probably even producing less content than I used to just because it's a little bit more dialed in. [00:04:15] KAK: And you have a lot of courses on your on your site. I remember I took one of your Gatsby courses way, way back. It was really nice when I first got into to React. It was great. But then you also have Svelte courses, right? [00:04:33] ST: Yeah. [00:04:33] KAK: You had two of them before, right? You had the Svelte for beginners and Sapper for beginners, right? [00:04:40] ST: We had a Svelte course, a Sapper course and then now animating Svelte, which was the latest one that came out in October. And I’ve done a lot of animating React courses. So for me this one was interesting to be able to apply a lot of the same like, “Here are our basic animations you need to know, but then try to do them in a completely different system.” And like some of the stuff – It's funny, because we can get into it more, but some of the stuff in Svelte was like too easy. It's like, “Okay. In React, to do a fly-in animation, we have to pick a library,” because there's like eight libraries to pick from. You got to pick a library then you got to write the in and out and you got to worry about the mounting and unmounting. And then in like Svelte it's just like, “Oh! Import fly. Attach that directive to –” I feel like a fraud for teaching that because it's so simple. But then like if anybody's coming from any of their platform, they're going to see how nice it is. And to me that's the reason why we talked about Svelte being probably the best platform for people to pick up, because it's so simple like that. You don't have to make a lot of choices in those regards. I mean what we made a like a modal. I think the modal – I don't know what video that is, but we made like a modal in one of the videos. And it is like a really nice looking, like almost like the native animation that's on Big Sur and macOS type of looking modal. And it took us no time at all. It’s like just pop on a couple of directives on a couple things and bingo-bango! It's just working. [00:06:11] AJ: Just a question about actually starting from going, say, something and hit React or whatever and then going to Svelte. How much time do you spend making yourself proficient in that framework enough that you can then teach others and how do you do that?[00:06:24] ST: Yeah. I go like super immersive. I have like a number of projects that I just done and start building and hacking and just trying to get the lay of the land in terms of how things function. I’ve always taught best when I’m teaching something that's very fresh in my mind. Like the channel was started on the premise of me teaching what I had just worked on that day at work. So I think becoming an expert in something is kind of a detriment occasionally to like the content you're trying to produce, because you lose all of those little missteps you hit along the way. And I’m not a great reader either. So like reading docs is not good for me. So like what I do is like I can read code. I like reading code and I like listening to videos or podcasts or whatever, but reading docs over my eyes. I just like, “Uh! Go to sleep.” But for things like this, like if I wanted to do this, what I’m going to do is I’m going to have some of the examples open, some of the docs open and I’m going to have some ideas of things that I want to build and I’m just going to try to build them. And sometimes it just works and I’m just like, “Oh, it was easier than I thought.” And other times I hit a bug and then I fix the bug, hit a bug, fix the bug, whatever. And through that I gain ideas about what people who are coming at this from a completely like ignorant place might run into when they're doing it.And the idea for me is if I’m hitting all of the bugs ahead of times, I’m going to be able to call out what you're not thinking about or what experts are not thinking about when they're teaching something because they just totally miss that aspect of pain points that normal people might have when working on this. I think too oftentimes experts come at technologies from a place of jargon and filling people's heads with things they don't need to know too early. I have a lot to say on this, because like when I was teaching, I would always find that my tutorials that I always felt were too basic were always my most liked and most viewed, like hands down every single time. And that like really shaped how I view creating content in that regard. [00:08:25] AJ: I think that makes sense. I think people start with these sort of tutorials when they want to learn from ground zero almost and that you actually want to teach them about the first roadblocks that they encounter. Like you said, if you've done them the day before or whatever, you already know what you found when you sort of hit that, and that's exactly what they would want to know and you've had the benefit of doing the research for them and you can just say, “Hey, you'll encounter this and that's how you fix it.” So yeah, absolutely. I think it's great.[00:08:53] KAK: Totally. Before we get too deep into Svelte, I was just wondering was it like risky pickings Svelte for the first time and blocking off a month for it? Because obviously maybe like people who subscribe to Level Up might have expected a React leaning content mix, and then to see more Svelte, that might be less relevant to them. Is that a concern?[00:09:16] ST: Ever so slightly. But I’ve never really been too concerned about that. Like I’ve been always – I don't know, pretty decent about following my heart in this. It's funny because like I do have polls in like user submission stuff to ask my customers like what they want to see, right? but too often times, and I don't want to bring the whole old Henry Ford thing into this where he's talking about faster horse thing, but like – I don't know the quote exactly, but either way like a lot of the times the suggestions, and I love my audience, are not things that I would actually produce a course on. And they're like hyper specific whatever they're working on at this moment. Like, “I want a tutorial on AWS with this and this and this very specific thing.” It's like, “Okay, but you're the only person who's going to want that.” And so I’m always looking into things that I think people will find interesting if they give them a chance. One of the first examples for that for me was with Meteor. When I started doing Meteor tutorials in 2015 it was like just when it hit version one and people were kind of hyped on it, but it wasn't like a lot of people still didn't know about it. I just heard about it at a meet up. And like those tutorials for me did really well, because people didn't know about it and they were surprised at how easy it was and how cool it was. In the same regard I think that was how I felt about Svelte. It's like people might not know about this yet or they might not know how cool it is. But I’ve turned a lot of people on to Svelte felt in my channel just because they can see, “Oh, I’ve been working in React for so long and now I don't have to deal with choosing a state library. I don't have to deal with any of these things that React makes very difficult.” [00:10:59] KAK: Yeah, I feel that. [00:11:00] ST: Yeah. So it isn't inherently a risk, because you might lose some people, right? But I’ve never been too concerned about that. Like even with Gatsby, right? I think my Gatsby tutorial was like a year ahead of most others. And I did like a Gatsby unboxing video before like anybody knew what Gatsby was, just because like I feel like I have my – I have good intuition in terms of like what will speak to people, because I feel like I’m an everyday developer. I like my code to be simple. I like it to be easy to write. I like it to be clean. I like it to be efficient. And it's like when I see something that makes me go, “Oh wow! That's pretty cool.” I have a good gut feeling that other people will feel that way as well.[00:11:43] KAK: Yeah. What you just said makes me realize that a video site like yours, people may not actually watch to learn the thing right away. They might just be using it as a survey, “Like give me – I'll take 40 minutes and then let's just see what this thing is about. And I don't have to delve into it myself. I can just watch Scott do it for me.” That's a value ad in itself. [00:12:04] ST: Yeah. I’ve been starting off each series. I’ve been doing this recently. When I do a new technology – I’ve started really falling into a formula where my very first tutorial is always a What Is? So I used to have a series called like What Is blank? What is React. And I would just describe it. And those are now my very first tutorial in every series. So if I’m doing a series on Dino, is the course for this month. The very first, “What is Dino?” That way like if you want to check in and watch the first video and understand what the heck do you know it even is, then by all means, watch that first one. And if it's not interesting to you, we have a lot of other content for you to watch. [00:12:44] KAK: All right. So this new course – Well, what's in it? It's about animating, but you can animate all sorts of stuff. What are you focusing on?[00:12:52] ST: The focus is really like hyper practical interface animations. So like we teach you – In like the first five videos we teach you like the basics, right? How to use the built-in animation directives, the drop-ins. Then maybe what exactly like a custom JavaScript animation is doing in the fact that you can just get access to a time value and manipulate it to do whatever you want for custom CSS, right? And then once we teach you those things we get like right into the practical application where we're building like a slide in navigation, and then a toast menu, and then a modal. Like real stuff that you're going to build. So like that's really the goal for me. It's like these are the things you're going to build a hundred times. So like you're going to want to be pretty proficient in those pretty quick off. And then after that we get into stuff that I’m really into, which is like gesture-based animations, things like dragging and stuff. We get into actions pretty quick. The actions video is like the ninth video in the series where we explain what they are. And then we start to build what could be the jester drag library that Svelte doesn't have that I would love it to have. Although we kind of just ignore the fact that mobile exists for the sake of simplicity. But like the idea is that – [00:14:06] KAK: It does exist.[00:14:07] ST: To get started. Yeah. And that's really it for me. It's like in the React course, I’ve done – Oh man! I’ve done Framer Motion for React, advanced Framer Motion. I’ve done React Spring. So I’ve done three. And I did a 3D React course, which is a lot of animation stuff. So I’ve done like four animating React courses. So I have a lot of these like projects in my back pocket of things I'd like to build. And like the next step up from this would be like, “All right. We have like –” In like some apps on mobile you have a drawer you slide up, stays up, slide down. You can interpolate other values from those values. I have projects that I sit on and I’m thinking, “All right, if I ever do an advanced course, this is what I’m going to do it on.” So it is funny. I have like all these like little animation ideas floating around. And then once I get enough of them in my head, I could produce like the next level to that like getting started course. [00:15:02] KAK: Cool. The action section is – I haven't watched your tutorial yet, but I love action. So I’m definitely going to check that out. [00:15:10] AJ: I’m excited, yeah.[00:15:12] KAK: Yeah. Every time actions come up, I get super excited. [00:15:16] ST: They're very good. It is really fascinating for me to see like even like get into like the custom event stuff, right? I don't know. You're not you're not beholden to some library's ideas of like what you want to access. And like I can write custom events to do whatever I want to trigger events in Svelte from my action. And I could attach DOM properties or whatever I want in that action I can do, and it just to me is elegant. It's very elegant. And I thrive on a little bit of magic. The right amount of magic I thrive on in actions to me is that right amount of magic. [00:15:51] KAK: That kind of sums actions up pretty well I think. [00:15:55] AJ: Magic enough, yeah.[00:15:57] ST: Yeah, magic enough. Yeah. I think people's minds can get blown in that. So in the actions content what we do is we like teach you, “All right, just by applying an action, this is all that happens,” right? It's very basic edits. This is what happens. Then what you do is you click and drag and move the X property storing that state and using a Spring, right? So you can store that state in Spring and now, okay, you can drag it on the X. Oh! Look at how easy it is? Now you drag them on the Y. Oh! Now you want to add some constraints. Now you want to add some events. You want to build like a Tinder swipe thing. You can do that in like two seconds. I think that kind of stuff really blows people's minds when they see just how easy it is.[00:16:39] KAK: Yeah. It feels like those sort of things are pretty complicated in other frameworks. So speaking of other frameworks, like what – Or I guess React, since you've done a lot of course on that, what kind of things are easy in Svelte when it comes to animations compared to like the stuff you've done with React? [00:17:01] ST: The basic stuff. The basic stuff to me is the most pain in the React world, specifically like unmounting components. So in Svelte we have our transition, right? You can just transition:fly, whatever. In React you have to worry about the unmounting and controlling of the unmounting. So a good example of that would be the Framer Motion, which is my animation library of choice. I really like React Spring. React Spring is a fantastic choice, but Framer Motion made it a little bit easier. In React land, I'll take easy, right? So Framer Motion, to worry about unmounting something, you have to wrap it in a component. So it's like a wrapper div called AnimatePresence. Tnd then you have your condition and then you have your thing you want to animate. It becomes this like nesting doll of components that you shouldn't have to have to do in unmounting animation, right? You should be able to just have your boolean flag or whatever. Turn something off and then the component to be animated and then it should worry about its own thing. And things are even compounded so much more when you're working with a system like Next.JS or Gatsby where the routing goes all the way to the top of the app, which drives me nuts in those platforms and it makes unmounting animations have to be orchestrated from the very top of your application, which is crazy to me. And the main reason why I don't use Next or Gatsby in my own personal stuff. Like I get – Those platforms are fantastic for what they do and I really like them, but I don't use them on Level Up Tutorials because we have a lot of nested routing systems where if I wanted to control the unmounting and mounting of specific components at any given point, like I just can't do it. So that to me has always been a major pain point in orchestrating animations in React specifically nested layouts and unmounting is a giant pain. Framer Motion has made it a lot easier back in the days of React Motion. You had this like really ugly Syntax. And granted, React Motion was fantastic. It was like one of the first libraries to really use render props really neatly, but it was like very hard to look at code to me. I just never really loved it.[00:19:12] SW: Yeah. My understanding is a little bit vague here, but isn't it also true that Sveltes at transitions are in CSS? So they're executed you know inside the browser. You need a possible, reversible, that kind of stuff. That was a selling point to me, but I haven't actually tested how to do that in React. I never got there in React, but in Svelte it’s just part of the normal teaching path.[00:19:36] ST: Yeah. Yeah, right. No. Framer Motion does it in CSS too. Everything's done via CSS transforms. So anytime you're animating anything in the web it's important to use CSS transforms because it uses the GPU. If you're modifying the position, it's janky. So CSS transforms. And one things I do really like about some of the platforms specifically Framer Motion is that they like to take that option away from you. So when you animate the X property, it does all the transform 3D stuff. You don't have to think about it. And I like that because it's not giving anybody an opportunity to make something position absolute and then animating the left property, right? It's just not opening that door whatsoever. So that is like a – I don't know. The React platforms can do some things that are nice for you. But again you end up having to write more code to do the same thing. And Svelte, like I said, the transition element and transition aspect of Svelte overall is just way nicer to me. [00:20:36] SW: Nice. Two of the more advanced ones that I see that you have are crossfade and flip, which are also it's kind of pre-built things. There are talks about them, but I still personally don't understand it. What is your take? How do you explain crossfade and flip?[00:20:51] ST: Crossfade and flip are unfortunately very poorly documented on the site, and I think there could be some improvements.[00:21:00] SW: Good thing you don't read the docs. [00:21:02] ST: It’s funny, because the way I uncovered everything about them is by having them in the examples repo or the examples. Yeah. So it's like that's the way I learned everything about crossfade and flip, because I think one of the – this is actually funny. I could find this on the Svelte site. I should submit a PR for this. I’m sorry. I haven't. There's like one thing that was like really funny on the Svelte side to me when I was really like diving into this. I was just trying to find the API for Crossfade. I was just trying to find the API, and this Svelte documentation under Svelte transition, it's like module export seven functions; fade, blur, fly, scale, draw and crossfade. And then it proceeds to tell you about all of them except for crossfade. It just pretends crossfade doesn't exist after that. I was just like, “Okay. But like what's the API for crossfade? Like where does this go?” In fact if you do a command find, crossfade is only mentioned twice on the entire page. So it's very funny. But no. So, okay. So crossfade is basically used when you're moving something from one like DOM container to another DOM container. So you have one DOM container – You have an item that exists and it's going to be moving like parent containers and you want it to zoom from one container to the other container or fade from one container to another container, whatever you want to be able to control that animation, you want to fade it. There's a React library called – I don't know if this React Over Mind? I don't know. It's early in the morning here for me, but there was a React crossfade that basically did the same thing where you pass a specific ID key to one item and an ID key to another item. And as long as when those components were being transitioned essentially it would take the position and elements of one to position elements to the other one. It would swap them and then do the flip animation. I’m gesticulating here with my arms without realizing I’m on a podcast. [00:23:03] KAK: I’m nodding.[00:23:04] ST: I do this to myself all the time. [00:23:07] AJ: He’s - excellent.[00:23:09] ST: Really, it helps to understand the idea of flip animations. And a flip animation is – Oh my God! I always ruin this, because I always want to say first – First invert, last – [00:23:23] SW: Play. First last invert play. [00:23:27] SW: Play. Either way what it's doing is it's basically doing the animation backwards. So like if you were to have a box and you wanted this box to be 100 pixels to the right at the end of the animation it would actually start the animation where the zero position would be the new position of the box. And then instead of animating 100 pixels to the right it would be animating 100 pixels to the left and then reversing that animation. That way the browser already knows exactly what's going to happen and where it should go. The animations are much smoother. And it's a giant pain in the butt to set up most of the time if you're doing it by hand. I know some people might disagree with that, but for me I don't want to have to worry about any of that stuff. I don't want to have to worry about the inverse position of something when I’m doing an animation. I just want it to look smooth and I want it to go from A to B and I want it to just work. So flip animations are really fantastic for a lot of things because they make animations like that very smooth. So it works really well in that kind of crossfade environment where you know the ending position of what this thing's going to end up being. So in regards to Svelte’s flip animation, it's primarily – For me, it's used for – Let's say you have – In Svelte’s own example, right? You have a to-do list and you remove one item and you know that at the end when you remove that item it's going to collapse down into like three items, right? So let's say if you remove the second to last item. The bottom item knows that it's going to be up negative 10 pixels. So it goes up negative 10 pixels, inverses that and then actually does the animation. But the first two or first three steps of that you don't ever see. It does them behind the scenes without doing anything. It just calculates it all. And then so that way you get this really nice effect of essentially things just falling into place. It's really nice for drag and drop interfaces. It's nice for anything like that. I think Framer Motion is something in React that's like some magic layout thing that's really neat. But in Svelte it's just flip, and I dig that. It's just flip. And I haven't used it beyond the context of those things, but then again I don't use flip animations a ton beyond that context where you have you're moving things in a list or you're changing their position or something like that. They're neat tools to have. They're absolutely neat tools to have. But again in practical animations you probably won't end up using them a ton-ton.[00:25:44] AJ: I mean I think I’m quite jealous because I don't use any of these animations apart from maybe fade. I’m not building the kind of sites where I need to do this stuff and it's such a shame because it is literally there and it's a bit of a game changer. [00:25:57] ST:  It is, and it's a lot of fun. I find this stuff to be a lot of fun before it was a web dev. It was my goal in life to be a motion graphics artist. I had trained to be that. I worked in After Effects primarily. So my training in college was setting me up to do motion graphics. And I worked at a magazine doing motion graphics for a little while. So they had like a CD. They would send out with the magazine. So I got to do all the intro motion graphics for it and stuff. It was a really cool gig. And that's really what I wanted to do. It was like I’m just going to move to LA and work in movies doing motion graphics and commercials and whatever. And then I didn't do that and I chose to work in web. And so it's like I have all that background knowledge, which is probably the reason why I started a video site in the first place. And animations are pretty prevalent all over my site just because it's just fun. It's just fun for me to work on. It's not important to do. It’s just fun.[00:26:47] AJ: It gives a nice effect as well. It's weird how much better a site could feel with just a few small animations. So I think it is a really critical thing to have built into a framework. It totally changes the way you approach your site and how you feel about how well that site works for you. [00:27:03] ST: Yeah. I can work like a little bit of a seasoning, just a little extra kick there. It's like what's going to take your home-cooked food to like restaurant quality food. [00:27:12] AJ: Yeah. That works. Yeah. It’s not just fluff. It's great. [00:27:18] KAK: When it comes to animations and transitions, I’ve been trying to play around a bit with crossfade a while back. And I did it in the context of like switching pages in Zapper. And that was not as easy as I wanted it to be, but that's also because you have to like specify where do you want your headline. Say, for example, a list of blog posts, and you want to go to the actual blog page. You want the title to like fly into the blog page title spot. That was a bit confusing and even in Svelte. But maybe it actually was easy compared to other stuff. Not sure.[00:28:02] ST: Svelte crossfade for me is harder than crossfading in other platforms, but only because the documentation is sparse on it. Like what needs to be – I found myself like occasionally like having things set up to the point where I'd be like, “Why is it not crossfading right now? Why doesn't this work?”And then you look at some of the examples and you're like, “All right. Okay. Does it need to be in a keyed list? Do I need to have the ins and outs? What do I need here for this to work?” When it seems like in other platforms you can just give here – X gets an ID. Y gets an ID. It compares those two IDs, crossfades them, right? That to me could be more simple especially given how simple everything else is. And I would find myself reaching for transition just about way more often than crossfade just because of ease of use.[00:28:58] KAK: Yeah. Speaking of things that are kind of missing or hard to do in Svelte, do you find anything else that's tough to do in Svelte compared to React, for example?[00:29:10] ST: It's a good question. There's the obvious one, which I think it's not something that's tough to do, but it's tough to make a choice in routing, which I think everybody knows is a thing, right? Just because there's no clear guidance. But that's the strength of other frameworks. So it could be a strength that – Yeah. The problem is, is that like there're a lot of options. And then if you're using uh Sapper, yeah, you have the file-based routing, and that's fantastic. I like the file-based routing. But like let's say I wanted to pick a router for whatever I’m doing in the Svelte project. Where do I even look? What was interesting to me was that I found the APIs against the routers to be kind of interesting. Let me see if I can find. There's a router that I actually really liked using Tintro. Tintro? [00:30:00] KAK: That sounds familiar. [00:30:02] AJ: There's always more.[00:30:02] ST: There's always more. That's the whole thing. I found it Awesome Svelte. [00:30:10] AJ: I still use like a Vanilla router. Like I don't use any of the Svelty ones really. I just use a regular JavaScript router just because I kind of I know the API. So I don't really consider it too much. But yeah. [00:30:24] ST: Yeah. Writing is one of the areas where I do like a little bit of magic. And one of the things I really liked in a router is to be able to use. This has been called out by some people. I like to just use atags and atrafs to point my link. And then I don't have to think about all that and let the browser work it out, right? Let the framework work it out. And this this router – Shoot! My site's on Zapper right now. So it's not using this router. Although I do have a project on it. So let me check it out. The router that I found, Tinro. Tinro. Tinro. [00:30:58] AJ: Tinro. Yep. Never heard of that one.[00:31:00] ST: Yeah. I know, right? I didn't ever hear anybody else using it. So every time I recommend it I was always kind of like, “Yeah, Tinro.” So this router was really neat because, one, not a lot of wrappers. Like wrapping, provider components, I just don't like a lot of providers, right? So you don't have to deal with providers. You have a route component, a route component that allows you to even have nested routing. And then you just use normal anchor tags with atrafs, and that's it. Like you have a route and you have an anchor tag. And when any pattern matches that route, it will show whatever is in there. It doesn't matter if it's nested. It doesn't matter where this thing is. The API was just really nice. And I found it just about every other router required you to have different providers in different sort of ways that just – it's like I do. I need this provider when Tinro here does just completely omits the fact that there is such thing as a provider. Then you get into land where it's like Index.JS and React you have a link tag with a two property around an anchor tag. I’m like, “What is going on there?” I like complained about that on Twitter, and Dan Abramoff was like, “Why don't you just set up auto imports?” I’m like, “That's not the point.” He's like, “Why don't you just have an anchor tag?” I’m like, “That's not the point.” The point is, is that you have an unnecessary DOM tree where you don't need one. It used to be like a huge pet peeve of ours in Drupal, is that Drupal would just like add eight divs to everything you were doing. So then by the time you tried to like CSS anything. One time we had like an all-night hackathon and it was me and like two other devs when we were building the initial Level Up Tutorial site was built in Drupal. And the one dev would be like – He was new to Drupal he was like a WordPress guy and he'd be like, “So why don't you just style this one?” We’re like, “Because it's Drupal. We don't get access to that class.” If you're like, “Oh, but why don’t you just style this div?” “Because we don't get access to that. Well, we'd have to hack the PHP template in this particular plugin.” it was like you'd have to like really dive into this plugin, this PHP file just to find where the div was to put a class on it. And like I don't know if it's just like been traumatized from that experience, but like I see some wrapping divs and I’m just like, “Get them away! Get them out of here.”[00:33:08] AJ: I think you've hit on something really important there. I think that people come now and they see these things. They see these tags, these link tags, and they haven't had that power experience of working something like Drupal or something else that does things in a really weird way to understand why. We now go just use the link tag. Just use the atag. Rather like why we make that decision? Why we seem so adamant about doing something that seems backwards because you get all sorts of extra power with a special tag for it and stuff. But there's a good reason. And I think it's very hard. And it might even relate to the whole thing about doing a basic tutorial. You run into a roadblock. Why do you use an atag? Well, because this is why you use it. Actually it's a learning that is so necessary and it gets hard and hard to find. It gets more and more buried in the history of the million and one frameworks you can write websites in.[00:33:56] ST: Yeah. And HTML is not going away. So it's like why would I want to learn these layers on top of HTML when the HTML API is there for me? I don't know. But then I say that as somebody who likes magic and JavaScript framework. So I understand that contradiction. [00:34:11] AJ: You like enough magic. And enough magic is fine.[00:34:14] ST: Yes, exactly. Yeah. [00:34:16] SW: And Svelte is HTML.[00:34:19] ST: Yes. Exactly. Yes. I know. And Svelte is the most HTMLy of all the frameworks and I really appreciate that about it. [00:34:26] AJ: Certainly why I like it anyway. Yeah. It’s close to the bone. It's as close to the bone as I want to be.[00:34:32] ST: Yeah. Totally.[00:34:34] SW: There's a small schism at least in my mind with regards to how styling is done in Svelte. Obviously Svelte comes with scope styles by default. But I think I’m maybe in a minority here at least in the Svelte discord where I try to use Tailwind to get over Svelte and then only use Svelte styles for that. But I was just curious if you had an opinion on that kind of thing. Because like you said, CSS – To paraphrase you, CSS isn't going away anytime soon. So maybe we should just use CSS. But I do find that Tailwind is more ergonomic. Plus I use a design system as opposed to just magic numbers everywhere.[00:35:13] ST: Yeah. For me, tailwind is just something else I have to learn. I can like easily have my own utility class library that I’ve made myself that's like finally tuned to the only utilities that I would need or want. And then I get to invent my own utilities that I can use. So to me I don't want it. I don't want to learn all of the short hands. I don't want to learn all of that stuff. We've spent a good amount of time perfecting our design system and our utility libraries on our own platform. So I just don't really have a super use for it. Not only that, but I like to wrap up a lot of stuff in like useful utility component things and then control it all by CSS custom properties. I am gifted with the benefit that I don’t have to care about browser versions because the people who are using Level Up Tutorials are not going to be on Internet Explorer. So like give me CSS custom properties and give me all that stuff, right? So we've been on grid and custom properties for so long now that like I’m totally out of touch with what it's like to build a site for normal people. And like maybe having something like Tailwind in there that's going to like really just look good no matter what you use those like short hands and it's just going to look good with all the utility classes and stuff. That is appealing to me, but it's appealing in the same kind of way that it's not bootstrapped. But it's appealing to me in the same kind of way that bootstrap was where it takes a lot of the guesswork out of it. And I do like those aspects of Tailwinds. We have a thing on Syntax where every time we mention Tailwinds, we regret it, because we say something and then everybody gets really angry at us. [00:36:51] SW: What did you say about my CSS framework? [00:36:54] ST: Really, really feisty about Tailwinds. So I’m not going to say anything bad about it. It’s just not – For me, personally, I really love the scoped CSSing in Svelte by default, in which it can be a controversial thought on its own just because people take that as saying like, “You just don't know CSS.” Like, “Okay.” It's very frustrating. Yeah. People say like, “Oh, you can't handle the cascade? You can't handle the – Like why can't you control the cascade?” I can control the cascade.[00:37:27] SW: These are the same people that turn around and use CSS modules, because like that's the same thing. [00:37:31] ST: Yeah. They don't. No. It's the people who just like only write SASS still or only write CSS, and that's cool, man. But like they're in addition to the cascade. Having scoped containers is really slick. And in fact I’ve been using styled components a lot like this the scoped containers within Svelte lately. Instead of making actual components, I’ve been making like component wrappers at the top level of my components as like the container component. And then everything inside of that is scoped. Hey, you don't have to worry about it and after that.And like there are some things where you have like interface patterns where this particular CSS only applies. And the only other options are what like in-lining it or writing a new class or BEM or like really nailing down that specificity there in your CSS that like, “Okay, these are all viable things.” But at the end of the day you're just trying to solve the same problem, which is how do you attach some styles to one specific element and scope it to that element? And to me, the fact that you could just drop a style tag and say, “H1 margin top zero,” and have it only apply to this one specific facet of your entire site is like very, very appealing to me, because you can still write the rest of your CSS in scoped design systems. It's funny, one of our latest courses was modern CSS design systems where like that was the whole premise of it, is like how much CSS can we get away with where you're only styling elements? And so no classes for the first 15 videos. We're just trying to get as much of a complete design system as possible with no classes in CSS custom properties. And then after that, then we can start to add some utility classes that we're creating ourselves. And then like you can get so far. In fact in the animating Svelte course, the design system that we use for that course is the same design system that we created in the modern CSS design system. So it's like good enough to use in all of our other content. And that's actually another thing I like to do is like triple dip, double dip, triple dip, whatever, when I’m like learning something. If I can get more content out of it, it's like, “Oh, I’m realizing that the CSS and some of my tutorials doesn't look good. Maybe I should just do a course on making that CSS look good. And then I'll have good CSS for the rest of my content.” [00:39:47] SW: Extra tutorial. [00:39:49] ST: Exactly. That’s always the thought. [00:39:50] AJ: I like it.[00:39:51] ST: Yeah. Oh! Well, we can get a Syntax episode out of it too, huh? [00:39:54] SW:  Aha! Right. [00:39:59] KAK: Yeah. So maybe we should talk about that a bit. Like how is it running a podcast for such a – You've been running this for like so long, right?[00:40:07] SW: Four years?[00:40:08] ST: We just hit our 300th episode. I think maybe we started it in 2017. It's funny for me because Wes and I created Syntax a year before we ever recorded the first episode. The first episode launched June 27th 2017. And so we sat on the idea. Like literally for – Like we have the design document for it and it was like June 2016 and we had like 20 episode ideas written down. We had the name. We had like all of the segments. We had like a lot of like the stuff that is Syntax. We had completely figured out a year in advance and we’re just like – Yeah, we were just both busy. I had gotten a job at like a startup. I was doing Level Up, but it was still part time for me. It was still nights and weekends. And I like to say, like my son was born in May of 2017, and he's my first child, and in like by June 27th, we started the podcast. I quit my job and I went full time with Level Up Tutorials all in one month just because I had this clarity, this weird clarity that came with the birth of my child, which is just like, “I’m not happy doing what I’m doing. I’m not happy in the job that I’m in.” We had this really neat idea. I have these like grand ambitions like, “Now or never. Let's do it. Let's get it.” Yeah. We recorded the first three episodes and we're like, “Listen, we're just going to record – We'll record for like six months and see how it goes.” And we've recorded the first three episodes and the response was like immediate. And by the fourth episode we already had a decent audience. We had – I think Wes and I predicted correctly that like I had 300,000 followers on YouTube. Wes has a billion followers on Twitter and his emailing list and his courses, right? And we predicted correctly that those audiences don't overlap that much. We actually ran some like audience overlap thing. I forget where we even found this code, but it was like for our YouTube audiences. And like he only had like 60,000 people on his YouTube or something. I say that is like – Whatever. But we found out that we had like zero overlap. Like even throughout all those people where it's like the overlap was like nothing. So I think we just got lucky. Yeah, we just got lucky. And Wes is a powerhouse of marketing stuff. So he cooked up the site and shout it out to his emailing list and whatever and it was very big right away. And Level Up Tutorials, like for me, like I had the bones of Level Up Tutorials. The new site was there. It was an e-commerce. I had all the subscription code done because I’ve been working on it nights and weekends forever and ever and ever. And it was like kind of mind-blowing to get eight hours a day to work on it. So all of a sudden I could focus all that like crazy energy I had into it into like actual work. It was a wild month for me. It was like a deranged no sleep. Actually, I wonder how you could – If you listen to those early episodes if you can tell just how little sleep I had gotten before any of it. [00:43:18] KAK: I remember when I started Svelte Radio, I was thinking of having it as more like a news sort of podcast where I like talk about the latest stuff that happened in Svelte, but I only managed to get like a five-minute episode out. [00:43:34] ST: Yeah. That's the problem with that.[00:43:34] KAK: And then just sat there for like months and I didn't do anything. [00:43:39] SW: One episode. [00:43:41] KAK: Yeah.[00:43:41] ST: So there's like a Rust podcast, that's all it is. And like, yeah, you can't get any more than like five minutes out of that like. Yeah, just read the news. Yeah. [00:43:49] KAK: It's crazy because you'd think that there's more things happening, but it's so quick to just blast through the topics, right? It's a lot more fun as well with co-hosts. [00:44:03] SW: Yeah. [00:44:04] ST: It's funny, I was just talking to Wes about this because we were just like planning our 2021 stuff and like I was just talking like, “Man, it's really cool that like I get to just like talk to a good buddy about stuff I really like, and like that's really what it's about for me more than anything. It's like, “Man, I can just like chat web, because like I don't work with anybody else and otherwise I’m just talking to my wife who, she, by all means entertains the idea of listening to me. She doesn’t know a thing about web. She's a psychologist.” So it's like she'll just be like, “Okay, that's great.” But she does know what Node.JS is. She knows all of the JavaScript frameworks. And if I mention one she'll be like, “Oh, is that this thing?” By all means, she actually entertains the conversation. But I’m sure she is very thankful that I have somebody to spill all these things inside of my brain too that actually wants to hear it. [00:45:01] SW: Since you're the veteran podcaster in the room, what is your advice to us and to other podcasters out there who might be thinking about starting a podcast?[00:45:10] ST: I don't know. Keep it fun and educational all the time. That's like the only thing that we've tried to do. And like the fun aspect of Syntax, I think that's just like part of like – And some sort of weird natural rapport that Wes and I had from day one where like I don't know how or why, but he and I just like clicked right away, right? By all means, Wes and I had never even met through like a year of doing Syntax. Yeah. So weren't like – We were acquaintances. We had done video chats and helped each other out in our mastermind group and stuff, but we didn't know each other super well. So like the fact that we had good chemistry is like that was just a kind of special or something for me. But like the thing that we like wrote down when we started Syntax in our initial like design document of what it was going to look like. We wrote down all the things we hate about other podcasts. Not naming names. We didn't say this podcast sucks for these reasons, but we both listen to a lot of podcasts. And another thing, neither of us listen to web dev podcast very frequently. In fact, you guys might be happy to know that this is one of the only web dev podcast I listen to. I listen to this, Syntax, and there's one I pop on every once in a while that like the topics don't always interest me, but when they do, I'll listen to them, Software Engineering Daily. I don't listen to every episode of that, but when one pops up, I like it.[00:46:32] SW: That's a good one.[00:46:33] ST: It is good. So either way, we like went through podcasts that we liked, which were typically like pro podcasts and like, “Okay, what are these things that we like and dislike?” We wrote them all down and then we're just like okay, “These are the things that we like. These are the things that we don't like. This is where we'll go with it.” And we didn't like only having people on to like sell their thing, right? We still get requests all the time. “My boss is releasing a book. He would like to come on your show. And we say, “No. You're not coming on the show.” We only invite people on the show who have something to offer that's not like just a product, right? If they have a product they want to push, that's fine too. But like that's specifically not why we want people on the show. We want it to be first and foremost as educational as possible. We're both web dev teachers. We want to teach something every single episode. We want that to be the focus of things. It was almost like we could distill like what's in both of our tutorial series and try to turn it into just like a slightly different format. And we wanted to have just like minimal overhead. Like here, here's the initial design of our podcast layout, informal intros, quick informal interest. Introduction to topic, talk about the topic, sick picks, end of the episode. That's it. [00:47:47] AJ: Sick picks. [00:47:48] ST: Yeah. So it was like we didn't want to have any more structure to it than like we spend 45 minutes of an hour teaching you something is really it.[00:47:57] KAK: Yeah. I think that's actually sort of what our outline looks like in practice. [00:48:02] ST: Yeah. [00:48:03] SW: Yeah. I think you are very influential in how we evolved it over time. And I think also the fact that we got editing, I think it was a major lift into our quality. [00:48:12] AJ: Oh yes! Huge. [00:48:13] ST: Oh yeah. I think I personally edited the first like 40 episodes of Syntax. And even though I have a degree in audio, it's like I’m still – I’m like, “I’m not a practicing audio engineer in any facet,” and it was never something I super loved. [00:48:29] KAK: Yeah. I did the editing at first, but then I just hated it so much, like I could do it. [00:48:35] ST: It's tedious. Yeah, it's tedious. [00:48:37] KAK: Some people like doing it, I guess. That's fine.[00:48:40] ST: Yeah. My best friend's an audio engineer. He chops up audio all day long. That's all he does. Not for podcast obviously, but like still same regard. That guy could listen to a hundred vocal takes of the exact same word and just be like, “Hmm,” and really get like which one of these. But that's like why he does what he does. Yeah.[00:49:01] KAK: Yeah.[00:49:02] AJ: I have a friend who's a TV subtitler, and he just watches all these soap stuff and he has to like watch the same scene like five times and type the words out and make sure it's like, “Oh! I just couldn't do it. I couldn't even physically do it.” [00:49:15] SW: Anime fans do that for free. [00:49:17] AJ: Yeah, right. Yeah, that’s right. [00:49:19] SW:  Yeah. Hobbyist game translators and things like that, yeah. You know what? It's funny. I really enjoy editing video, which doesn't make a whole lot of sense, because when I edit video, I’m really only listening to the audio. I don't even watch my video when I edit it. I don't watch the video until it's done edited. And then I watch the video. So I only edit based on audio. But for some reason, I really like that. I cannot comprehend why that would be. [00:49:45] AJ: See, yeah. It seems like along the same lines. I just find – I mean I don't have the computer for it anyway. So I can't really do it. But I just find anything like that. I can do it for five minutes and I’m really bored of it and I just – it never gets anywhere. It sits on my hard drive forever and then gets forgotten. [00:50:00] ST: I edit at 2X, because I can't listen to myself talk at 1x. [00:50:06] KAK: Yeah. All right so I think that's pretty much it. [00:50:11] SW:  Speaking of sick picks, right?[00:50:13] KAK: Yeah. But before that I was going to ask you if you could tell us where we can get your uh Svelte course.[00:50:21] ST: Oh yeah. You can get my content at leveluptutorials.com/pro. You don't have to go to /pro, but that's the sign up page. When is this episode going to air?[00:50:34] KAK: Which it should be out either tomorrow evening, European time. [00:50:37] ST: Cool. So right now if you sign up for Level Up Tutorials, you will get 50% off the year. A lot of the courses including Animating Svelte are 50% off individually, because we offer a la carte purchases as well. It's like you can do the subscription, but we realize not everybody's company pays for subscriptions. Not to mention like everything's a subscription nowadays. So if you want to just buy one course, all of the courses are 50% off as well from now until maybe a couple weeks from now by the time you're listening to this for our Black Friday sale. We have a timeline or like a countdown on it, but I think I might keep it a little bit longer. I don't know yet. So leveluptutorials.com is where you can find all of my stuff. [00:51:19] KAK: Cool. And then we have sick picks then. [00:51:23] AJ: Sick picks. [00:51:23] ST: Sick picks. Sick picks. [00:51:25] AJ: Time to look on our desks.[00:51:27] ST: Yes, right.  You look around the desks.  You look at the last things you bought on Amazon. You know what? I have a sick pick for you guys that's very on brand for me. If you've ever listened to Syntax you'll know I like podcasts that are typically about like scamming people or things like that, crime podcasts, but not like murderous crime. I like web crime and stuff. I don't know why. But – [00:51:50] SW: Yeah, Darknet Diaries. Yes. Sorry. Go ahead. [00:51:52] ST: Yeah! In Darknet Diaries, we had Jack on the show to read one of our spooky Halloween stories, and it was like the coolest thing ever for me because I’ve been such a fan of it for so long. So like when he agreed to do it I was like, “Oh, yes. Thank you. That's so great.” I have a podcast that's called QClearance: The Hunt for QAnon. And if you have never heard of QAnon, it's a weird conspiracy theory that it has gone through all sorts of different origins. And this is a British guy who has like no connection to the US really. He's just like trying to find out who QAnon is as a person. And it's very good. So QClearance, it's good because it's got all the elements I like about this type of thing. It's got a little bit of mystery to it. It's a very good podcast the host is good. It also has a lot of web things and it goes into the history of a lot of those like anonymous image board, 4chan and 8chan and all the stuff and who owns them and how that ownership has changed. And the sort of like shadiness that goes on in these worlds and who's scamming who here and whatever. But I found it to be absolutely fascinating and it’s on brand for me with that whole thing. So QCearance, really interesting.[00:53:00] AJ: Nice.[00:53:01] KAK: Cool. Cool. I have an author I want to pick. So I’m heavily into like fantasy sci-fi books, and I’ve recently or last few years I’ve been reading Brandon Sanderson. If you guys have ever heard about him?[00:53:21] SW: Yes sir. From [inaudible 00:53:23]. [00:53:24] KAK: Oh! He reads them as well? [00:53:26] SW: Ken’s a huge Brandon Sanderson fan. And yeah, he does fiction writing on the side as well. And I heard about him from there. And then I found his podcast and he just like has a lot of good advice on writing. [00:53:38] KAK: Oh! He has a podcast?[00:53:40] SW: Yeah, with like four other people. It's like a rotating panel of established authors. Not self-published. Not legit, but people like me. But like actual authors who are successful and have like big followings and stuff like that. And yeah, it's really good. Really good. 15 minutes. And that's a different topic.[00:53:59] KAK: Yeah. Did I get a pick by picking something? [00:54:03] SW: I know. It's like – What is your pick? Just his books? [00:54:07] KAK: Yeah. Just his books. They're awesome. [00:54:09] SW: But which one? I think he has a lot. [00:54:11] KAK: I would start with a the series Stormlight Archives. It’s pretty decent series.[00:54:18] ST: Check it out.[00:54:19] SW: Cool! I feel like it's on brand to recommend a podcast. So I guess I’m going to pick Acquired. It's one of my favorite sort of tech-businessy podcasts. I’m almost interested in like the business cycle tech as well. And yeah, I recently signed up for their premium show where they go a little bit into sort of financing of startups. But just the free show is just extremely high quality, Acquired.fm. The most recent one tells the story of Virgin Galactic, if that's the name of the thing? But they just do a lot of research and then they tell the stories of companies in very interesting ways, and you always find something new learning about them. So that's acquired.fm. [00:55:01] ST: Is it on a tiny, tiny network or whatever? [00:55:05] SW: Maybe. I don't know what network. [00:55:06] ST: Every company has a story.[00:55:07] SW: Yeah. They just joined it.[00:55:10] ST: Oh yeah, Virgin Galactic. Cool. Yeah. Okay. [00:55:12] SW:  I mean they tell a lot of things. It used to be about companies that got acquired and then they would rate the acquisition from like A to F, right? So like Facebook acquiring Instagram was an A, whereas something – There's not that many F's, but it could be like AOLTime Warner. That was pretty much of a fail. But like it was an interesting idea. But I think now they've sort of pivoted into just general interesting tech companies that may not have been acquired yet. And the most recent one I think was with the Superhuman founder as well, Rahul Vora. And I’m a Superhuman user and I just really admire the way they ask questions and it's a good rapport among hosts. And yeah, it's techie. So it's on theme for this podcast.[00:55:55] KAK: Cool.[00:55:56] AJ: Yeah. Well, my pick. I don't want people to think that I sort of imagined or sort of invented my pick as Scott was talking about not enjoying crime, like real life crime podcasts[00:56:06] ST: Oh! I do enjoy real-life crime podcasts as well, but not as much. Yes. [00:56:10] AJ: So my sort of pick is a actually YouTube channel called That Chapter. It's this guy who will talk you through, murders missing persons, that sort of thing. He produces videos, well-edited, well-made, entertaining videos, which are quite long you know, within an hour or so or they’re usually about half an hour. At a rate of knots, he does it twice a week I think, which I don't know how. It must be his full-time job. I don't know, but maybe it isn't. [00:56:36] ST: 815,000 subscribers. [00:56:38] AJ: Yeah.[00:56:38] ST: Yeah. It’s probably a full-time job. [00:56:41] AJ: It must be a full-time job, right. I did some YouTube calculations, and it's not earning that much. But then I don't know how it works. But yeah, very entertaining. He's a very good speaker. When I was planning my Svelte Summit talk, which I never actually had time to finish unfortunately, I was going to use the format that he uses to do my talk. It's way more difficult than you imagine, because you're trying to talk about real topics and remember them without reading from a script or having kind of hint because he seems to do it really free flow. And you can see him sort of thinking through his head. And I think I mean he's done so many videos, right? But he's just so good at it now. The flow is perfect. It's very entertaining. If you want to see where he came from, you can watch from his earlier videos and you'll see he's very much – He's more robotic. He's much less entertaining. He looks almost nervous. So it's really fascinating to see his evolution actually through that series. But it's fantastic now. The videos he pumps out now are just brilliant. They're just really great. So when I eventually start working occasionally in the evenings I go and watch a couple of those to cheer myself up with some murder stories.[00:57:42] ST: Yeah. Here’s a channel that you might be – I’m going to toss you back one that is similar, but it's maybe a little bit dry compared to what this is. It's called JCS Criminal Psychology. Have you heard of this one?[00:57:56] AJ: Yes. We finished it. It's amazing. [00:57:57] ST: Crazy good . Yeah. I just found out about this from some Reddit link and I was just like, “Oh my gosh!” Because they show all this footage of like the police interrogation rooms and then they're like analyzing what the police are doing. Their tactics in the interrogation rooms is crazy. [00:58:16] AJ: That was where we found that chapter, because YouTube was actually recommending that chapter based on JCS. Do you know what JCS stands for, by the way, because I didn't when I watched it first?[00:58:28] ST: I don't know. No.[00:58:29] AJ: Jim can't swim. I don’t know – [00:58:32] ST: That would explain the icons. His little icon has got like arm floaties. So that explains that. [00:58:36] AJ: Yeah. I don’t know why it’s called that, but – [00:58:39] ST: That's very funny.[00:58:40] KAK: On that note, thanks for joining us on this episode. Where can people get a hold of you on Twitter, for example?[00:58:47] ST: Yeah, Twitter, STolinski. I’ve realize that's not a great last name. I always joke that I should have come up with like a cooler last name as like a stage name. [00:58:54] KAK: Stage name, yeah. [00:58:55] ST: T-O-L-I-N-S-K-I, or if you want an easy, LevelUpTuts. [00:59:01] AJ: That makes sense. [00:59:03] ST: That's probably easier. [00:59:03] SW: You can always go with El Toro Loco. [00:59:05] ST: Yes, El Toro Loco, yeah. [00:59:08] KAK: All right. Thanks, guys. Bye.[00:59:10] ST: Thank you. [00:59:10] SW: Bye. [00:59:10] AJ: Thank you. [END]
This week we get a glimpse into the future of Svelte and SvelteKit! Rich joins us to talk about the new thing in town, SvelteKit, as well as what the future of web development could look like.Some topics that we discuss:- Release date- SvelteKit vs Sapper- Features- Adapters- Ideas about what is nextIf you missed the talk at Svelte Summit check it out here.Picks:- Robot Vacuum- OnePlus 8T- SavvyCal- Begin.comTranscription:[00:00:00] KA: Hello, everyone, welcome to another episode of Svelte radio. I'm your host, Kevin, I run Svelte school. And today we have a very special episode, we have the creator of a Svelte, Rich Harris. But before he gets to introduce himself, we'll kick it off with our other hosts.[00:00:19] S: Hey, I’m Sean, work at AWS on random stuff, including trying to get Svelte into AWS and that is an ongoing mission.[00:00:30] A: Hi, I'm Anthony, and I'm the CTO of Biank. And also Svelte maintainer.[00:00:35] RH: And I'm a graphics editor at the New York Times currently working on SvelteKit.[00:00:42] KA: Whoo, cool. The new shiny thing before we get started, how are you? How's everything with the election and all of this stuff? How's the workload? [00:00:50] RH: For me, thankfully, it's settling down. Last week was quite a busy week for everyone. Certainly in the graphics department at the times and probably in the organization as a whole. It's very difficult to avoid getting sucked into the madness. But you know, what is fun? There's no better place to witness history than from a newsroom, even if it is a virtual newsroom scattered around people's homes.[00:01:10] KA: Something I didn't didn't appreciate about your election coverage is that you're actually spinning up visualizations fairly quickly based on what counties or states are in focus at the time. Like, there's some parts of this that you could not have prepared beforehand, right?[00:01:26] RH: Yeah, there's some sleight of hand, you know, you prepare for a variety of different outcomes. But yeah, like, as soon as the results start coming in, the politics editors, and the graphics editors who are covering this, are bashing their heads together and trying to figure out what is the story. And then that kind of filters down to the people making the charts and maps. And we all come together, we analyze data, and we try and figure out what just happened. There is some infrastructure that's already built out, because you kind of know that people are gonna want to know which parts of the country swaying in one direction. But yes, a lot of it is kind of rapid response, data visualization.[00:02:05] KA: So you've got Lego blocks for building visualizations that will tell you population, this area voted this way or whatever, you've got that sort of stuff?[00:02:14] RH: Yeah, like you know that you're going to need a lot of demographic information about counties, like we know that the results are going to be coming in per county or in New England it’s per township, because they like to do things differently. And you just have all of the data that you might possibly need in a massive spreadsheet at a time. And then you can also plug it in to make something relevant.[00:02:37] KA: Alright, so we're not here for the election. We're here for something that's more exciting. [00:02:48] RH: That’s certainly, perspective[00:02:51] KA: For sure. So we're going to talk about SvelteKit today. So before we dive in to the questions, what is SvelteKit?[00:02:59] RH: SvelteKit is, in one way it's a successor to Sapper. And you could even think of it as Sapper 1.0, if you like. But in another larger sense, it's our kind of vision for the way that you should build Svelte apps in future. It’s something that we've been kind of talking about in a peripheral sense for a long time, we've been talking about how we can evolve Sapper to take advantage of some of the recent trends in front end development, particularly the rise of serverless. And more recently, the rise of unbundled workflows, which I'm sure we'll get into later. But it all sort of came to a head recently, you know, the pace of development on Sapper had hit a bit of a low, at least until Ben McCann really picked up the baton and started churning through issues. And people were getting a little bit frustrated, I think with the progress. And Anthony is one of those people because he uses Sapper very heavily in his job. At a certain point, we're like, “What if we just started from scratch?” Like the big rewrite, as opposed to trying to get all of these ideas into what was honestly kind of a watery codebase. I sort of proposed this very hesitantly in the discord thinking everyone was going to yell at me. And instead everyone was like, “Oh, yeah, let's do that.” And so that was sort of the germ of the idea. And then over the last, I guess, month or so, the idea turned into a prototype, and the prototype turned into a project with a name. And I was, I guess, reckless enough to announce it at Svelte summit as a thing that I was working on. And then at that point, it was like a de facto, this is what we're doing. Now. This is, this is it. So now the whole team is full steam ahead. We've got some new contributors as well, people who haven't previously been on the Svelte core team are helping us out. Andreas [inaudible] is one of them and Dominic who created Sleet helping out in the repo and it's actually looking good.[00:05:00] A: I think that probably the alternate version of that story is that Rich claimed to going on holiday, he went on holiday, he came back a week later and SvelteKit appeared. And then we spent ever since bikeshedding the name.[00:05:15] RH: I promise I didn't do it on holiday. I would have been very sad, I had a really nice break. And if I'd spent it in front of a laptop, I'd have  been very unhappy with myself in trouble. It's just the way these things right, the first 80% of a project is you can build it pretty rapidly. But then once you start to get into the details, that takes the remaining 400% of the time. And that's the situation that we're in at the moment.[00:05:15] A: The modified Pareto principle.[00:05:41] KA: Obviously, I'm not so steeped in the history of Svelte as much as some other people here. But I feel like this is something that happens every now and then in rich land. This idea that a big rewrite would update just a lot of the core assumptions and change the design to something that is much more enjoyable. Is there like lessons that you learn from you know, having done things like these, for example, going from [inaudible] to Svelte? And then from pre Svelte 3 to Svelte 3? I thought that these are pretty major bumps. Right?[00:06:09] RH: Yeah, I mean, I guess the main lesson that I've learned is probably that it is a good idea. Because software, it grows organically, right? And there are layers at the bottom, that very often don't make a lot of sense anymore because things change, especially in the front end world, things are changing all the time very rapidly. And we started sick of dealing with a legacy code base, but because there's actually a new foundation that you want to build on top of them then it is worthwhile. But at the same time, I have also learned every time I've embarked on any kind of big rewrite that it is going to be so much more work than you anticipate. Because the old thing that you're replacing, it did a lot of stuff. And you're, the new thing needs to do all the same stuff.[00:06:59] KA: Just better. Yeah.[00:07:02] A: It’s also I guess, we're sort of building in parallel with Sapper, it's not like we’ve just abandoned Sapper completely. Sapper is now in I guess, in the kind of maintenance mode although it's not really officially announced yet. We're adding to it as we go. And the issue of course there is any new stuff or fixes you put into Sapper have to be then ported across to SvelteKit. So it's actually keeping track of that as well, actually, it's actually quite difficult. So it almost inhibits us, it makes us try not to do too much on Sapper, even though we need to keep it going.[00:07:32] RH: Yeah, and that plus, you know, psychological factors, I think, really driving us to get this work done as fast as we possibly can, in spite of all of our schedules, we really want to get this done sooner rather than later.[00:07:45] KA: Speaking of getting this done. Are we talking hours,days? Try it for real.[00:07:59] RH: The one thing that I've said about timing publicly, other than I'm not gonna say anything publicly about timing, is, I think we're looking at weeks rather than months, I would be disappointed if we didn't have a public beta or beta, we've had a long conversation about how to pronounce that word, sometime this year, which gives us just under two months to the public. And then, you know, a 1.0 version is gonna be a little bit longer, it kind of depends on what people find, when they first try it out. And if there's all sorts of bugs and use cases that we haven't considered, then, you know, might push things out a little bit, but you know, hopefully, early 21, we're going to have it stable.[00:08:47] A: I think also that the reason that committing to an ETA isn't really possible, really even giving that rough guideline, Svelte has no full time maintainers. It has people who have real jobs in the real world who do this in their spare time. The advantage to that, of course is that you know that everything that's going into Svelte and Sapper and SvelteKit, and everything is people's passion, and it's stuff that people want to do, not stuff that they feel is a chore or that they're paid to do against their will or anything like that. It's really a product of passion. And I think that gives it an advantage over something that's maybe run to a sort of an expectation or a schedule or a more official, [inaudible] call it company I suppose.[00:09:32] RH: Also no ivory towers here, everything we build is driven by very real world practical needs.[00:09:39] KA: Now that we know what SvelteKit is and when we can expect it, should we get into some questions? I think the first one that most people that are coming from Sapper are wondering about is what about migration? How easy or hard will this be?[00:09:54] RH:Yeah, so one way to think of it is imagine that we did put out a Sapper 1.0 and we’ve said all along that there's likely to be some API changes between, like, where are we now Sapper 0.28 and Sapper 1.0. And every time we've released a new version of Sapper we've had a migration guide that sort of walks you through the process, it's actually not going to be any different from that. There are some changes that we have to make because we're embracing serverless is this first class idea, but like the bones of the project are going to be relatively unchanged. And so we've been migrating some of the existing sample sample projects like our Hacker News clone and our Real World clone, it's not that much work. Because your file structure continues to represent the structure of the application, we have the same file name convention for dynamic routes, and all that sort of thing. Things that have changed, let's go through the list. Previously, you would have had a custom server.js, because the expectation was that you're going to be running a node server, or you're going to be statically exporting the entire app, we can't make that assumption anymore because there isn't going to be a server in the traditional sense, there's going to be a set of serverless functions. So right now there is no function that will run for every single request, other than the function that generates the session context, which like, includes your user information and stuff like that. And so you can't use things like Express middleware, and stuff like that, which you might have been using before. As things stand like all of this is, you know, subject to change, if it proves that there are a lot of things that people just simply cannot do without having a custom server. But right now, we're trying to lean as far as we can in the direction of being like fully serverless. On the same note, your endpoints, so we used to call these server routes, which has a bit of a funky name, we're now taken to calling endpoints, which is to say that if you have a file like sourced/routes/foo.js, that will respond to requests to the slash foo. And inside that, your handlers no longer take the request and response object that you get when you're dealing with notes HTTP module. Because if your on an ADLS lander environment or something like that, then you don't see those things, you are given an object that represents the method and the headers and the body and everything like that associated with the request. And your job is to return an object that contains a status code, some headers and the body. And so we're basically adapting to that surface, which means that you will need to write all of your endpoint handlers, we might change the preload signature. And we think that we can probably improve that a little bit. And a lot of people don't like the fact that you have this inside your preload functions. And so we might fix that. But everything else is just a few little cosmetic bits, bits and bobs here and there. If you have a very complex build config, like if you've changed the Webpack config, or the roller config in your project, then you'll need to find some way to represent those changes in the new Snowpack config. But that's about the extent of it, I think.[00:13:08] KA: Something I am a little bit vague on is so we're splitting things up from a single server to multiple serverless functions. Do we have fine grained control over which of these are statically rendered? Or which of these are dynamically rendered? I don't know if that's the term.[00:13:23] RH: We do. So there is this concept of pre rendering that can apply to all of the different adapters. We'll explain what adapters are at some point in this episode, I'm sure. And essentially, what that means is that as the functions are being built, we can pre render a subset of the application as static files, and they will just get dumped on your CDN wherever. And then when a request comes in for one of those static pages, it will just retrieve the pre rendered HTML, which is great, because there's no work to do. Having said that, I don't know if you've been following what Remix are doing at the moment? They have a conviction that static site generation is a waste of time. And actually, we should be dynamically pre rendering everything but using cache headers in such a way that it is as if you had statically the pre rendered everything. It gives you the benefit of the dynamic rendering, but without the downside of pre rendering, which is that if you have a very large site, it might take several minutes to pre render all of your pages. So you can sort of amortize that cost over the life of the app. That's a long winded way of saying yes, we do have pre rendering, but also we're kind of thinking about whether that is the right direction, and there's more exploration warranted around that topic.[00:14:42] A: I think it's a very interesting direction. Yeah.[00:14:44] KA: I had a question about like the, so in other frameworks like Next js. you have this gets static props thing, for example. I guess this touches a bit on that. So prefetching data at build time.[00:14:56] RH: Yeah, well Next has get static props and get server side props. If you have a static pre renderable page, then you call one function. If you have a dynamic render page, then you call a different function. We're not doing that, we just have one consistent way of pre loading data, whether it's a pre rendered or not pre rendered route. And the way that we differentiate between pre renderable pages and non pre renderable pages, is you just export a Boolean. Export cons pre render equals true. If that exists on a given page, then the adapter can know that it can pre render these pages. And you don't need to seed it with the pages that are pre renderable. Because it can just look at the route manifest that it generates and identify the statically rendered pages for you. I think is the same idea. But I think the implementation is a little bit simpler. As far as you know, offering an app is concerned.[00:15:51] KA: I think, this idea, especially, you know, just thinking about the caching stuff, if you go down that path, it would mean that you basically a very predictable build times because you don't essentially don't have to build your pre rendered page, they would just get pre rendered on request, that'd be an interesting solution, it would change it from like, O of n to like, maybe O of one. But then I think it's also one of those things that's very contentious, because it's just not a norm to set cache headers in a lot of JavaScript frameworks. It's definitely a bit on Ryan and Michael's side of things. And it's something that so having worked in Nullify, myself, Nullify does stick to the fairly strong view that people don't never, they either never set cache headers, right. Or they tried to do it right. And then the first set of problems, they turn it off, and then they leave it off. Because that's that's the way you solve problems with cache invalidation, you just stop caching. It is an upcoming struggle, I feel like that that we're really going to see play out because of all these frameworks exploring this space.[00:16:51] RH: It is. My guiding light around caching is a blog post that Jake Archibald wrote a while back, in which he basically says there's two reliable ways to set cache headers. One is the content is immutable. It has, like some unique identifier in the file name, like a hash of the contents. And then you can treat that as immutable. Once the browser has it, they can hang on to it indefinitely. because nothing's ever going to change. And that's guaranteed. The alternative is, you're going to need to check everything with the server. And the server can respond with a 304, which means nothing has changed since the last time you had this file. So you can use the version in your cache. But you still need to check everything with the server. And anytime you start to get into or maybe you can hang hang on to this file for a little bit, then don't check for like the next 10 minutes or something. Inevitably, you start getting a mismatch between, you know, you've got some resources cached and some other resources that relate to that resource, uncashed. And it gets out of sync. And this is, this complexity is magnified when you have a server rendered page, which is cached for a certain amount of time. And then if you if you navigate to that page client side, and the framework is just getting the data for that page, instead of the page itself, then that JSON file or whatever it is, will have a separate cache lifetime. And so the server rendered page and the client rendered version of that page will be out of sync. And even Remix doesn't have a solution to this problem, it is a really tricky thing. But I think what Remix is doing is pretty smart. After talking to Ryan and Michael a little bit about this, it turns out that what they're doing is they're actually controlling the deployment as well as the generation of the files that get deployed. So their equivalent of our adapters, they are also responsible for invalidating caches on the various platforms, which is how they're able to have this level of granular control. Whether it's worth thinking about adapters in SvelteKit in the same way, that they should be responsible for deployment, as well as just for building, is something that we probably need to think about. I think[00:18:55] A: I think also, if you're generating a lot of content up front, and then you know, static, generating content, and then you're deploying that content, and then someone changes what their contents based on, and then you have to rebuild the whole thing, you're going to have that build delay, whilst all that content is rebuilt anyway, unless you're gonna have a way to build them one by one, which should be very quick. So if you're rebuilding all that content, every time someone makes a change, then that's basically the equivalent of having a long cache on some stuff and having stale content rendered to the browser. So I don't think either is a silver bullet. It's definitely an issue that needs a lot of thinking about.[00:19:32] RH: Yeah, it's one of two hard problems in computer science.[00:19:34] KA: Right. So TypeScript support, of course.[00:19:39] RH: Yeah, we're gonna have full TypeScript support when we launch, you know, whatever your definition of full TypeScript support is like, we'll have the ability to set up a TypeScript project when you do [inaudible] in Svelte it already, in fact, asks you, “Do you want this to be a TypeScript project?” And if you hit yes, then it will add TypeScript to your package. It will convert the example component to have Lang equals Ts, give you a Ts config, all of that stuff. And it just kind of just kind of works. There's other little nuances about how we incorporate Svelte check into this setup. But the short answer is yes, TypeScript will be supported. We're not making the mistake this time.[00:20:21] A: I think you've also, you've also touched on another point there, that SvelteKit has a CLI, and it has a config file. And that's there's two things that originally we considered to be a not not a good thing. And now they are sort of, they’ve become part of what we're building. So might be interesting to talk about why?[00:20:41] KA: Maybe back up a bit as to why do you get in the old case?[00:20:44] RH: Yeah, so for a long time, we kind of rejected CLI’s in favor of just plain old template repo. And that's your project. To make that easier. We have this tool called DGIT, which essentially clones a repo without all the history, and has some like nice stuff around discovering the repos that you've already claimed in the past, so that you don't need to type it out each time. And it will do offline caching and stuff. But it's basically just cloning a repo and then deleting the docket folder. And that's nice, because you're really, you're showing your work, there's no, there's no magic, there's no, like if you do a Create React app thing. And then at some point, you're going to stray from the happy path and you're going to need to eject from your Create React app setup. And at that point, you're on your own. And what was formerly this relatively self contained thing just kind of splurges all over your file system. And it's just a, it's a very confusing experience. And so we've felt quite strongly that it's better to just give someone some files and say, this is how they interact with each other, if you want to make changes, go nuts. And that way also people can, they can make their own base repos. Like if you spin up a lot of projects, then you might have some opinions about how to set that up about how to do tests and this, that and the other. And so you can make your own repo which is based on ours, and then you've got a project template that you can clone just as easily as cloning our own. But we are introducing a CLI and I think that is largely motivated by the TypeScript thing, if I'm honest, because we've got a situation now where once you clone the Svelte template, you have to sort of run a command that sets up TypeScript. And if you look at the script that does it, it's, it's like breathless, like it's very clever, and it works. But it's also kind of messy. And if we're going to start adding stuff like that, if we're going to have questions about how you want to set up your project, then I sort of think that we need to be in control of how that project is initialized a little bit sooner. And it's also just people know what npm-init aoes, people are familiar with that. So the fact that you'll be able to do npm-init in Svelte, without installing a single thing, that will give you a Svelte project, and you can get started really quickly. I think, I think that's neat. But you'll still have the ability to DGIT from a repo that you maintain, if you have specific requirements. I think it gives us the best of both worlds, gives you a really nice onboarding. But we're still not going down this whole messy eject or don't eject route, that some frameworks seem to like. [00:23:39] KA: So this config file. So that's where you would define your adapter, your pre processors, all of this stuff?[00:23:48] Yes, yeah. So that's another thing that we resisted for a while having a Svelte config file, because config files have a way of getting a little bit unwieldy. And so we sort of said, maybe, let's put the brakes on this and not have a config file just yet. But then what happened, of course, was people in the community, thought, “We want to have a Svelte config file for our tools.” And so people created incompatible Svelte config files. So you know, you have one in the Snowpack starter project, you have one in the Parcel plugin, and they are fundamentally incompatible. So we sort of had to come along and say, we're laying down the law, this is what a Svelte config file is going to look like. And now that we're having this, like official way, like this is how you build Svelte apps, we have a SvelteKit and this is the officially supported way to build Svelte apps. It's less of a problem to have a Svelte config file because the project structure is already just kind of more predictable and more understandable if that makes sense.[00:24:49] KA: Speaking a bit about adapters. Can you tell us anything about which ones are going to be coming at launch? Like which ones are you excited about having?[00:24:58] Also what adapters do? Because Yeah, I myself don't really know?[00:25:03] That's a good question.[00:25:06] RH: You've got two choices, you can do Sapper build, which will create a node server that serves your app. And then you have to find the platform that can run a node server. And that's harder now than it used to be. Like, for example, before [inaudible] now v one, you can just run a node server. And that was great, really easy way to run a Sapper app. Now v two comes along, and you can't do that anymore, because they're gone fully serverless. So that's like a, an indication of the sort of direction in which things are going. Sapper Build was designed for the world formerly existed, Sapper Export, on the other hand, would build your server, it would then start your server and then it would crawl your and make out what it found. There was no in between, between Sapper Build and Sapper Export. Now, we want to be able to say some pages are pre renderable, some pages are not pre renderable. And so that means doing things in a slightly different way, at the same time, we want to be able to generate Cloud Functions that run on Netlify, or Vercel or Begin or any of these other platforms. CloudFlare Workers. Yeah, that's another big one. It's difficult for the framework itself, to be able to satisfy the competing demands of these various platforms. So one of the big changes in SvelteKit relative to Sapper is this concept of adapters. The way that works is when you build your site, it happens in three phases. The first phase is we run it through Snowpack, which is what powers SvelteKit. And that will generate what we call the unoptimized build. And that's just like a one to one transformation of the files in your project. It'll do it twice, once for the server side rendered version of your app, once with the client side rendered version of your app. We then move on to phase two, where we optimize that output, we run both of those applications through roll up that allows us to do things like bundling things into coarse grained chunks, which are better for loading performance, we can extract CSS from your application and write it out as static CSS files. And we can generate the manifest that allows the Cloud Functions to know which code they need to load in order to render the page that's being requested. And so after that, we've got something that is pretty agnostic and doesn't actually do anything yet. So we we applied the adapter to it as a final step, which takes the optimized build and massages it into the form required for the various different platforms be that a node server or a purely statically exported site as with Sapper, or one of the higher function providers that we're going to support. You asked what we're going to support at launch. We don't have like a list yet, but you know, definitely Vercel, definitely Begin, definitely Netlify, definitely CloudFlare Workers, I think. [00:27:57] KA: I'd be happy to help pitch in support forAWS.[00:05:00] RH: Definitely AWS Yeah,[00:28:02] A: It's worth noting, yeah, that a lot of people have come forward and say that they'd like to build an adapter for their platform of choice. And I think that's, that's a great thing. That's a really fantastic thing. The list that we have right now it started off with Rich building the Netlify one, I built the Vercel and Begin ones based on what Rich did with Netlift because, well Vercel was easy, because I'm already hosted on it. And I wanted to work on there. And I want to see how much work it would be because I helped build the original Vercel builder as well. And the Begin because I mean, it’s my pick, Begin.com is my pick, right? I really like what they do with architects, I really like the fact they have data built in. I really like that kind of stuff. And so I just wanted to see how quick can I get this new thing running on this platform? And how different is it to, to Netlify, for example? And it actually is not that different at all. And that's quite nice thing about adapters they are, they're all turning out to be roughly along the same lines, which is really interesting. Those lines are [inaudible] underneath it looks like so it's pretty straightforward really.[00:29:03] RH: Yeah. So in addition to these official adapters that we're talking about, there's going to be a well documented API for people to build their own adapters. So any platforms that we don't support, people will be able to support them themselves. And actually, there is a conversation happening about how much stuff we want to do ourselves and how much we want to farm out to other people and let them maintain it. But the API is very much not locked down yet. So yeah.[00:29:27] A: Hence why we haven't just invited everyone to build[00:29:31] KA: There's an open question of whether every meta framework like Remix is doing something you know, [inaudible] is doing something, whether every meta framework should have adapters or should every meta framework target a single format? And I may have brought this up with you Rich I don't remember, but Glenn [inaudible] proposed FAB, the front end something application bundle, which are basically containers for front ends and it's a fancy way of just saying let's just standardize what we what we export to so that all the providers know what to ship agnostic of framework and all the frameworks know what to build to. Doesn’t that make sense?[00:30:08] RH: It makes total sense. And I've chatted with Glenn about this. I should have added that to the list actually, we definitely want to have a FAB adapter for SvelteKit. I'm actually surprised that more people aren’t using FAB, it’s such an obviously smart idea.[00:30:20] KA: Because he targeted CloudFlare. He was like only CloudFlare. And then that was the story for like two years.[00:30:27] RH: That's another easy way for us to support multiple platforms is -[00:30:32] A: I think on the flip side of that coin, of course, and I think it’s fantastic idea. I think the flip side of that, unfortunately, is that you can make something that adapts to everything. But abstraction has a cost. And I think that at some point, you encounter a bit where well, this won't work now, because this radically new, different thing that’s super optimized, won't fit into this pattern. So you can understand why there's there's always kind of a, it's not a silver bullet. Nothing's a silver bullet I suppose.[00:30:57] RH: [INaudible] outsource our adapters to FAB but because we do want to be able to optimize specifically for different platforms. But it's a great net to catch the things that we can support ourselves. [00:31:10] KA: I want to move on to developer experience. So this kind of seems like one of the important things with SvelteKit, things like Snowpack, and the adaptors I guess, are also part of that. What are some pain points that you'd like to explore in the future when it comes to bringing the developer experience even further along? Not particularly anything to do with SvelteKit, more like just general thoughts? Hmm. Wow, that[00:31:39] RH: Hmm. Wow, that is a big question. That I think SvelteKit represents a big upgrade in developer experience from Sapper, just because the Snowpack developer experience is so good. For people who haven't tried it yet, like it's worth just trying out one of their sample projects so that you can get a sense of, of how the thing works. It doesn't have any of the delays that are involved in traditional bundlers at development time. And it also has some really nice features like it has error overlays. As soon as there's an error in one of your files, you'll instantly get feedback in the browser, you don't need to have your terminal visible at the same time as you're developing, it just gives you way better feedback. The hot module reloading is really robust in my experience, it's just great. But I think it does open doors to potentially some future improvements that we haven't really begun to explore yet. One of those is the idea of having something like a Storybook type experience built into the framework. I'm not personally a user of Storybook. [00:32:40] KA: Have you tried Svench?[00:32:41] RH: I haven't tried Svench yet no, but it's on my list of things I want to play with. Aesthetically, I just can't get on board with the way that stories are written in Storybook. And also, like it takes a little time for a Storybook to get started. But now that we have this unbundled workflow, you no longer need to point your bundler at all of the components that you want to have in your Storybook, because everything is just dealt with at runtime. So I think we could have a built in Storybook type experience that would be really slick and really fast. But then, you know, once you start thinking along those lines, you start asking yourself, why not just bring this stuff directly into your editor? And so I'm also kind of idly wondering about what an integration between, say, VS code and SvelteKit could look like? Can we start to move more in the direction of wiziwig component editing?[00:33:37] KA: That would be pretty cool. I have wondered because I also faced that frustration with Storybook, we used it at Netlify and a bunch of other open source projects that I contribute to. And yeah, it is way too slow. And that needs to be changed. But the workflow of having independent components apart from your app, so you can develop in piece, but also document and kind of have a live design system, it does make a lot of sense. We all have a source slash components folder anyway, like, let's actually make use of that in some way. I think you're gonna build that as a layer on top, but some people use vim and all that. So it's nice to have a standalone browser version and the browser version, you can just kind of bring into VS code pretty nicely as a VS code extension. And then the other thing to take note of is that people often build their Storybooks as an externally available site, so that people can reference their design systems just for designers and whatever.[00:34:33] RH: Yeah, and actually, this this is a point worth touching on. At the moment, we have this fairly neglected component template for if you want to build a Svelte component for distribution or component [inaudible] for distribution. You don't get as much hand holding as if you want to build an app with Svelte. And we can change that with SvelteKit. I think that using SvelteKit for building component libraries, or even just single components is going to be first class experience, because we can have this storybook type thing in the future. But even without that, you can build your demo site using the components in your source slash components folder. And you can put that somewhere. But you could also have, we haven't built this yet. And like, we haven't really talked about it even among the core team, but you could have a CLI command that packages out as a component language for distribution as well. And I think that could be very powerful, that could cause a renaissance in component libraries in Svelte and you can do things like pre process all of the components in your components folders to strip out the SASS and the TypeScript, and whatever, so that it's easily importable everywhere. But while you know, keeping the component source otherwise intact, and, you know, we can generate export maps, and all of these other things that are a pain to set up yourself, we can just do it for you.[00:36:01] KA: Speaking of things that are a pain to set up, testing, so Sapper had a Cypress included right, at some point, I'm not sure if it still does?[00:36:11] RH: Yeah, it's been removed, actually.[00:36:15] KA: So what's the idea with testing when it comes to the SvelteKit? Have you guys thought about anything around that?[00:36:22] RH: We have an issue open for it. Every time we start talking about testing, like, yeah, we recognize the importance of testing. But honestly, what kind of tests make sense to have in a front end project? It's far from clear like, what stuff you are supposed to be testing, we don't want to have some sort of official recommendations that end up with people writing meaningless tests. A lot of front end tests are kind of meaningless. They're just duplicating the functionality of the frameworks and test suite, which is not a good use of anyone's time. So I don’t know, Anthony?[00:37:02] A: I think, you have to pick the problems you want to solve. And I think for us to determine what a good testing strategy is, is not a problem that we really want to solve or we’re even set to solve. I think a lot of the maintainers especially have different views on what testing is, I'm not even sure now that, I, my view on testing has changed. In the last three years, it's gone from ice cream cones to mountains, and you name it, it's all over the place, it's very difficult to say what a good testing strategy is, it's very app dependent. It's very much about where you are going. I like to build very dumb, thin front ends, and very smart backends. And therefore, I can actually replace the front end or have a native app or anything else like that anytime and not lose the crux of the application. And I think that it does almost make a lot of acceptance testing extremely costly. Because you're writing tests for something that you effectively throw away. It's almost a waste of time to throw the front end away or make some drastic changes to the workflow. I think it's one of those things that it's easy to pull out and say, look to somebody, his name's slipped my mind, the guy who writes testing framework, or testing library. So it's better to defer to someone that came and say, look, go and have a look at what the recommendations are from people who sort of make this their core goal rather than to try and educate as part of building something that's not really related to this at all.[00:38:30] RH: That said, like in a situation like yours, maybe it makes sense to make it easy for you to do testing of your endpoints separately from testing your components. Because if that's where all the heavy lifting has been done.[00:38:42] A: But let's not also forget, like my applications, when I say the front end, I'm talking about everything that Sapper serves. So my testing in logic is in my happy application, it's in my in my API, I don't really have that many server routes. It's a tough one. My API is covered in tests. My front end is definitely lackluster in terms of testing. It's got a few unit tests, and not much else.[00:39:04] RH: Yeah. And there is a cost to having a default, because most testing setups, like they'll need something like Puppeteer or Playwrite. And these are big dependencies. So if you're starting a new project, then you've got to spend several minutes installing all that junk before you can start developing. If you're going to use that then fine. But if maybe you're not going to use that, then do we want to impose those opinions on people? I don't know.[00:39:27] A: And you’ve got browser support and it could be flaky, you know, different, we find the Svelte tests are actually quite flaky on various browsers, on Macs and things like that. And on Windows machines, you've got to worry about that. You've got to have an infrastructure for running the tests. All this kind of stuff is stuff that we really can't define for somebody, I suppose.39:45[00:39:45] KA: I guess the Svelte team doesn't have to decide for people, there’s something that we can do is send people to relevant pieces of information wherever we can find it. Mainly because I've seen people reject Svelte out of hand because they're like, “Oh, look at them,” and they've been like, pointed to that specific [inaudible] FAQ that kind of just does this like [inaudible] a little testing. Yeah, it's honest. It's just like people like to be given the full package. And sometimes it just takes it a little bit of better communication sometimes. So yeah, we can work on that.[00:40:15] RH: I love testing. And it should be absolutely forefront of everyone’s mind all the time. And I absolutely endorse it. But yeah, it's just not something that can be answered quickly or even well, really, in this context. So I agree, FAQs and documentation would be a good place to start. [00:40:32] S: So in Sapper and SvelteKit, we have the router, is that changing anything?[00:40:38] RH: No, it basically behaves exactly as the Sapper router does. We're not changing anything there, which is one of the reasons that it's going to be fairly straightforward to migrate your application. People do keep asking is, “Is this going to be a standalone package that we can use outside SvelteKit?” The initial answer is no, the medium term answer is maybe. There is some complexity around that, like you need to have a good way to. So it needs to work server side and client side, right? And at the moment, because Svelte server side rendering is synchronous, it makes it a little difficult to work with, you know, a manifest that includes dynamic inputs and stuff like that. So there's just a lot of complexity and nuance that we need to work through before we can offer something that can be decoupled from the rest of the SvelteKit CLI.[00:41:24] A: I think when I build projects a lot, I tend to build a [inaudible] of it first. And the boundaries between the different components are always sort of logical boundaries in my head, and in the code. And they're not necessarily physical boundaries, or different projects or modules. And I think probably the same goes for what we're doing here is that there's definitely a notion in our heads that we want to have the router as a separate component. It isn't right now, it is as Rich said, very difficult to do. But every bit of work we do towards the routing, we are consciously thinking, is this isolatable? Can this be separated at some point?[00:41:58] S: One other big topic is the internationalization support, and it comes up a lot, right? What are we looking at on that front?[00:42:09] RH: That is not a problem that we're going to solve for 1.0, that's still going to be a problem that app developers have to solve themselves unfortunately. It's a big and complex and fascinating topic. And when we first started talking about it in the context of Sapper, we generated a huge discussion about the best way to do stuff. I maintain my belief that a project structure like SvelteKit’s, gives you the opportunity to do some stuff with internationalization that is ordinarily quite difficult. But we are just not focusing on that for 1.0 release. Because if we do, it'll be a 2022 release.[00:42:49] S: It also has to be something that someone wants to work on. Right? There has to be interest there right?[00:42:56] RH: I think that there is interest, it's just it's a ‘too many cooks spoil the broth’ type situation, we've got to have a very clear direction that we agree that we want to go in, we can't just sort of open it to the floor and say who wants to work on this? Because we'll end up with absolute chaos. And there's there's a lot of overlapping problems involved, like the routing side of it. Also, how do you express localize text inside your components? How do you generate that localized text in the first place? Like what format do you use? Do you support multiple different formats of localization? There's just so many questions that we need to have good answers to, and we need to decide how opinionated we're going to be in our answers to those questions.43:38[00:43:38] KA: I have an ending question, if no one else has any other topics that they want to raise. What's on everyone's wish lists for Svelte in 2021?[00:43:48] RH: Oh, wow.[00:43:48] A: I mean, that it exists.[00:43:52] KA: I think that will be achieved. So, setting your bar high there.[00:43:59] A: You know, manage your expectations I guess. [00:44:02] RH: I definitely think it will continue to exist. We've talked about how we would love for the Svelte community to be more diverse. We are very typical of an early adopter focused open source project in which you know, our user base is unfortunately slightly homogenous. And, you know, if we can find a way to reach people who aren't currently using Svelte, that don’t look like us, then that would be a wonderful thing. And I think it would be the benefit of the project's health overall.[00:44:33] KA: Yeah, I was gonna raise that. I got to think of something else.[00:44:37] S: I think it's kind of tangential, I'd like to see more accessibility features in Svelte, things like maybe high contrast warnings.[00:44:48] RH: So this is the kind of thing, I hadn't thought of this at all until you said it just now but this is exactly the kind of thing that having a central officially supported project structure like SvelteKit, kind of allows you maybe to do a little bit more reliably, because you can, you can say in a very predictable way, like, this is how you build the application so that you can serve it and inspect it using Playwrite or whatever. And you can't do that if the project structure is completely arbitrary. But if we can say that the majority of our users are going to be using SvelteKit, then that is exactly the sort of thing that we can start thinking about adding to the developer experience.[00:45:27] S: I'll plug Kevin's favorite topic here, Svelte actions. I started actually prototyping a little, you know, project, just just to see, just to achieve consensus on what people think would be nice as official Svelte actions, things we all use a lot like onClick Outside, we all have some version of that anytime we write a model. And then I already forget what else, long press would be interesting for mobile web. Yeah, stuff like that is stuff I'm accumulating. And so there is an RFC. I took a stab at prototyping it. And you know, maybe you will see it merged -[00:45:59] KA: I actually thought about an action for focusing on an input, it would be pretty sweet, focus on loading the page. Anyway.[00:46:10] A: Isn't that the antithesis of accessibility? I think it's like that's the opposite of because I know that the problem if you focus on that attribute, then it's unexpected for users who aren't using keyboards or something like that, I can’t remember the exact rule. [00:46:21] RH: I think you want to avoid auto focus when a page first loads, because people who use keyboards to navigate will expect the focus to be in a different place. I think it is okay to use auto focus in content that is created dynamically. Like if you create a new dialogue, then it's useful to focus the input in that dialogue immediately. But the accessibility rule sort of does this blanket, “You can't do that,” when you add autofocus to an input, which is, I often find myself adding the ignore declaration. [00:46:52] KA: It’s there in HTML. Why would they put in an HTML if it were not supposed to use it?[00:47:00] RH: Left hand right hand.[00:47:02] S: This is what would be nice, with more accessibility warnings. It would help me stop myself from doing stupid stuff like this.[00:47:10] KA: I would also say like inside the Svelte code base, I think there's a lot of to do's left on the accessibility stuff, right?[00:47:17] RH: Yeah, I mean, the biggest one is like when you do have, well the biggest one for me is when you do encounter an accessibility warning, like if you add autofocus, you will get a warning, but it's not at all clear how to disable it. Like you sort of have to know about the like, what the warning codes are, which we don't expose anywhere. And it's not very well done. We need to fix that.[00:47:36] KA: All right. All right. To do list. Let's go on to pics if you have any. I can start. I got myself a robot vacuum machine a couple of days ago.[00:47:45] RH: Oh we can see it over your shoulder.[00:47:47] KA: Yes, yes, exactly. Best purchase I've done in years. Love it.[00:47:53] S: Do you go barefoot in your home? Or are you -[00:47:56] KA: Yeah, I do. [00:47:36] S: No wonder. [00:47:36] KA: I think it's a American thing to like, always wear shoes in the house. Or at least like non Asian thing. I don't know. Yeah, like the Roomba just cleans up things that you would already have on your floor. Anyway, I don't know what I'm saying but -[00:48:13] RH: Does that not rob you of the joy of vacuuming though?[00:48:17] Joy of vacuuming. What? What joy?[00:48:22] RH: Vacuuming is by far my favorite chore. Because you get such a sense of accomplishment. I have one of the battery powered Dyson's which takes a lot of the hassle out like you know you don't need to bend over and like unplug it and then put it into the new socket in the room that you're doing now. I just walk around with this battery powered Dyson and you collect all of the dust off the floor and then like you look at it inside this transparent cylindrical container and you feel a real sense of accomplishment. I think if I had a Roomba I wouldn't get that that pleasure once a week.[00:48:54] A: My wife shows me that right, so we've got, we've got the Dyson too. We've got two of them, one for upstairs, one for downstairs. And what she does every time she uses it she comes in and shows me all of the dirt that’s in it, like it’s some sort of like award. I don't understand it. But now I kind of get it. It's not just her. People do this and are entertained by it [inaudible]. I do however, I will say that I hate vacuuming. I really I don't enjoy any chore really, but especially vacuuming. I do have a Roomba as well. And one of the good things well [inaudible] the fun thing is taking apart after it's done a few cleans and pulling all the hairs out of it and cutting all the bits of it. That's satisfying. That's absolutely great fun. I can sit there for like an hour, taking it apart and pulling all the bits of stuff and hair. It's great fun. Great fun. So you have that joy to look forward to Kev.[00:49:46] S: I got a new phone recently, and I'm quite enjoying. My old phone, I had the Pixel two XL and it served me pretty well but the screen was like smashed up and it was just dying and everything. So I asked people on Twitter what phone I should get between some Samsung Galaxy, whatever the newest one is, or the Pixel five, or the One Plus 8T. And the Pixel five was the overwhelming favorite. So I bought the One Plus 8T. And I've been very happy with it.[00:50:14] A: You made the right choice.[00:50:17] S: Yeah, I made the right choice. Yeah, Anthony was one of the people who steered me towards, I think maybe you actually sent me a YouTube review of the One Plus 8T in comparison with the Pixel and it’s just much better phone, or somebody did, and it convinced me, it's really high powered. And it costs the same as the Pixel five. And it has this sort of nice, turquoise, shiny case on the back, just a very well put together device. So if anyone needs a new phone, then check out the One Plus range. I’m not paid to say that.[00:50:49] KA: Actually, so I moved. I have used, I used iOS, I used Apple iPhones for 13 years since launch. And I switched to Android in February. And I went through the same rabbit hole and I landed on One Plus as well. It was the 6T because I'm cheap. I think my conclusion between Pixel and One Plus is that like Pixel, just randomly, like prioritizes camera over everything else, no matter what it has to have the best pictures, but I don't take many that many pictures. So that's what made me choose the One Plus which is you know, have better specs for everything else. And a decent good enough camera. And I think that's the way -51:24[00:51:24] RH: Yeah, I actually bought a decent camera recently, like one of the new mirrorless ones that is like the DS, the old DSLR, but a little bit smaller. And so now when I go somewhere I want to take photos, I will take that with me. The image that it produces is just so much better than what you get out of a phone camera, that I'm not taking as many pictures with my phone anymore. So it was the same thing for me. It's just not a priority. I think that phone cameras have sort of slightly cheapened the art of photography. And I refuse to participate in this nonsense.[00:51:55] A: I will say that I, I went the other way, I had an iPhone 1 originally, I then switched to One Plus and I had my, I bought One Plus One. And it was stupidly cheap. Because it was when they first launched, they were just basically free almost. And it lasted me six years. And I couldn't actually make it break in order to get a new phone. It's amazing. It just slowed down a bit. And they’d stopped making the OS for it. And I switched to iPhone. And the only thing that's good about this is the health thing with the watch. It's really good. But I miss the Android. And the only reason I’d go back is to go back to a One Plus. The browser on this is terrible. Safari is just a joke, it’s useless. So I'm very much of the opinion now that I might look at Android again.[00:52:37] KA: It's a trade off. My summary is iOS is the better operating system. But then Android has the better browser. So pick your poison. [00:52:47] S: They're both pretty locked down. Right? I guess you can sideload on Android.[00:52:51] Android you can kind of choose what you install. And I think One Plus are very good for actually having customer [inaudible] and stuff. Their phones will take quite a lot of stuff without a lot of modification, they’re a very generic kind of hardware. Well at least they were when I had one.[00:53:03] KA: I've been using a new calendar app, Savvy Cal. It’s by a friend, Derek Reimer, he’s sort of trying to make his make his way in terms of like, indie hacking his own business, and I kind of bought it as a way to support him, but then it actually turned out really good. So it's exactly like Calendly except that it's indie and it looks different. I always get compliments on it whenever I drop a link to people. And I think that a lot of people don't do that. So they do they always do the back and forth emailing or like, “I'm free at least three times. Can you make any one of these?” And it's just better if you just give them a choice. I've been enjoying it. And he's got some like nice, pretty nice team features coming in, which is which is exciting for my team.[00:53:42] RH: This looks this is good. Actually, this looks perfect for what I need. Nice. Nice pick. [00:53:46] A: I think my pick has to be Begin.com. I mean, I said it before, right? I'm really enjoying it. I really like [inaudible] architect. And I really like the fact that it's got built in data. I've started building a small project on it just to see, you know how that actually works. And it's pretty great. It's a pretty great experience. So yeah, that's my pick.[00:54:04] KA: I mean, Brian's a friend, we should try and have him on to chat.[00:54:08] RH: I like products like that where like you know the people who build it. At least a little bit.[00:53:13] KA: Yes, so you can yell at them.[00:54:15] RH: Yeah, but also, so you kind of have a sense of their product philosophy, and whether it's something that you align with.[00:54:24] S: Yeah, it's more relatable, right? Yeah. Thanks for coming on, Rich. Always fun to hear your thoughts. Thank you everyone for listening. And we'll talk to you in a couple of weeks again.[00:54:38] Bye. Bye.[END]
This week we talk about all the awesome talks that we saw at Svelte Summit. It was a bit long, but wow, was it good! Great Event. And we hope you all come to the next one in the first half of 2021!If you missed it, you can tune-in on the Svelte Society YouTube channel. To get news about the next event, sign up to the newsletter.Show Notes: SVELTE SUMMIT - Check out the talks and the website!Transcription:[00:00:00] KA: Hello, everyone. Welcome to another episode of Svelte Radio. I’m your host, Kevin. And I ran a site called Svelte School and I’m joined by my two co-host, Antony and Shawn.[00:00:11] AJ: I’m Antony, the CTO of Beyonk. I’m a Svelte maintainer. And actually, I can say this now, I’m currently working on Sveltekit, which is quite fun,[00:00:18] SW: Oh, that’s hot. We should talk about that. I’m Shawn. I work at AWS and temporal. I don’t really kind of work on anything, but I do use other GS a lot, so that’s fun.[00:00:30] KA: All right. Last weekend -- it was last weekend, right?[00:00:35] SW: October 18th, I had the date memorized because I was so promoting it so much.[00:00:41] KA: I have no idea. Time is not my --[00:00:45] SW: Ground circle.[00:00:46] AJ: Yeah, I know. Not mine.[00:00:47] KA: All right. What did you guys think? Was it good.?[00:00:50] SW: Yeah. I think we went very well. I wasn’t sure if I was going to stick through the whole event, but it was going to be a long one and it was very late at night and on a weekend. But then, I just found the conversation really entertaining, the talks are cool and I stuck around for the entire thing.[00:01:06] KA: Well, that’s awesome, seven hours.[00:01:08] AJ: Yeah. I mean, I also did stick around for the whole thing.[00:01:12] SW: You cycled like a billion miles.[00:01:15] AJ: Actually, it’s quite a short cycle, because I was trying to moderate the chat from my phone while sitting on the bike, watching the conference. But also, I had like the cycle trainer up and everything else. Yeah, it was interesting, trying to do too many things at one space. I think I did like 20, 25k or something, which is not impressive but it’s worth doing. It was a good feeling as well. What I found was it’s surprisingly easy to concentrate when you’re a cycle trainer watching a conference. I think that I’d like to just go to more events like that, but while cycling because it works really well.[00:01:54] KA: I like working out as well while like watching stuff because it’s nice[00:01:58] AJ: But it’s quite hard, right? I’ve tried running and watching The Simpsons and I can’t do that. It’s just impossible, but this was much easier for some reason.[00:02:06] KA: Cycling is probably a bit easier, kind of in my mind at least feels like it would be easier.[00:02:12] AJ: Yeah. Well, you’re sitting down for one thing, but also, I guess you can vary the cadence quite easily. Like you can just change gear and make it easier or harder if you want to focus on a specific bed. It’s not like you’re having to maintain it constant all the time. Yeah, it works really well, works really well, so I’ll try to do that in the future actually. Then yeah, watching the rest on the TV downstairs, and it was me watching it and enjoying it, and my wife having enforced upon her. That’s, you know, hey.[00:02:41] KA: Which talks did you guys like the most? I think my favorite was like The Web à la Mode one, for sure.[00:02:47] AJ: Oh, yeah.[00:02:47] KA: Like in a creative way, I really like that one. The flying head and --[00:02:52] AJ: Yeah. I think that’s an easy one.[00:02:55] SW: I mean, he actually I think expanded. I personally do a lot of pre-recorded classroom speaking. He’s a first-time speaker and he expanded my idea of what a pre-recorded talking do. It’s like he built that thing, and then played music. Then the rest of the talk was, had that back in music. Now, it’s just genius.[00:03:17] AJ: Yeah. It’s nice to have a pay setter like music wise. I don’t know if you have heard of the comedian, Mitch Hedberg. He’s death now, but he always had this like weird beat going onto like his entire set. It elevates it. It adds like a massive dimension to it, and I’m not really sure why. I can’t remember what the beat is. It’s like — I think it’s somebody playing an instrument called Chuck. When his jokes changed and when his jokes starts to fail, or whatever, which he do a lot because he’s kind of an abstract comedian. He will just say, “Can you just sort of ramp it up a bit, Chuck” and Chuck sort of increase this tempo a bit and change up the way it sounds.” [00:03:56] KA: That’s such a good idea.[00:03:57] AJ: It’s really good. It’s really good that way to do it, actually. So if you’ve got sort of — [inaudible 00:04:00] it’s ridiculous. But if you got somebody who can play an instrument, get him along to your talk, and they can play in the background.[00:04:09] KA: Pro tip.[00:04:09] AJ: Yeah.[00:04:10] SW: Just to mention some of the others. I realized that there’s a lot of curiosity around talks, transitions and animations. I think we have three talks. One, Nicolo Davis on crossfade, and then we had Mark Volkmann on animations and then we had Li Hau on transitions. I thought that was — I always wondered that and it’s kind of wishful for me to actually have talks like things that really explored how they work and what we can do with them.[00:04:40] AJ: Yeah. so another reason that I mentioned his talk is because, it’s really, really difficult to talk on something that’s kind of intricate and complex. It’s very to do talks — not very easy, but it’s easy to do talks on sort of more high-level subject. Building that, building this, building that. But when you try to go into complex detail about an internal of something and do a talk on it, and present, and maybe even life circumstances, which is just next level. But it’s really, really difficult and I think prepping talks, I found that I tend to shy away a bit for more complex subject, because I don’t feel like we’re understanding as good as it should be to get a talk, right? So yeah, I think extra props as people did that kind of talk as well.I think it’s also worth mentioning, Luke’s talk for me, because I think — especially since I kind of had prior knowledge of what Sveltekit was doing. It was really interesting to see how you could deploy an application to Cloudflare Work because that’s — it’s something that’s really pushing the boundaries of serverless and what we’re going kind of thing.[00:05:43] KA: I’ll be that guy. I confess that — I think that talk was above my pay grade. I didn’t really — I have some familiarity with serverkess functions, but I didn’t feel like I got the pitch. So I need to watch it again, because I didn’t really get like what the benefits were. Like is it faster?[00:06:03] AJ: If you’re building an application and you’re responsible for deploying the application. Your kind of primary goal is to get the hosting really scalable, get it resilient, keep the cost down and make it as fast as possible. I think that Cloudflare Work is — and kind of C game work like that will fulfil all of those criteria, because you’re running your application at the edge, like you’re literally as close to the user as possible, really, other than having a machine in that living room that’s serving them. But also, you’ve got that resilience because there’s so many Cloudflare nodes. It’s full serverless because they are basically tied in serverless work. It’s really of interest to people, I guess who are thinking about deploying an application and sort of determining and deciding on what infrastructure they’re going to use. I think it’s I think it’ll go over the head for a lot of people because they might not be in that kind of space where they have to do that. But I think once you start looking at the array of service offering that are on there right now, there’s so many. It’s really hard to pick and choose between them. It goes all the way from kind of sort of the prior art of Heroku where you’re getting a little dedicated virtual machine to serve your application up all the way to Cloudflare Work, which is a very different concept doing a fundamentally the same thing. Yeah, I think that’s the case for a lot of people but I think at some point, you may be, “Uh-huh. I’m going to go and watch that talk now because I need to do this thing.” [00:07:31] KA: I’m a big fan.[00:07:32] SH: Yeah, I know you are. To get it straight, Svelte kit is kind of built with this motto in mind that we want to be able to render from within a worker. It seems like that’s the case, because I also see this happening in VX Land, the new meta-frame that’s coming out this week REMIX from Michael Jackson [inaudible 00:07:49]. They’re also adopting this model, and it seems like the new trend is coming out. It also links in my head to Glen Maddern, he’s the guy who came up with CSS Modules. He’s been promoting this idea for a while, of fabs, frontend application bundles, kind of containers for your frontend that you can ship to [inaudible 00:08:06] workers. He was on this idea like two years ago, everyone just ignored him because it’s just so weird.[00:08:13] AJ: That’s the downside to being the first dork kind of thing. Yeah, just on this point, yeah, Sveltekit is designed to be kind of serverless first because it does seem like the most logical way to deploy an application, and it can be done pretty smoothly while giving you a good death experience locally if done with that in mind. A lot of serverless right now doesn’t really factor that in and it’s quite hard to develop locally, because you try to run this impossible architecture in your local machine.The Fab thing was mentioned to me recently, and I sort of got excited about until Rich’s stuff. Rich had already been contacted by them a few months prior. And yeah, the concept of adapters and Fab house a lot have overlapped. But what was sort thinking is we might build a Fab adapter so that you’ve got these first-class citizen deployment mechanisms for sort of the biggest and for me the easiest deployment platforms. Then for everything else, you’ve kind of got Fab because by writing one single adapter for Fab, you’re opening a lot of doors. I think Fab is an excellent idea. It’s absolutely brilliant and I wished I’ve found it myself a lot earlier in fact, because I think it’s just going to save, especially when you haven’t got the resource to build something in the platform agnostic way, you’ve got this adapter that will allow you to basically build for anything at all, which is great. So yeah, so Fab is pretty exciting actually.[00:09:32] SW: My take on it is that we have too many config clouds in the world, and if we just all agreed on one config cloud, then the world would be a better place. The 15th config file, when they’re already 14 around, because I was trying to do that. But I think because every serverless provider I guess has their own config file, so this would be sort of platform agnostic one.[00:09:55] AJ: Yeah. I mean, I think it’s worth mentioning at this point. I’ve looked at all these providers obviously, part of building the kit and stuff. But also, I’ve look at these providers for a while to determine where I’m going to deploy my stuff to. I think that my favorite so far has been the open GS architect that begin.com uses. It’s just really clean. It makes a lot of sense. It’s not any known format in terms of like, it’s not like million passes. But they do have a library, you can pass it with code architect, I think.I just found the format really clean and logical, and if there’s any one standard for config files, which I really don’t think will happen. I would love it to be architect because it’s just great.[00:10:34] SW: I’ll provide the counter argument, which is that if you’re truly platform agnostic, that’s great. You could take a code anywhere, but then you’re also not taking advantage of the platform by definition, right? Anything in that platform can build. You can’t take advantage of it, because it’s going to be unique for that particular platform. For example, offers begin data and you can’t use that anywhere else, so goodluck.[00:10:57] AJ: It’s very true. Howeve, what I would say, it’s almost a store argument actually, because the Begin data interface is extremely simple, right? It gets us that and that does it. I think that — let’s not kid ourselves, Begin data is just them. What’s that Amazon database called, the key value one? Dynamite DB. It’s just Dynamite DB. I think anybody who was this sort of this IT architect format, they could either not have a data element to it and just say, “We don’t have a data element.” Or they can implement a key value against that over anything at all. I think it’s quite abstract enough that you could implement to yourself on anything you wanted to, if I could say. So yeah, I mean, I totally get your argument, Shawn, but I think that obstruction makes things a little bit harder for the implement, but I think it’s definitely possible.[00:11:44] SW: Shall we go back to a frontend?[00:11:47] KA: Oh, yeah. Yes, yes, we will. Let’s talk about Plenti. Did you guys tried this before the talk?[00:11:56] SW: I have not. I checked out the site and — I mean, it’s a cool site but I haven’t tried it yet.[00:12:02] AJ: Yeah, it’s on my to-do list, but then so I have many, many things. It sounds like a great idea. It’s sort of less developer-centric, which is really nice. It’s something I hope to do soon, but I haven’t had any chance to look at it at any depth yet.[00:12:17] SW: I feel bad. I’m going to go try it out because it’s a site builder. They’re betting their business on Svelte, just like [inaudible 00:12:24] bases and we got to try all these things. Otherwise, how are they going to succeed and how Svelte is going to grow with nothing.[00:12:32] KA: I did actually try it like I think maybe a month or two ago. Just download the like starter, their example. It seemed like a nice thing, but I didn’t try anything like more complex on that. But from the presentation, it looked like really nice, very simple, very easy to get going. There are a lot of static site generator in this conference. Well, two.[00:13:03] SW: I mean, then there’s Elder.js, I think — yeah.[00:13:05] AJ: But yeah, I guess that’s what I’m saying. It’s not developer-centric because it feels like Plenti is designed a bit more for maybe a business-minded person who doesn’t have the technical skills to really — because it’s pretty complicated for non-developers. The thing that’s really needed is — either, if they’ve done it a million times over the years, somewhere somewhat we got it right. Building websites, its not going to ever producer the kind of website that you might get build by a dev team, but it’s certainly can build something that’s fast, and light, and appealing and responsive, and flexible enough that you can build at least an MVP or yeah, maybe even run your entire business on it, depending how small you are. So yeah, it’d be good to see something in that space, so hopefully Plenti is that.[00:13:50] KA: I think Plenti is like — so Elder.js is a bit daunting to get started with compared to that, Plenti seems extremely easy comparatively, right?[00:14:06] SW: Yeah, of course I met Elder. Like if I didn’t have Nick Reese on top for support, then I would not have gotten anywhere from --[00:14:16] KA: Yeah. But I think — speaking of Nick, his talk was really nice. I think it showcased like the strength of Elder.js pretty well.[00:14:26] AJ: It did and it showed me kind of — because I knew of it and I knew roughly about it, so I didn’t know much about it in depth, then I was looking forward to the talk because I wanted to actually see it, building sort of simple app in it. It is exactly what I thought it would be, which is, it is specifically designed for SEO. It’s not something you use to build your application website, your underline shop or something. Really, it’s something you build to build an online estate of highly indexable content for marketing, which is — it fits perfectly, but a very different offering to say, Plenti anyways. [00:15:02] SW: I haven’t told Nick this. I’ll just think out loud because that’s my [inaudible 00:15:09] here. Building a statis site generator for SEO, that’s a weird bending thing to me, because SEO to me sounds like, make it fast, make it statically rendered, put all the right metatags and then write great content. That has nothing inherently to do with the static site generator. That’s where I really struggle with this idea. For him also, he really cares about massive scale, so even his demos are — which is always a lot of pages and you can really see that it’s build for size. To me, the build for size and the island’s architecture like the whole Zero.js by default thing, that appeals more to me than built for SEO. Because SEO to me sounds like just set some of the tags.[00:15:53] AJ: Yeah.[00:15:55] KA: Yeah, I think I agree there. I guess for my take away was that, what he’s doing is actually generating a lot of content this indexable without having to write all that content manually. So taking a set of data and giving different views of that data, and then positioning those views at that data, and that search engine can quite easily interpret and use, and Google is going to sort of pull out the questions. Some ways, it has more easy from that content, and it’s going to have more relevance because you’re taking — it’s like when you — that when you’re applying for jobs and you have a bunch of CVs, resumes and you tailor those resumes for each job. So in this resume, I’m a strong JavaScript developer. In this resume, I’m a strong node developer kind of thing.I think that for me where I see Elder.js fitting.[00:16:43] SW: I also want to shoutout one thing on which I changed my mind, which I think that’s a very useful thing for other people to think about. I used to be very excited about this idea of MDX, like you write Markdown and then you write some Svelte inside of it or you write some React inside of it, and it becomes a React or a Svelte component. I think I’ve changed my mind on that. Now, I don’t use MDX anymore. And Elder.js has this idea of short codes, and I think that’s actually more future proof and I think that’s what Nick Reese is also causing. I really believe in that now I think, because it separates the idea of like, “I can have that content with the short code, but I can choose to reimplement the short code in whatever other future framework that I wish to have.” The only thing that I have a dependency on is the format of like, what’s the opening and closing time of the short code and all the meta-data that it provides there. I don’t need all the other stuff, because I’m going to probably going to take it out anyway into some kind of layout component, or some kind of reusable replacement for like H1 A tag, but whatever.I think I changed my mind on that specific thing, so I just figured I shared it. I don’t know. Obviously Penguin will not be too happy to hear that, because I was a big supporter. I was like, “Oh yeah, MDX is like the future.” Then I was like, “Hmm, maybe not.” [00:18:02] KA: Short code is a thing from like the WordPress era, right? Probably earlier than that even, but it’s one of those like I completely forgotten about short codes after I started using Svelte. But then, once you’ve realized how powerful they actually are for static content like this or like generating content from other content and putting it into a short code like counting stuff and all sorts of things. It kind of becomes a must have I think when you start using them. [00:18:41] SW: I think one thing that I wish people were more thoughtful about is how graceful degradation looks like. For example, if I was blogging in MD Specs, right? Then I’ll have a whole bunch of like different Svelte component in my Markdown. But if I was going to render that to RSS, what does that mean? I don’t know. It doesn’t — it’s going to come up like a jumble of stuff. But then when people implement short codes, they’ll do things like, “Okay, I want to embed a YouTube video inside my content, right?” So I’ll say, short code, open tag, YouTube and then the ID, but that also doesn’t degrade very gracefully.What I actually want to do is paste the YouTube URL, so if someone comes to mine without that MDX — the short code passing, we can still just click the URL.[00:19:27] KA: Yeah. That makes sense. It could probably write an Elder.js plug in for that.[00:19:31] SW: My problem with this is not Elder.js. It’s actual Dev2. I used that too as my CMS and then I syndicate it to Elder.js.[00:19:39] KA: Oh, okay.[00:19:38] SW: By the way, that’s an SEO hack because Dev2 forwards all the conical traffic to your domain. So it’s — I don’t know how long it’s going to last. It’s a very, very quickly to rank very highly on Google.[00:19:52] KA: I’m going to edit this out, keep it for myself.[00:19:56] AJ: Yeah.[00:19:58] KA: No, I’m just joking. Should we move on to some of the other talks that we saw? We talked shortly about MD Specs just now or Shawn did mention it. We might as well talk about Peter’s talk, the REPLicant. That was mind-blowing to me. I had no idea how REPL work behind the scenes and how you bundle stuff in the browser. That’s crazy.[00:20:22] SW: The fact that people like this just casually do things like this for talks is mind-blowing.[00:20:27] AJ: Yeah.[00:20:28] KA: Way above my pay grade for sure.[00:20:31] AJ: I think mine too.[00:20:33] KA: It was great, though. It was nice in a way because it introduced like so many topics in a kind beginner friendly way in a sense, like you use TypeScript in Svelte for example. That’s not something you often see. You wrote a rollup plug-in, like all these things to me are not something I know a lot about, like writing rollup plug-ins or bundling or all of that.[00:20:55] AJ: Yeah. I mean, it was well-explained. It was obviously a whole thing, this life code effectively. It’s quite a fit. It’s one of those things again that goes back to, you can do a sort of high-level talk or you can go in depth from something and that’s just massively, massively more challenging I think. Especially then to life coding as well, so yeah.[00:21:17] SW: I think for listeners, I’ll kind of stress the business value of doing something like this. The whole point is to decrease the barrier to trying something out. If I had to download anything, you’ve probably lost like 90% of the people who visit your site, who care about you. If I can hit your site and then see something live immediately and just play with it, then you’ll have a higher chance of people getting it, and then actually trying you up on their local machine.One example that recently happened was Tailwind. They’ve always had some sort of — on their landing page, some animation of what the concept, but they also recently released a Tailwind playground. That’s also another process of like — we have to have some kind of compiling browser type of situation. But it lets you try it out and it also lets you share it. As much as the Svelte REPL is so useful within this small community, I generally feel like Svelte would not be as big today if Svelte REPL did not exist.It’s a similar thing to basically everything in developer tool gate. Like if you are trying to come up with a new format, like a Fab or like show me how to validate and verify my config file. Or like, I’m doing consulting for Temporal.io that I owe and we want to show like a different program and model. Right now, people have to pull a docker container and run it just to see what it’s like — what if they could just run it in the browser. I think this technology is like a really good foundation for demonstrating anything.I’m on Penguin’s read me, which like — he actually cares about docs, which is amazing and he’s got like the ruby playground, the go playground, the Go playground, Rust playgroud. Like everyone prioritizes this for a good reason.[00:22:56] KA: Yeah, I think, speaking of like the Svelte REPL, we should probably try to make that indexable somehow.[00:23:03] SW: One thing I want to do is like Svelte Society or something like that, with like a good name and description, and then people could heart it. Then we could start by like most favorited REPL or just like, you want an example of the model, here’s like 10 different models on REPL. I would love to do that.[00:23:20] KA: Somehow.[00:23:21] AJ: Yeah. I mean, so Svelte REPL, you can save and you can save endlessly and paginate the results, but that’s about it. It really lacks functionality to delete, to rename, to reindex, to share. On sharing links, it’s not as very as straight forward as it could be. It’d be really cool to build the kind of top list of those really good features. So if anyone is out there listening and find this as task or project, there you go.[00:23:46] SW: I’m keen on that, like I want to pick it up as part of my AWS portfolio as well.[00:23:51] AJ: It’s a race, Shawn. It’s a race. You’re going to race with Svelte community.[00:23:57] KA: Some other talks, we had a talk on data visualization, saving democracy with Svelte. That was not the title. [00:24:05] SW: I think that was my tweet about it. I just kind of like, “What the hype, man?” on Twitter.[00:24:12] KA: That was a good talk. It’s always nice seeing data viz in Svelte.[00:24:16] AJ: And then also giving to the two recent IPOs for data exploration company. That’s super interesting, isn’t it, because it’s kind of a hot topic right now. Well, the Snowflake is one. You know Snowflake.[00:24:27] KA: No.[00:24:28] AJ: Well, Snowflake recently did a big IPO and then Palantir went straight afterwards as well.[00:24:32] KA: Palantir, I know. Isn’t that known as one of those —[00:24:35] SW: They do a lot of defense. It’s slightly controversial. I honestly don’t believe that I have — [inaudible 00:24:42] it’d be nice to form a judgment, so I’ll try not to judge. [00:24:45] AJ: But yeah. So it’s interesting because that data visualization piece was specifically interesting. Just because that’s a real world use case as Svelte, pushing the bar a bit because data viz is quite difficult to get everything in a browser in a formal way is tough. The moment when you start adding loads of nodes and loads of data points, everything starts to slow down. I think therefore, you can really showcase the advantage that a compiled framework and also something that’ lightweight and well thought out as Svelte can provide to data visualization. I think that’s the perfect use case in fact,[00:25:20] KA: I think there may be enough here. I see a lot of adoption among data viz people. Like we had Amelia Wattenberger on this podcast. Actually, during the conference, Moritz Stefaner, I enjoy his podcast, Data Stories. He’s a well-know data viz guy. Obviously, I think they use Svelte a lot for data viz at New York Times. I think there’s like French — named Echo. There’s also a data viz shop using Svelte. I think there’s enough here for like a dedicated even for Svelte data viz people. So I really focus shedding a light on this shared tools.Pancake is another another one that didn’t get showing like this summit, but it seems like it’s picking up stream in data viz.[00:26:03] AJ: Pancake is the one I’m thinking right — one answer where ot basically renders SVG first. So it’s actually a service side to graphing framework, which is quite rare. I think that’s quite a special feature that should be noted.[00:26:16] KA: Data viz comp, that would be neat.[00:26:20] AJ: Well, when Svelte Society is big enough, we can have multiple tracks, right? We can have data viz track and have the sort of deployment track.[00:26:28] KA: We actually talked about that yesterday in the retro about having me potentially multiple tracks. I don’t think we actually decided on anything, but —[00:26:38] SW: Yeah. I don’t think we committed to that right now, but it’s possible on the future. I think we’re very inspired by next GS Conf which is also happening yesterday. They had four tracks. I’m a bit conflicted about it, because it’s this whole. I’m very familiar with this dilemma for conference organizers. Because if you have a single-track conference, then you have a shared experience, and everyone can chat with everyone else. Whereas if you have a multitrack conference, you had more choice, but then you also give people more choice stress and you have a shared experience, where if you went to a particular conference, you don’t necessarily know that anyone else share the same experience as you did.[00:27:15] AJ: But also, sort of on the contrary of that. I’d say that if you’ve got linear conference in there, a talk in the middle that you’re not interested in, then you’re going to sort of break up your day a bit. Whereas if you’re a data viz person, then you can kind of focus on the data viz track. Yeah, I think it has advantage and disadvantages. I also believe as Shawn mentioned that the non-fragmented experiences is a richer experience and a better experience. I would say right now, especially that, that certainly tops any reasons for having multiple tracks. [00:27:45] SW: I went to a conference in London where we had two tracks. There was not particular theme, it was like track A, track B. There was one talk on like, React’s Hooks. The other talk was testing in React. The entire audience just like left the testing track and just went to React’s Hooks. It was just so sad. I sat in the testing talk just out of sympathy, but I was just feeling so bad. [00:28:11] AJ: This also happened --[00:28:13] KA: That’s horrible.[00:28:14] AJ: It happened at the Bitcoin Conference where — well, blockchain, cryptocurrency conference I went to. Loads of different tracks and different tokens and stuff. Of course, the main stage got taken by Roger Ver, sharing his Bitcoin Cash that no one cared about. I’ve never seen a large room so intent in my life, because it was just about him.[00:28:33] KA: Oh, it was empty?[00:28:35] AJ: It was empty, because it was Bitcoin Cash and no one cares about Bitcoin Cash.[00:28:37] KA: Wow, that’s so funny.[00:28:41] SW: Is he the Bitcoin Jesus? Okay, we don’t have to turn this --[00:28:45] AJ: I mean, his Bitcoin Cash — he locked onto a boat loads of them, multimillionaire but no one else cares about that code, that token.[00:28:57] KA: It is crypto space, man.[00:28:58] AJ: Yeah, this madness is picking up again.[00:29:00] SW: It’s cool again.[00:29:07] KA: I’ve been talking about this. We should do a Svelte coin.[00:29:11] SW: Yeah.[00:29:11] KA: Probably not. No.[00:29:14] SW: We can bind in the browser with our REPLs.[00:29:16] AJ: Yeah.[00:29:18] KA: Svelte is so fast, he wouldn’t even notice.[00:29:20] AJ: Yeah, right.[00:29:24] SW: Quick shoutout to Annie stock. The thing I was very — I think in speaking, you always have like Service X for first animal Y. Like [inaudible 00:29:36] always has, like, Twitter for dogs or Twitter pets, something like that. It’s just like a nice, fun thing, so Netflix for cats is always a good theme. But like the extent to which she committed to this theme was really impressive. Because she has basically cat versions of every single popular movie. Like Meow-vatar, Game of Paws, Eat, Purr, Leap. Yes, which is great.[00:30:03] KA: And the talk was nice as well, like the intro was also with the flying like StarWars like cats and I don’t know. Pretty neat.[00:30:13] SW: Yeah. Conferences are mixed of entertainment and education, and maybe sometimes we skew too much towards like education or just like — I don’t want to stare at code screen all the time.[00:30:27] KA: I agree. More creativity is nice. It’s like the talk from Svelte Society today, like back in spring, the creative coding session was awesome.[00:30:41] AJ: It’s super nice to get — to convey a complex messages well with something like cats. I think that’s quite a skill. It keeps it more digestible.[00:30:50] KA: There are couple of other talks as well, like the, so you want to pick a router? That was great on like pretty much the fundamentals of routers, and his router as well. We also had on modern fetch in Svelte using stores. Also a great like example of a custom store, I think[00:31:10] AJ: And it’s something that I think a lot of people talk about as well is, how can I basically build data fetching into my store. That’s to cover off a few questions.[00:31:22] KA: Very good example. So there’s actually one talk on this Svelte Summit website that wasn’t in the conference. I don’t know if you guys noticed, but Learn Svelte Using React. That talk was —[00:31:35] SW: You’ll release it today/[00:31:36] KA: Yes, I’m going to release it today. Unfortunately, I didn’t — there was some issue with getting the file to me. So he had uploaded it on some service that didn’t allow it to be downloaded, so I didn’t have time to sort that out, unfortunately. So we’re going to release that as a bonus episode. A few more talks, we have Unlocking the Power of Svelte Actions. Yeah. This is the one.[00:32:04] AJ: A favorite then?[00:32:05] SW: Definitely like that one.[00:32:05] KA: Yeah.[00:32:06] SW: I think he actually have really good ideas for action that I’ve never thought about. People like use CSS.[00:32:13] KA: Yeah. I think also, also like the fact that you can use the life cycle hooks inside of the actions is not something I considered like after update for example or it was after update, right? I don’t know remember. But yeah, great talk and good ideas for actions as well. Then the last talk we have Introduction to Svite as well and the Svelte Animations.[00:32:40] SW: I think he felt a little bit blindsided by the Sveltekit. Maybe that could have been communicated a little bit better. I mean, I’ve enjoyed Svelte and Svite.[00:32:51] AJ: Yeah, absolutely. I think we’ve also — they’ve all sort of this other frameworks of hats of very valuable ideas that we’re considering heavily when building Sveltekit. We’ve now got all these people that are involved to some extent, so hopefully it’s more palatable to them that we’ve kind of taken a bit of their crown away. But now I think they’re all happy to help up, because obviously, it’s flustering that the best possible experience for Svelte user. So yeah, it’s all working well. I appreciate that it feels like blindsiding. The problem of course is that you can’t really pre-announce something before it exists. Rich did go away and build Sveltekit, what you sort of saw in that demo in a ridiculous equipped time as his kind of his ammo. But I mean it sort of head of nowhere.For us too, based on kind of descriptions we’ve been having and mulling over for a long time recently appeared, which is great. It’s very hard to announce when you also don’t know about it yourself. But yeah, absolutely but it should hopefully sort of bring some of these ideas together as well to make something really cool and nice. I’m looking forward to it as well.[00:34:00] KA: Yeah, same here. We had a couple of beginner talks as well, like the The Zen of Svelte. That was nice. Like the intro talk by Morgan.[00:34:11] SW : It was very set, and I think he did his research. He put in some previous talks from Rich, the coffee cup was based. I’m not sure what he learned from it. [00:34:21] KA: The production value was not, like it looked so good with like the moving TV background and a [00:34:28] SW: It’s probably like a DSLR or something[00:34:30] KA: Yeah. Then we had also Prototyping Testing Real Data. That was Daniel. He’s the guy who’s doing the newsletter as well.[00:34:40] SW: That’s right. I’m pretty keen on like making the newsletter more of a thing so that we as a community don’t only stay on discord and Twitter. I think there’s probably a lot more people to reach beyond just discord and Twitter.[00:34:53] KA: All right. So the last talk of the conference was Rich’s Futuristic Web Development. That was new to everyone pretty much.[00:35:02] SW: Just to set the context for people who may not know the back story. When we organized this conference, like we put out a bunch of CFPs and we’re always like — obviously, Rich is always on the table, and just like, “Hey, if you’re free. We know you’re busy and there’s an election going on. There’s more important things in the world than a GS Framework Conference. But if you ever want to submit something.” I think he like never responded on that, unlike a week before.[00:35:30] KA: No, it was less than that. I think it was just like two or three days or something. No, more. Yeah, maybe it was a week. It was very like short notice for sure, but we managed to get at it. So that was nice.[00:35:45] AJ: Well, it’s funny because I guess around that time, he said, “I’m going on a holiday.” So he went on holiday, then when he came back Svelte was written. So I’m not sure what kind of holiday it was.[00:35:54] KA: I think we can probably ask him about it on our next episode that’s going on.[00:35:59] SW: Oh, yeah. Teaser. We actually booked it for next week.[00:36:01] KA: Yeah, we could touch on this I guess, like what is Sveltekit? Can you give us an overview, Antony?[00:36:10] AJ: I can. Sveltekit as it currently stand, and again, we’ve not really said much about it. It is still kind of closed off to that sort of public view. The reason being that it’s very hard to work on something when you’ve got a lot of people weighing in at the same. Right now, we have a bunch of maintainers and it’s really difficult to say to have everything everyone else involved as well would be extremely difficult and it probably wouldn’t move.I think what we’ve don’t is we tried to close off, build something, build a kind of baseline and then produce that baseline. What that baseline currently looks like is essentially a serverless framework. It will handle — we’re very modular, so everything is bunch of modules clipped together. The idea of being kind of pulled in and pulled out where you want. It will essentially do we hope as much as possible, it will be like for Sapper right now. So making the migration path from Sapper to Sveltekit very simple. It’s has various obstructions over deployment, so solving that problem, I’ve built this application, where do I put it, how do I post it. More that kind of is almost built in as a first-class citizen by our adapters, which people know a little bit about, that will take the compiled output of the Svelte app project, the Sveltekit project and turn that into a specific layout manifest, and that it can be deployed to a variety of providers. That’s the current status quo and it can handle completely static vended things, it can handle dynamic pages. I believe what we’ve got to know is a point where you can actually have an application composed of both those types of things. Yeah, I guess the reason you’ve not heard too much about it and there’s not been like a roadmap publicly or anything is, because that brings along with it a level of commitment. And given the schedules, the ever-changing schedules of the maintainers and the people working on this — they are not maintainers right now. What that means is, we end up with over committing and publishing a schedule that probably won’t come to fruit in the way it will, and potentially promising things that never materialized or when they appeared very different. It’s intentionally kind of a vague idea with a little preview right now of what it looks like.By all means, run the node modules, play around with it, do what you can. But right now, the best thing to do is just accept that that’s how it is, and when we get to making it public. It will be a very exciting time because everyone kind of investigate how it works. We expect a huge influx of modules based on people have been saying, so that’s pretty exciting. I just hope that day comes sooner rather than later.[00:38:49] KA: Let’s hope it comes soon, yeah. So if you try this out, don’t like post about bugs on GitHub about it, probably, right?[00:38:58] AJ: Yeah. The likelihood is the bug is known by us. The likelihood is the bug by the time you write that GitHub issue, it would have completely change any way, so the bug will not be relevant. That’s kind of the — [00:39:08] SW: Then new bug.[ 00:39:09] AJ: Well, yeah, there’d be plenty of bugs. For every bug we can create two bugs, right? But yeah, it’s a rapidly changing landscape with no particular kind of — I wouldn’t say it’s directionless but it’s obviously, there’s a lot of different directions and experiments going on. There will be bugs. There are definitely dragons, which is a famous Rich’s phrase I believe.[00:39:30] SW: Actually, mentioned at Pop a couple, because I work in like public communications, so I know that this is the point where we talk about frequently asked questions. The first thing is the fear, uncertainty and doubt from essentially deprecating Sapper and not having a replacement. It’s important to understand that the maintainers is Sveltekit and Sapper are the same people. They have large production apps like Antony, and they are very keen on smooth migration path. Rich is also very aware that like living Sapper and then go like this is for a long time isn’t a good thing for Svelte. He wants it in weeks rather than months. That’s the first FAQ.The second FAQ is also why not Svite and why SnowPack. I think the main answer is, Svite is to tied into the view ecosystem and SnowPack is more agnostic. Those are two FAQs that I saw on Twitter. [00:40:25] AJ: Yeah, it’s an interesting question because obviously Svite works and it’s really good. The fact is that if we start depending on external things, then we can’t make the decisions that we want to make in the most optimal way because we’re always at the behalf of some other person, who may be have different interest than we do. So yeah, not a slight on Svite or whatever it’s called I think is brilliant but it has some beta decisions that you can’t change and we need to have the flexibility change in decisions. SnowPack is excellent. It’s one of those things —[00:40:56] KA: It definitely makes sense.[00:40:58] AJ: Yeah, and SnowPack is heading at the exact direction we want to be in, so yeah. But again, like SnowPack is not set in stone, it’s looking very probably right now, but it’s not set in stone. Everything is still very much influx.[00:41:09] SW: This is our second event, conference, whatever you call it online. The first time around, the Svelte Society Day in April. I think something that we did last time that we didn’t do this time was this live REPL offs. Because there’s more live, we could actually interact with Kev as he was struggling to keep his internet up. [00:41:16] AJ: Sweating profusely.[00:41:38] SW: We had some fun countdown timer challenges. And then this time around, I try to get it started again, but it actually picked a challenged that was too hard. But I think it’s something that — it’s a tradition unique to us that we’ll probably try to keep up next time.[00:41:51] KA: I think I’m pretty much decided on doing this like in a more live version next time. So going back to Svelte Society Day style but using something like StreamYard that doesn’t really rely on my connection, so we can avoid the technical issues. Even if we do get some technical issues, I think that’s fine. I think it’s wort to trade off.[00:42:18] AJ: People are very undertstanding.[00:42:19] KA: Yeah, and it’s worth to trade off of getting like these live, fun, kind of sort of games going between the talks. I think that the route we’ll be taking. Speaking of doing that, there will be another Svelte Summit in Spring.[00:42:33] SW: Oh, we’re saying Spring now. Okay. I didn’t know.[00:42:38] KA: I guess I just decided it as well.[00:42:40] SW: I mean, I also posted the Mount Fuji thing.[00:42:44] KA: Oh yeah, you did with hush emoji, like the shush — like the keep quite --[00:42:49] SW: The hush. Nobody saw it. But no, I think we enjoyed it. I think it’s a good thing for this whole community. It got a lot of attention for people who don’t currently use Svelte. I think this is something that we’re doing a good job for and we want to keep up the momentum.[00:43:07] KA: Yeah, it was super fun, and next time, it will be even more fun because I don’t have to do like the manual emailing and stuff, so it will be great.[00:43:17] SW: Some other things more, we want more woman speakers. We only had Annie this time. I think we’re going to make more of an effort to invite more women, and just make it clear that they’re explicitly welcome and to showcase their talents. I tried to contact some others, but I think I did it too last minute, so we didn’t manage to do it this time. But it’s a priority for us. The event was kind of long, it’s like seven hours, and definitely, people were kind of tired by the end. So we all just went to sleep instead of having like an after-party. Probably we’re going to make it shorter. That means a bit more selection pressure than it was this time around.I think there should be more room for non — like it shouldn’t be just twice a year our conference. It should be like small meet-ups elsewhere as well. We can host everything on YouTube channel and spread the knowledge. I’m very keen on like what can we do outside of the conference.[00:44:12] KA: I don’t know many other frameworks that have kind of a specific YouTube channel for their stuff in the same way that Svelte Society does. I think that’s probably something we can leverage in a good way.[00:44:28] SW: Yeah. YouTube is the second biggest search engine, so we should dominate SEO –[00:44:31] AJ: Oh, absolutely. Yeah.[inaudble 00:44:34] KA: Are we going to start doing some black hat CEO now on like keywords stuffing and all of that. I know nothing about that.[00:44:43] SW: Learn CSS 101 and it just Svelte without telling you.[00:44:47] KA: Yeah. Well, that’s awesome. All right. Let’s move on to picks.[00:44:55] AJ: Picks.[00:44:55] KA: Antony was very excited. He —[00:44:58] AJ: I’m very excited. My pick bizarrely is the British plug, right, it’s the UK plug. And the reason that is the pick is because it was — I was recently reminded. I knew about this anyway, but I was reminded that this is the best plug design in the world. The reason being is because of all the safety features it has. For instance, the longer earth pin that opens the slots for the live and neutral. So when you’re putting the plug in, because it looks kind of junky and too oversized and stuff. When you’re putting in, there’s no change of you touching that life pin because the gates aren’t open, there’s no connection. Until it’s far enough end that your finger wouldn’t get there. That’s pretty cool. It’s big and chunky like this. They’re usually this size. I know that Apple tend to refuse them. But so that you can get a good grip on it and pull it out, and that’s fantastic.Obviously, the old [inaudible 00:45:47]. There’s like a million things [inaudible 00:45:53] built in this plug, and the net result was it’s not particularly pretty but it really works well. I think the other thing is, you can buy these kit free adapters to put into your plug sockets and you can buy [inaudible 00:46:05] here and stuff like that. People put them in there and they block the holes on the socket. But there’s actually an empty pattern in that, right? Because the sockets have this health and safety built in. The gates are closed, you can’t run anything in the holes unless you open the earth first, then run something in the whole. That’s not going to happen. A kid is not going to do that by accident. Those little adapters, plug sockets are actually anti-patent because there’s a potential to actually try and remove them, break them off, leaving the gates for the live and neutral open. They’re actually worse and less safe than not having anything in the sockets, which just blows my mind, why is that and why is that I think.They’re all fuse as well. They all have a fuse in them. [inaudible 00:46:46] there’s a fuse in there and it’s left there. It’s a great design. I think it’s just — it’s like a 10-bit but it’s worth noting that this is a genuinely good plug design, we’re not just — we don’t just love being ugly. Things sticking out the walls. But yeah, that’s my pick. [00:47:04] KA: Nice. That’s a strange pick.[inaudible 00:47:07] SW: I know. I love that you’re passionate about this. [inaudible 00:47:09] AJ: Yes.[inaudible 00:47:12] KA: It’s good appreciate the design of everyday things, the classic book. I think it’s picking up again with 99% Invisible, the podcast that also focuses on the design of everyday things. I think they just put on a book, so much so that my dad heard about it. I was like, “Wow. You heard about it, that must mean it hit the mainstream.” The only follow-up question I have is, you know the American plugs, usually there are two pins, but there’s a three-pin version. Does it do the same thing? Because it kind of has the long line.[inaudible 00:47:38] AJ: Yeah, I don’t know. I don’t think it does. You’ll see that you haven’t got this — you see this, like I’ve got this plastic bit on the pins here. So that even if I got it halfway and I stick my finger there, I can’t touch the actual pin. I see yours doesn’t have that.[inaudible 00:47:52] KA: It doesn’t, no. None of that have that.[inaudible 00:47:55] AJ: But also, without the earth, the US plug tend to wobble out the world, isn’t it? I remember seeing that in America when I was there.[inaudible 00:48:04] KA: Plug are hard. I’m not defending it, I’m just — I’m curious.[inaudible 00:48:08] AJ: No, no. When I was mentioning — well, we were taking about this the other day with some friends actually. That’s what we do, okay. That’s just who we are essentially. He’s in Australia and they also have a similar plug design to us now, a bit more recently obviously, but it’s actually based on an early design of the US plug from 1972, I think. But all it is is exactly US plug, but the pins are twisted slight diagonal, right, so that it doesn’t fall out the wall as easily and it has an earth pin. I believe and I can’t verify this, because he wasn’t entirely sure, but I think it also has the gate system so that the earth pin opens the two other gates. But yeah, so the Aussies are up there with it, but come on, this is the best one. This is why it’s in Hong Kong as well, right?[inaudible 00:48:58] KA: I’d argue it’s the European one is better, but yeah, that’s just me. Anyway, my pick is almond butter. Have you guys had almond butter? It’s the best nut butter you can get. Love it. Recently, I’ve been like doing --[00:49:15] SW: How many nut butters are there?[00:49:16] KA: One for each nut. So peanut butter --[00:49:21] SW: That did not come where you intended it.[inaudible 00:49:22] KA: No, no, sorry. Peanut butter, almond butter, pistachio butter, peacan butter, macadamia butter.[inaudible 00:49:32] SW: Have you scientifically trialed all of this in a blind test?[inaudible 00:49:34] KA: I have not, not. But I love them, like I’ve recently been eating a lot of smoothies and nut butters go very well with smoothies.[inaudible 00:49:46] AJ: They are good in smoothies. That’s a good pick. So interesting, because my wife is now doing sort of dairy-free stuff and using these butters and these milks as alternatives. I would love to share in that with her and support her, but this — especially almond butter, I think it is and soy milk or soy yogurt, it has a very bad effect to my stomach. So I have to stick with dairy. It’s a good job I’m not intolerant, because a lot of those butters are not good with me at all. But yeah, they’re quite delicious actually, especially almond ones.[00:50:18] KA: Cashew butter is another nice one.[00:50:21] SW: I feel like I’ve been not adventurous enough with my butter. [00:50:24] KA: You haven’t tried these things. You should definitely —[00:50:27] SW: I’m still at the margarine, butter boundary. I’m not on the advanced stages of specialized butter.[00:50:33] AJ: Have you had peanut butter?[00:50:35] SW: Yeah, yeah, but I don’t like it. It’s too sweet, to sticky.[00:50:38] KA: Really?[00:50:39] SW: Yeah. You know there’s a special phobia for peanut butter, because it sticks into the back of your mouth.[00:50:44] AJ: It is cloggy. It is cloggy.[00:50:46] KA: It does get stuck in your mouth, right?[00:50:49] AJ: The whole earth one is great, because the whole earth was just — there is no like palm oil or anything in it. It’s just ground up peanuts. That one is not sweet, it’s not salty because they didn’t put any salt in there or anything.[00:50:59] KA: Yeah. If you do a get a nut butter, you should definitely get one that’s just 100% of the particular nut.[00:51:07] SW: Okay. This is the peanut butter podcast. Arachibutyrophobia, that’s the fear of peanut butter sticking to the roof of your mouth.[00:51:16] AF: Interesting name?[00:51:17] SW: It’s a common thing. It’s —[00:51:21] KA: I can see that.[00:51:22] SW: There’s two phobias that I’ve memorized. That one and the hippopotomonstrosesquippedaliophobia, which is the fear of long words.[00:51:30] AJ: Yeah,[00:51:30] KA: Ironic. So Shawn, what’s your pick?[00:51:36] SW: Okay. My pick is the opposite. So after you had your almond butter, then you should workout more. So my pick is working out. I did a poll on Twitter. How often are you working out right now? Forty-three percent out of 3,000 votes said they’re not working out at all. Obviously, there’s a lot of stress going on with life, with working at home, but at some point, it becomes an excuse, and we still have to care of ourselves no matter what the situation. And I definitely was not doing that, I’m not judging other people because I was also not working out, but I started working out again [inaudible 00:52:08]. I’m feeling better and I just want to encourage and remind people that they can do it. Go from zero to one time a week. About 27% of people work out three to five times a week, and that’s probably the right amount, so just keep doing that.[00:52:21] KA: Awesome.[00:52:22] AJ: Yeah, I think that’s a good one. Because I actually work out more during lockdown and it’s occurred to me how little I worked out before lockdown. So yeah, definitely worth getting into.[00:52:31] KA: Yeah, I think there are memes like circulating around where you’re like, it’s like the pre-COVID sort of picture of a cartoon man, and then there’s an after picture. It’s either like this huge fat person or it’s like the super muscular one. So you either go down the path of working out a lot more or you go down the path of eating a lot more. I think that that kind of hold true for a lot of people. For example, me, I have trouble doing things in moderation. I always do things 100%.[00:53:03] SW: So reminder to be healthy, and to eat well and to no electrocute yourself. That’s from us today.[00:53:10] KA: Definitely, and also eat almond butter. All right. And on that note —
loading
Comments 
Download from Google Play
Download from App Store