Every once in a while a new framework rises to popularity and gets the developer community buzzing. One of the frameworks with the most momentum right now is SolidJS. But what makes Solid so special?
Dan Jutan, Product Manager at Astro, Inc. and SolidJS core team member believes the frameworks that prioritize developer experience will always come out on top. Before he landed at Solid, Dan started his career using Vue 3. It didn’t take long before he was overwhelmed by the API surface and was searching for a framework that aligned with his values as a developer. Solid has a reputation as one of the fastest frameworks and also combines features from frameworks like React and Vue without any of the issues that bog them down.
In this episode, Dan talks to Chuck and Robbie about his journey exploring different frameworks early in his career, why the developer community loves SolidJS, and the connection between being a programmer and a musician.
[10:00] - “The special thing about Solid is that it combines something you might be used to from React, which is these functional JSX components, with something you might be used to in Vue 3 or even older frameworks.” ~ Dan Jutan
[14:00] - “With Solid I was just like, oh this simple thing from React without the annoying part of React. And with the simple thing from Vue, without the baggage from Vue.” ~ Dan Jutan
[24:28] - “If you're looking for a framework to run that interactive part of the page, Solid is a great choice because it’s super small and super fast.” ~ Dan Jutan
Connect with our hosts
Subscribe and stay in touch
Top-Tier, Full-Stack Software Consultants
This show is brought to you by Ship Shape. Ship Shape’s software consultants solve complex software and app development problems with top-tier coding expertise, superior service, and speed. In a sea of choices, our senior-level development crew rises above the rest by delivering the best solutions for fintech, cybersecurity, and other fast-growing industries. Check us out at shipshape.io.
Robbie Wagner: [00:09] What's going on, everybody? Welcome to another Whiskey Web and Whatnot with myself, Robert William Wagner, and my co-host, as always, Charles William Carpenter III, with our guest today, Dan Jutan. What's going on, Dan?
Dan Jutan: [00:24] Hey. Is that how you became podcast host? You realized you have the same middle name?
Robbie Wagner: [00:28] No, it's just a popular middle name, I think.
Dan Jutan: [00:34] Yeah. And we have generational divides, too, so there's not even that excuse.
Dan Jutan: [00:38] Whoever came later copied you.
Chuck Carpenter: [00:41] Well, then, there you go. I love that you can't tell. I appreciate that. Thank you. It could be blurry video. I'm not sure. But I think when Robbie was born, I just started high school, I think. Sounds about right.
Robbie Wagner: [00:54] Yeah, something like that. But yeah.
Chuck Carpenter: [00:57] Anyway.
Robbie Wagner: [00:57] Before we get into the Whiskey here, let's give Dan a chance to do you want to tell everyone a little bit, like, a couple of sentences about who you are and what you do?
Dan Jutan: [01:05] Yeah. Hi, I'm Dan. I do a bunch of stuff in open source. I work at the Astro Technology Company, which is the company behind the Astro project. I'm also a Solid core team member, where I think a lot about docs and content and dev rel and stuff. Yeah, that's the short intro.
Robbie Wagner: [01:24] Nice.
Chuck Carpenter: [01:25] Yeah, there you go. Dev rel being developer relations for those not familiar with the title or nomenclature.
Dan Jutan: [01:33] It's not even really a title for me. It's just like, oh, someone should think about this for Solid. So I sort of started to think about it.
Robbie Wagner: [01:40] Nice. And do you just collect buzzy frameworks, I guess, as things you work on? Since you're Astro and Solid.
Dan Jutan: [01:48] Yeah. It's just all buzzwords for me. My only motivation is to get involved in whatever the hottest thing is at the moment. I discovered Solid at the 1.0. It was not a buzzword yet. The fireship video wasn't the only thing that kicked it off this year. But around May this year, things really started picking up. It was like, okay, Solid is a thing now. People know what this is. Astro, I mean, it's super buzzwordy right now, I guess, because the 1.0 release. The Twitter verse has been loving it. But I discovered Astro because back towards the end of last year, Astro was making its first waves, and we realized that people wanted to use Solid on the server like they wanted some sort of NextJS, some sort of SSR solution for Solid. We could just recommend Astro because they decided to build in Solid support. So that's how I first heard of Astro. I don't know. I did get on the hype train, though.
Chuck Carpenter: [02:50] You just were trying to collect cool T-shirts. I get it. We'll put a pin in that for now, and we will circle back there because I've got more questions in this realm, and we can talk about our origin story of us three connecting. But first, let's talk about the phrase.
Dan Jutan: [03:06] Oh, my God.
Chuck Carpenter: [03:07] I was telling Robbie they didn't do so well in Game of Thrones. So here we have.
Robbie Wagner: [03:12] Game of Thrones or Grame of Thones.
Chuck Carpenter: [03:13] Grame of funds. What?
Robbie Wagner: [03:15] I don't know.
Chuck Carpenter: [03:16] Grammaphones. I haven't even been drinking yet. But as you can see here, full bottle, everyone.
Robbie Wagner: [03:22] Wow, that's a first.
Chuck Carpenter: [03:23] I know. Frey Ranch Bourbon. It is 66% corn, 10 or 11.4% winter rye, and 10% winter wheat. So lightly weeded. Sounds good. They harvest their own grains also. Also cool. 90 proof. Do we have any age statement here?
Robbie Wagner: [03:41] I think it just said, like, four years as required by law or something like that. So not that old, but old enough.
Chuck Carpenter: [03:49] We'll see it's matured and bottled.
Dan Jutan: [03:51] I'm so glad we're all drinking it. I was imagining it was just going to be me and the idea was to get me to drink as the interview guest.
Robbie Wagner: [04:01] Like Drunk history?
Chuck Carpenter: [04:02] Yes. Or we're doing kind of like a Hot One's thing. Except for, like, Drunk History could be another thing. Hot Ones is like the interview with the wings. No, we join you in that so that we can also mesh our words up. And also it sounds like you've just admitted to never having listened to this show before.
Dan Jutan: [04:21] Sorry.
Robbie Wagner: [04:22] No, it's fine.
Chuck Carpenter: [04:23] No worries. It's not a requirement.
Dan Jutan: [04:25] This is how you gain a regular listener. You send them whiskey and have them on the show.
Chuck Carpenter: [04:30] Right. We guilt you into it. I get it.
Robbie Wagner: [04:32] Yeah. I am surprised when people haven't listened just from the pure fact of, like, we could be total assholes who suck at podcasting. And I don't know, I would want to listen a little first, but no shame that you haven't.
Dan Jutan: [04:47] I went through and scrolled the episodes. I started listening to one on a Walk, and I can't remember. Oh, you know what it was? It was a solo one. You've done episodes without a guest.
Chuck Carpenter: [04:59] Right.
Robbie Wagner: [04:59] Yes.
Chuck Carpenter: [04:59] Correct. Yeah, that's true.
Dan Jutan: [05:01] So I was listening to that one. I was like, these guys are boring. And I just found a different podcast.
Chuck Carpenter: [05:07] Yes, zing. All right, we're going to taste this whiskey here first. I'm giving a little smell.
Robbie Wagner: [05:13] Yeah, let's do it.
Chuck Carpenter: [05:14] Smelling the corn there for sure. Corny. Maybe a little lemongrass, kind of I don't know.
Dan Jutan: [05:23] I'm like so not well versed in alcohol.
Chuck Carpenter: [05:29] We just pretend to be. It's okay. Yeah. Everybody makes it up.
Robbie Wagner: [05:32] We make it all up.
Chuck Carpenter: [05:34] Yeah. I'm going to go back to the whole slight lemongrass flavor. Initially, it's not much on the finish. I think that's the young age coming. I'm not getting much on the finish.
Robbie Wagner: [05:45] It reminds me of barbecue sauce. For some reason.
Dan Jutan: [05:48] The branding looks like barbecue sauce.
Robbie Wagner: [05:52] Kind of, yeah.
Dan Jutan: [05:52] On the bottle.
Chuck Carpenter: [05:53] Yeah. I might refill this bottle with barbecue sauce in the future. It's a good idea.
Dan Jutan: [05:59] I was going to say, this must have been expensive with all the gas prices going up.
Robbie Wagner: [06:04] I don't get it.
Dan Jutan: [06:07] It tastes like gasoline.
Robbie Wagner: [06:08] Oh, got you.
Chuck Carpenter: [06:10] Nice. Okay.
Dan Jutan: [06:11] To an uninformed, not well, cultured person like myself.
Chuck Carpenter: [06:17] Okay. Not had a lot of whiskeys, maybe not a big drinker or whatever else. But you have had whiskey in the past before?
Dan Jutan: [06:24] I've had whiskey in the past. My dad's a big whiskey drinker. I'm 23, so I haven't had a lot of time, I guess, to go out and have whiskey.
Chuck Carpenter: [06:34] But if you observe the law yes.
Dan Jutan: [06:39] On this podcast, we observe the law.
Chuck Carpenter: [06:43] Yes.
Robbie Wagner: [06:45] Yes.
Chuck Carpenter: [06:45] And that's fine. The context is everything, right? So it kind of doesn't matter what my rating is, what my experience is. For you, you would just say out of whiskey that you had. It's a tentacle scale, so we're so clever. One to eight. One is like, this is terrible. Never have it again. Eight. It's amazing. I want it all the time. And then anything in between, and you just compare it to what you have had, if you enjoy the flavor or not, and kind of to what degree.
Dan Jutan: [07:11] Yeah, I was joking. I actually really enjoy this.
Robbie Wagner: [07:13] Okay.
Dan Jutan: [07:15] I just wanted to make it funny, like a gasoline joke. But some whiskey I've had are, like, super smoky, or, like, this one is on that side, but not, like, all the way. It's not overwhelming me when I smell it. It's also much more of a high-end whiskey than the kind that people, I guess, with my age might normally be accustomed to, and so I can appreciate how easy it, like, goes down. And, yes, out of eight tentacles, I've got to give it maybe a six.
Chuck Carpenter: [07:54] So you would have it again, you'd come back. Not bad.
Dan Jutan: [07:56] I would say.
Chuck Carpenter: [07:58] Yeah, exactly. I like that tie-in. It does have some sweetness to it. It does taste a little young to me. I'm actually going, oh, no, I'm probably giving it a four. So I don't think it's, like, bad necessarily, but I also just think it needs probably a little more time in the barrel to age out a little and get some more diversity in the flavors. But it has a little sweet, still feeling like this lemongrass kind of thing. And then for whatever reason, maybe I like pain, but I like a little burn as it goes down and not really feeling that. So, yeah.
Robbie Wagner: [08:31] I think I'm going to split the difference and say five. I think it's pretty good. It's interesting. I would like to see more from this distiller. I think they have a lot of cool stuff. I don't even know what they said. It was like, what is the two-row barley and winter rye and specific grains? I think they could do some cool stuff, but they need some more diversity in terms of how long they age it and different things.
Chuck Carpenter: [08:55] And voila, everybody wins a prize. It's in your cup. All right, so let's circle back a little bit to this whole Solid thing. Yeah, I know. It's definitely not new. It's just more, I think, new in common vernacular, in circles, and people talking about frameworks coming up when it actually came to light for me, I believe, like, the Solid creator and then the Vue creator, something had some, like, Twitter war. I believe it was that like some discussion about Vue 3 and blah, blah, blah, and this other thing sucks, or something like that. Or, in the inverse, I remember that. Oh, I discovered it from that. And then, yeah, it's just been kind of top of mind and topical in general over this last year. So tell us what is Solid? Let's say that.
Dan Jutan: [09:43] Okay.
Robbie Wagner: [09:44] Let's start with what does it do?
Dan Jutan: [09:45] I was going to go right in on the Twitter war.
Chuck Carpenter: [09:48] Yeah, when we can circle back to that.
Dan Jutan: [09:50] Solid is a UI framework. So you mentioned Vue, React, Svelte. These are all front-end UI frameworks for the web, and Solid is one of them. But the special thing about Solid is that it combines something you might be used to from React, which is these functional JSX components, with something you might be used to in Vue 3, or even older frameworks like Knockout JS, which is this idea of reactive primitives. And that's kind of like a weird term, so I can go into what those are. But the idea is it's taking a lot of the old and bringing a new shell around it and giving you like a really nice DX. But the DX choices also come with insane performance and speed. So Solid first gained fraction by being, like, the fastest. Like, Ryan, the creator of Solid, would do these benchmarks to prove how Solid is much faster at rendering than the other frameworks.
Robbie Wagner: [10:51] You look like you want to say something, Chuck.
Chuck Carpenter: [10:54] Well, I was just going to tee you up on in terms of Reactivity. Obviously, that's something that you're very into, being the Ember guy here and the ideology around that kind of reactivity, like doing updates across entire applications, so on and so forth. So I'm wondering how it compares or like, more things about that. I guess I don't have a specific question. Reactivity is top of mind for us, and that's the thing coming out of, like, Solid and like you said Vue. Ember has that.
Robbie Wagner: [11:27] RxJS, I guess. I don't know anything about that, but I think it's about reactivity.
Dan Jutan: [11:32] I was going to say, if you're going to ask me to compare with Ember, unfortunately, I haven't used Ember, but.
Robbie Wagner: [11:37] Yeah who has?
Dan Jutan: [11:38] I was a big Vue guy.
Chuck Carpenter: [11:41] It's dead.
Dan Jutan: [11:42] And Solid and Vue.
Chuck Carpenter: [11:44] So that was like your stepping stone over into Solid.
Dan Jutan: [11:47] Yeah, I used Vue from the beginning of my web development journey, basically. And when Vue 3 came out, I started thinking a little bit harder about my framework choices and what the other options were. I was using Vue for contracting, but also for digital humanities projects that's like working with academics and undergrads people who might not normally have a lot of programming background, and Vue had a lot of really nice, simple things about the API. And when Vue 3 came out, I sort of felt overwhelmed with the API surface. It suddenly got a lot more bloated. There was a lot more choices. It wasn't out with the old, in with the new. It was like in with everything. Now it's a little bit more solidified. But for a while it was like, you can use script setup. I'm not going to get into the terms because not everyone has used Vue, but the idea is there were a lot of ways to do the same thing. And because of that, I was like, maybe the direction of the framework doesn't align with what I'm personally looking for. So I started shopping around. I tried React. I tried Preact. That was actually a big thing for me. When I moved from React to Preact. I really started thinking about why there were two frameworks with identical API Surfaces. And that started my journey a little bit deeper. I'm not some sort of like internal senior-level engineer or whatever. Like I am someone who wanted to deliver apps for clients and also build my own projects and stuff like that. And so getting into Solid was less of I want to find the fastest thing out there, but more now that I know that there's this world of framework engineering, I want to see what framework aligns most with what I'm looking for, especially in terms of DX. And when I got to Solid, I was like, oh, I get it. I got it mainly because the reactivity was so much like Vue. But I also got it because on my journey through React and Preact. I started to enjoy the idea of components just being functions. And with Solid, I was like, oh, this simple thing from React without the annoying part of React, and with the simple thing from Vue without the baggage of Vue. And it was just like all the simple things for me.
Robbie Wagner: [14:13] That's a good way to put it. I haven't used it a ton, so I don't know a lot about it. I've written one Solid component, basically just copying the form validation example from the website. So that's the extent of my knowledge. But yeah, tell us a little bit about you mentioned that it has the nice things without the baggage. What are some of those nice things and why would someone want to use it over, like Vue or React or something like that?
Dan Jutan: [14:41] Yeah, so some of the nice things is you can call it like stand-alone state. In other words, when you're using React and Svelte, your state is a product of the component. So the idea when you're working with React or Svelte is when state changes, rerender the component, and check stuff. So in React, you'll declare a function, you'll declare a piece of state using something like use state. And what that means is the React system will rerun that entire function when state changes. So you get this nice composability of components that are functions. In other words, like you can declare a bunch of functions in the same file. For example, you can have components that sort of like create components using fancy patterns. But there's a lot of baggage along with it. You can't really use these functions like normal functions. For example, if you put one component function inside another and React, it will recreate that function every single time. Any state changes all sorts of weird stuff. You can't put a used state inside an if statement or a loop. Because these use state things are not standalone pieces of state. They're hooked into React's components. They tell React something about the component hey, rerender this when this changes. So you can't even take a used date and pull it out of a component. If you brought up that idea to a React developer, they would be like why would I want to do that? That doesn't make any sense. The whole point of state is to tell a component to rerender. But in Vue 3 and in Solid that's not the case. Instead of use state, you'll use something like create signal. And the idea of a signal is not rerun a specific component. It's rerun any bit of code that uses this. So you have to designate that code by using something like in effect. But because of JSX and how JSX works, in Solid, if you declare a piece of state and then use it anywhere inside your component template, solid knows to just rerun that little piece of your view that used the signal whenever the signal updates. So hopefully that wasn't too long-winded. And it's really hard to show this without examples. It's like all verbal.
Robbie Wagner: [17:14] Right? Yeah.
Chuck Carpenter: [17:16] No, actually I think you put it in a way that I can picture that I know the spans of problems with rerendering performance and things like that, where it's like an all or nothing kind of situation and you're overusing use state and it's very localized, but it's also very specific to the whole thing where you drop that in. So I can see what you're saying is that you can have a granular piece like just say a counter. If you had like use state on a component that had a counter, every time you change that count, it rerenders the entire component versus rerendering just the part that uses the counter would be the difference there. Right. And obviously, there's probably some performance implications over a large app that could have this all over the place.
Robbie Wagner: [19:48] Yeah, that's how Ember does it these days. Just to tie that back in. For the people that have used Ember. It has like auto-tracking now. So you flag your thing that's going to change as tracked like your account, and then whenever you update the account, like your template, the account would update. So it's similar ideology. So I like that. I definitely like when things have that ability to basically track this thing, and then whenever it changes, change these other things. For me, I think that takes a couple of steps away from what you would have to do in other frameworks and just makes it simpler for your brain to figure out.
Dan Jutan: [20:24] Yeah, in other frameworks like React, I refer to it as opt-out rerendering, whereas Solid I referred to as opt-in rerendering. So in React, it'll render everything by default, and you use things like memos and use callback to stop something from updating, whereas Solid, it'll render nothing again. You have to opt in by using a thing.
Chuck Carpenter: [20:45] Yeah, that makes sense. So we were talking a little bit earlier about how Solid has had an explosive amount of growth and really kind of come to the forefront in discussion circles. I was like, okay, we're considering frameworks for creating applications and sites and all of that kind of stuff. Is there any particular use case? First of all, I would say that Solid is really well suited for and any that you think it might not be, that might be nothing.
Dan Jutan: [21:14] But yeah, usually I wouldn't recommend Solid for sort of like anytime you need a reliable ability to grab an existing thing off the shelf and plug it into your app, which happens a lot in enterprise situations. Like you might be developing some sort of dashboard where you're not creating everything from scratch. You need to grab your different table, libraries, and whatever off the shelf. The ecosystem is getting great for Solid, but it's not at the point of React where it's like anything you could ever imagine someone built-in and React. So that's a use case where you might not want to use it. So it's easy to do the not cases first.
Chuck Carpenter: [21:51] Sure.
Chuck Carpenter: [24:35] Yeah, it's a good segue to into the Astro part of the story.
Dan Jutan: [24:41] Yes.
Chuck Carpenter: [24:42] But it looks like Robbie was about to have a question first before I transition.
Robbie Wagner: [24:48] No, the only thing I was going to kind of circle back to was you said it doesn't have a I forget even the terminology. You said the Templating DSL or whatever. But it does have some things that I think React doesn't have. But full disclosure, I don't use React, so I could be wrong, but it has a for component to loop through stuff, before reaching in a template, whereas in React everything is like map everything all the time. And I thought that was much nicer. Personally.
Dan Jutan: [25:17] Yeah, it's one of those interesting opinion points where it's like some people hate that. They're like, give me my DOM map, and other people are like, oh my God, this is so much easier. Yeah, I don't know if this is more universal, but personally, when I'm evaluating the difference, there's a specific one that really shines, which is we have like a switch and a match. So if you want, if else is like choose between two options. A switch is like choose between a bunch doing that and React. You can see like nested turnaries. You can see like helper functions everywhere. It's like a little bit messy. So yeah, we have these helpers to use inside JSX. But an important thing about these helpers is they're not like a compile-time thing. Like they are installed in Vue. They're just components. So it's like they're built-in components to Solid that do these conditional rendering or looping all these control flow things. And so what that means is if you don't like them, you can build your own, and you can build on top of them. So for example, we have that for component. What if you wanted a paginated four component? So a for component like loops through the array and displays something. What if you want it to be like loop through the first ten elements of the array, display those things, but then display a button to get to the next page? You could build that on top of the for component and use it in exactly the same way, the exact same interface. And that's not really something you can do in Vue or Svelte where they have their own built-in, like V4. And you can't make your own V4 easily.
Robbie Wagner: [26:48] Right.
Chuck Carpenter: [26:49] Interesting. Yeah, I have mixed feelings about that. I think it's interesting, the thing in React where everything is a component, and sometimes that gets to be a little bit annoying. Like the router is a component. I like how Next had solved that with the whole using the file system as your router. Kind of. Yeah, which is kind of nice. But on the other hand, it is a lot more readable to have a for versus a map and say, why is this returning looping through and returning a component for each element? And it's just not like clear and readable. So the four seems like it's much more readable. Yeah.
Robbie Wagner: [27:25] And that makes sense as a component versus like, a router shouldn't be a component in my opinion. And.
Chuck Carpenter: [27:32] Everything's a component.
Robbie Wagner: [27:33] Yeah, I know.
Dan Jutan: [27:33] Yeah. I'm actually a big fan of the custom DSL. I actually specifically like the Svelte one. I think the Vue one got heavier with age. Kind of like more got added to it. But the Svelte one was still free, was designed from the ground up. And I love how simplistic that is. So there's definitely trade-offs and I think there's room to be a fan of both in different contexts.
Chuck Carpenter: [27:53] Yeah, I think so too. There's a lot of different ways to skin a cat, even though that's not politically correct. Shouldn't skin cats. Said that before.
Dan Jutan: [28:01] No cats were harmed.
Chuck Carpenter: [28:02] No cats were harmed in the recording of this episode. So let me tell you a story about how one day Robert William Wagner got on Twitter, and he sent a message to the Astro Twitter account hoping to talk to someone there and see if they're interested in getting free whiskey because that's really what it's all about. Then what happened?
Dan Jutan: [28:26] Yeah, I had recently started contracting with Astro. At the time, the idea of the contract was, oh, have Dan do content strategy, which my previous job was as a product manager. So this was definitely a little bit, but I've done a lot of docs and a lot of writing, a lot of content. So it sort of made sense and we were trying to figure out what was it was a good fit. So I was on the Astro Twitter account doing things like creating little videos and stuff, and I got this message thinking I was on my personal account and I was like, wow, someone realized I was contracting for Astro and wanted me to talk about Astro. Like, that's a little weird, but I'm like so down. And then I realized, oh shoot, I just responded to this on the Astro account. So I freaked out. I went to the team, and I was like, hey, do any of you want to talk to this whiskey podcast about Astro? And then I messaged you. I was like, I'm going to connect you with someone from the actual Astro team, and I'm going to DM you for my personal account in case you want to talk to me for some reason, not Solid.
Dan Jutan: [29:31] And actually you messaged me, like, what's Solid? So back then, Solid had not become a buzzword yet.
Robbie Wagner: [30:43] It's like all class-based. It's like ships web components. I don't know. It's just totally different. Like, Solid seems lighter weight in terms of the mental shift here. So that's why I kind of started using it.
Dan Jutan: [30:57] Yeah, I'm super happy. I love talking, and I love talking about Solid. And so I've been doing a lot of guest streams. Like, I went on the Supabase channel to talk about Solid. I've been doing all sorts of my own streams with guests. There was a really great stream with Eddie who has this great beginner-focused, open-source community. And I really love teaching Solid for beginners. I think that's something that Solid hasn't really gotten a lot of because it came out of the gates as this performance-focused, like bare metal. We're the fastest framework. That's not the kind of speak that attracts beginners. They want something easy to use. But I was attracted to Solid because it was easy to use, not because it was fast. So I love sort of, like, bringing that out of it.
Chuck Carpenter: [31:47] Yeah, it just happens to be a positive side effect, is that it's also fast. That's interesting. Plus, I think Remix is stealing all the fast hotness in the Thunder in the new framework community. Yeah, the Thunder. There you go. The Thunder on Twitter about Remix is so fast. Because Kent sends out 45 Tweets a day.
Dan Jutan: [32:09] Do you know about my conflict with Remix or just bringing that up as a happenstance?
Robbie Wagner: [32:14] I told Chuck about it.
Chuck Carpenter: [32:15] Yeah. I didn't remember.
Robbie Wagner: [32:16] The whole docs thing. Yeah, that's what you're talking about, right?
Dan Jutan: [32:20] It was kind of crazy.
Chuck Carpenter: [32:22] You want to talk about it?
Chuck Carpenter: [32:23] With Ryan Florence and the docs?
Dan Jutan: [32:25] Yeah, it was nuts. I mean, Solid has this meta-framework similar to Next.js called SolidStart, and I haven't been involved with Solid Start. It's still, like, really early on. Like, the API keeps changing, and so I was like, okay, when the API is Solidified, then we'll write the docs. It doesn't really make sense to do it early, but it was all in one. Like, the new Solid docs and the Solid Start docs were all in one repo, and that was my mistake. So basically what happened was I was doing this PR that made infrastructure changes, like moving the navigation around on the new doc site. And because of that, it ended up being a mega PR with lots of things in it. And one of the things was someone had for Solid Start Docs, some sort of, like, boilerplate or something. They grabbed a bunch of the Remix, like, I don't know, router docs, and stuck it in there. And this is, like, a new doc site. No one really supposed to see any of this anyway, but I wasn't reviewing any of the Solid Start docs because I don't really know Solid Start yet. So I merged this PR, like, a week later or something. Like, Brian Florence makes this crazy tweet. Like, I've never been copied like this before, and he screenshots this, like. And the thing about this was this wasn't in the NAV bar. Like, the only way to get to this site was, like, through other channels. I think one of the mistakes we made was the Solid Start repo actually linked to this. So that might have been how we found it. So that was definitely a mistake. We made a ton of mistakes along the way. I'm not saying we're blameless for this. I never should have merged that. We never should have publicized in any way this very unfinished doc site that's basically a placeholder. But it also didn't make sense for them to turn it into, like, a big thing. Like, they could have just DMed any of us, and we would have just removed it. We weren't going to stand by those docs. They're not finished docs. They're not anything. It completely blew up. And at first, I wasn't going to say anything because I'm officially, like, the docs lead of Solid, and I was just glad that they weren't targeting me specifically. But then Kent said at @jutanium, I am disappointed that you merged this. And I was like, oh, I guess I have to say something now. And it was like, this whole thing.
Chuck Carpenter: [34:48] Here it is. Yeah.
Dan Jutan: [34:49] But what ended up happening was I got a bunch of Twitter followers.
Robbie Wagner: [34:54] Nice.
Chuck Carpenter: [34:55] So, in the end, people chose a team. You have to pick your favorite sports team or your favorite framework team.
Robbie Wagner: [35:01] When Kent C. Dodds ats you for any reason, it's helpful to your brand.
Dan Jutan: [35:06] Seriously, I was really scared at the moment because it wasn't him saying like, you're great, it was saying, you're terrible. And I was really afraid that people were going to dogpile on me. But I mean, I immediately went and just deleted all the Remix docs because these docs were placeholders. I just deleted all of them. And that really helped people understand that we weren't trying to, like, plagiarize. And I think people sort of understood. It turns out that when people attack a lot of people, it's like a boy cry wolf situation, right?
Chuck Carpenter: [35:39] I was just saying, I'm willing to put a flag in the ground, stake in the ground, in my opinion, in this. And I think that as anyone who has been in the industry for some time and you're experienced, I think a public calling out is kind of poor form. Now, I'm not saying that, like, he was trying to be vindictive or hurtful to you necessarily, and this is kind of his forum. He's very public and talks about things in very public ways. And so it was probably just more of like, this is how I do it. But I do think that experienced people should show their colleagues out there working on open source things. Right. Like, this is open source is a lot of free work to a degree. And I know that you were contracted in and whatever else, but like, to a point, like, lots of people are part of that community. So to kind of shame another community to sort of take that outlet is in poor form, in my view. You're mature and experienced enough to be like. Even if you're disappointed and bothered by this, you can address that. And then you could also, with that person, say you can say, I feel like there needs to be some sort of public show here, but let's craft that message together responsibly and give you that opportunity. So that's just my feeling on it. I know that he's very much in the public, and so it could just be a reaction in a way that he's used to speaking. I can't speak for him, obviously.
Dan Jutan: [37:04] Yeah. And also that element, like the open source element. So, like, Solid, for example. I was never paid anything from Solid. Solid was just, hey, when I have time, like volunteer. Astro, I'm now a full-time employee of the company behind Astro. Astro is different, but this was Solid. Like, Solid's is just a hobby thing I do on the side. Oh, yeah. Awesome. It felt like picking on the small guys, but look, hey, this is a podcast. I think there's a future where I'm friends with Kent one day. People used to compare my ambitions with Kent. Like, I was like, hey, I'm really interested in education. And they're like, wow, you could do something like Kent and make a course. Right. It went from Kent being a role model in the industry to Kent being someone who dislikes me or who's sort of out to get me. And that's a bit of a shift that I hope we can recover from.
Chuck Carpenter: [37:54] Right.
Robbie Wagner: [37:55] Yeah, Kent's been on. He's a nice guy. I don't think he's going to hold any grudge. I think it was just like Chuck said. He's just like, everything he says is in a public tweet. So it's like, yeah, that was just his way of being like, I'm going to respond. I'm not going to bother to figure out a private message. So, yeah, I don't think he holds any ill will toward you. And I think Ryan, Florence, and whoever else had tweeted took their tweets down and stuff. Right. Everything is resolved. Everybody's happy at this point, I think.
Dan Jutan: [38:23] Yeah, everyone deleted their tweets. I recovered from my heart attack.
Chuck Carpenter: [38:31] And I would advocate for you to take Kent's path of learning because obviously you're involved in a different community. You can have your own spin on these things, and why wouldn't you take a successful road map there and say, yeah, I can kind of do that to a degree myself as well? I wouldn't think there would be if anything, it should be flattering to say, like, oh, wow, love what you're doing, love what you're putting out there. I'm going to try to do that and help my people in the same way.
Dan Jutan: [38:58] Yeah. I think there's so many things Kent did really well with making React accessible. There is, like, a philosophy difference that I've noticed between me and some other educators. Like, that is for me, even though I'm part of Solid and Astro, it's not really about Solid and Astro. Like, I'll teach anything. I have a lot of love for, like Svelte and Vue and Nuxt and even Remix. Remix as a tool is awesome. It's a great way to build React apps. But Remix has a marketing philosophy of, like, everyone has to use this. It's like the best for everything does sort of conflict with me. And so I want to bring, like, that model of making things accessible. I want to bring that out there, but also bring in this mindset of there's the right tool for the right job. And Solid is not going to be the right tool for a lot of jobs, and Astro is also not going to be the right tool for a lot of jobs. And it's like, if I can work on those frameworks and make them better while also helping anyone learn web development in general, that's like a mission that really gets me going.
Robbie Wagner: [40:01] Yeah, we want to disagree with you because Astro is the right tool for all jobs because we want to do more Astro work.
Chuck Carpenter: [40:07] Yeah, I mean, we're. Definitely starting to field down that path of, well, it's so funny because 20 years later, this is all circling back around and it's, you know, PHP serving every site from the server.
Robbie Wagner: [40:21] And that's what we built again.
Chuck Carpenter: [40:23] Yeah. And that's what we've kind of come back to, is like we build these tools to work around it, and now we're regressing back to that because computers are really fast now. The Internet is way faster now. That thing that we were doing, dumping all this into the browser, I'm really an advocate of, like, dumb client application, so simplified applications, they're very dumb. They don't understand logic and authentication and all these like, crazy things. They just understand what they're showing and being provided the data for what they're showing. I like that. And I think that things like Astro are being you know. HTML, remember how that was great for the Internet?
Robbie Wagner: [41:03] What's, HTML?
Chuck Carpenter: [41:04] That's what I'd I like to see again. Hypertext markup language. That's what I'm told.
Robbie Wagner: [42:06] Yeah. It's funny how browsers actually know how to route to different pages if you just split it into different pages.
Chuck Carpenter: [42:15] It is crazy how that all works. It's like the basis of the Internet or something, right?
Robbie Wagner: [42:19] Yeah, it's weird.
Dan Jutan: [42:20] Yeah. I love how you all are coming on it from that perspective.
Chuck Carpenter: [42:24] Yeah, well, first of all, I'm always willing to be wrong unless it comes to whiskey. And I do believe in keep it simple. I also spent a lot of time working on semantic HTML, like back in the day when everything was meshed together, and it was like, no, you need for accessibility purposes, you say, like, from a DX purpose, like our approachability. But there's also an accessibility side of things too. And so HTML has attributes and patterns built in to make things more accessible. But when we take HTML away, then we create a greater challenge and barrier to that too.
Dan Jutan: [43:04] Yeah, frameworks like React and Solid, they generate HTML at the end of the day. But there are tricky things along the way that makes things a little bit harder for accessibility. I mean, one example is that not every screen reader is trained to understand client-side routing. Because the idea of client-side routing is the page doesn't change, just the things inside the page get swapped in and out. And screen readers often don't understand that as, oh, we went from home to about.
Robbie Wagner: [43:31] Yeah, I mean, there's ways around that with forcing announcing what you've gone through and stuff. But I think this whole thing of having multiple page apps is just kind of the same as, like, if you have a button, use a button tag versus a div. The more browser native things you're using, the more accessible it will be out of the box because that's what the browser expects. So that's what the screen reader is going to expect. And if you do deviate from that, it's not going to work as well.
Robbie Wagner: [45:04] Yeah, for sure. And I think that is the perfect point to end our web point on. And move to some whatnot.
Chuck Carpenter: [45:11] What a natural transition. Robbie.
Robbie Wagner: [45:14] Well, I was just wrapping us up here. I didn't have any like I could keep going forever on all this stuff, but.
Dan Jutan: [45:21] I'm going to pour more whiskey then.
Robbie Wagner: [45:22] Sure.
Chuck Carpenter: [45:23] Perfect.
Robbie Wagner: [45:24] So as you do that, can you sing us a song?
Dan Jutan: [45:26] I could. I have my guitar. I don't think I should.
Robbie Wagner: [45:29] No, that's fine.
Chuck Carpenter: [45:31] That's fair. This was your audition.
Robbie Wagner: [45:33] No. Tell us about what kind of music you make or what you're into from that side of things.
Dan Jutan: [45:39] Yes. The songs I write are a little bit like pop punk-inspired, but also more like indie rock. Like sort of like mellow, but also angsty at times. The bands I really liked are like Paramore and Panic at the Disco and Fall Out Boy and these sort of like classic pop punk bands. And I don't know, it's kind of stupid to do a through line, but you could draw a through line between my desire for accessibility on the web. It's my desire for accessibility in songs. Like, if my mom can't enjoy the song because it has too much thrashy guitar or too much, like, crazy progressive composition, that doesn't mean the song is bad. It just means less people can enjoy it. And I don't know, it's looked down upon to like pop, but I've always liked pop. And in my vocals, I can't really sing metal, but I can sing pop, and I can do runs, and I can do this sort of fancy stuff. I can sing really high. So, yeah, that's a really long winded, intellectual way to describe me just enjoying singing.
Chuck Carpenter: [46:47] Yeah, I think it's coming into your own where you're not worried about being jeered on your musical tastes. Right. That's fine. I like Justin Timberlake. It's okay. I'm not above that. Right. So, like, a lot of other genres of things, whatever else. So, as a Panic at the Disco fan, does that mean you like Taylor Swift?
Dan Jutan: [47:08] Actually. Taylor Swift?
Robbie Wagner: [47:09] Why are these related?
Dan Jutan: [47:10] So, Panic at the Disco did one song with Taylor Swift, and it was actually at a really important time in her career. Basically, she moved from being I forget, what she was signed to, but it was like a record deal that did not. She started that deal early on in her career, and it ended up backfiring. She didn't own the masters or whatever, and so she didn't own her stuff. She decides to do her own thing, sign a different deal. And her first single was the song with Brendan Urie, Panic at the Disco. Very pop song. Like, as pop as you can go, but very fun. Songwriting wasn't particularly smart or anything. It was just good pop. So am I a fan of Taylor Swift? I am a fan of Taylor Swift. I think she had her pop period of pure pop and then she went into pop-folk, which is really cool. So these last two Taylor Swift albums were a lot different. They were more sort of quieter, in a way, more thoughtful, very sort of abstract. Like, she used to write a lot about her own relationships, and these albums, she writes about stories that aren't her own, and I absolutely love that. I think even the most, like, angsty music fans cannot deny that Taylor Swift is a good songwriter.
Robbie Wagner: [48:26] Yeah, Taylor Swift is pretty angsty, to be honest.
Chuck Carpenter: [48:29] She's definitely had her moments in her own poppy way, though. That's how she enjoys. I have a lot of respect for her as a musician and a songwriter. I watched the documentary with my wife, of course, so there was impetus for it and I was like, oh, I respect her process. I respect all of her craft and what she's doing for herself as coming up with all that kind of on her own. I respect that.
Dan Jutan: [48:56] There's, like, one scene from that documentary that I remember stood out for me. It's like the scene where she put out this electro-pop record, and it didn't win a Grammy, and she responds to the news, and she's like, I need to write a better record. And that ambition.
Robbie Wagner: [49:15] Because everything she writes gets a Grammy.
Dan Jutan: [49:18] Yeah.
Chuck Carpenter: [49:19] Hey, it's a hard life. It's a hard-knock life.
Dan Jutan: [49:23] Not every artist or creative person needs to be that ambitious. Sometimes that ambition can be unhealthy. Like if you're just producing art to win a contest or to satisfy people, that might not mean you're creating the art that means the most to you. But there is also something about that ambition of like, no, I need to do better that I think I also take after. I could always do better. I can always think outside the box or strive to be better. And yeah, I guess this podcast turned into gushing about Taylor Swift of all people. I love it.
Chuck Carpenter: [49:56] We never know where it's going to go. There's so many different pathways here.
Robbie Wagner: [50:01] Yeah. I mean, I'm a Taylor fan. I'm excited for the new album. I watched the VMAs with my wife, and she watches them every year, and so we watched that and then she announced at the end that a new album was coming. But I haven't heard anything since then about what it's like.
Dan Jutan: [50:16] Is it coming out this year?
Robbie Wagner: [50:18] I think it's this year. I'm not sure.
Chuck Carpenter: [50:20] I experienced everything second-hand from a pop perspective. And so my wife will always be like, oh, it's the new Lizzo, it's the new whatever, it's the new Taylor Swift. Okay, cool.
Robbie Wagner: [50:29] That's how I get too. Because I listen to the same things I've listened to since like 2006, and I'm not changing. So I hear all the new stuff from my wife.
Chuck Carpenter: [50:41] Yeah, I listen to that group of things. Or sometimes there'll be like recommendations on Apple Music or something. Like I'll try that thing. But yeah, I don't know what's coming out in regular new music. Pop music. I don't like new rap. I think they're not good.
Robbie Wagner: [50:57] You don't like 2 Chains, Migos.
Chuck Carpenter: [51:00] No, I don't like it. I've tried to listen to a lot of new hip hop, and I'm like, this is why JayZ still has to make records as a billionaire. It's dumb. What?
Dan Jutan: [51:10] Like, despite being from Atlanta, I never got into rap, which is like a kind of a sin that I don't really know a lot about hip hop and stuff.
Chuck Carpenter: [51:17] Outcast.
Dan Jutan: [51:18] Well, I'll get into it eventually.
Chuck Carpenter: [51:22] In your retirement years, you'll delve into this street music. Possibly. I don't know.
Dan Jutan: [51:28] Yeah.
Chuck Carpenter: [51:28] I'm going to doubt that. That's fair.
Dan Jutan: [51:30] As a skill, it's distinct to singing. Like if I wanted to learn how to rap like I learned how to sing, it would take an entirely different approach, and it's not easy. Yes, there's aspects of rhythm in both, but everything else is its own skill.
Chuck Carpenter: [51:49] Yeah, because it's almost like one of the biggest things I remember hearing is it's not just about straight rhyming words. It's about making words for the story rhyme. Sometimes when they don't, like, rhyme with orange. And I posted that challenge, Eminem. And then he was like, oh, yeah, I can do it, like, 40 ways. So that's the skill.
Dan Jutan: [52:12] There's a little bit of like, 1960s media theorist in me where I'm like, okay, for every medium, figure out the constraints of the medium and the affordances and build something that fits that. And that's how I think of things. So, like, with poetry, for example, you have this idea of a line break that you don't have in rap, but in rap, you have this idea of built-in rhythm from the music that informs your writing. And yeah, I don't know, maybe one day I'll figure out how to rap.
Chuck Carpenter: [52:40] I look forward to it.
Robbie Wagner: [52:41] Yeah. So just to regress a little bit there, do you have a SoundCloud or somewhere people can check your stuff out?
Dan Jutan: [52:49] So I've been very shy about my singing and my songwriting. I have sung on Twitter Spaces, but I've never actually, and that's not shy, but I've never actually put out a song on SoundCloud. I started learning music, like, both guitar and vocals, during COVID, so I'm still sort of new to it, but I went really deep into it. I got, like, a voice teacher and everything. So I don't know, expect a tweet where I'm like, all right, I finally decided to produce a song.
Chuck Carpenter: [53:18] Nice. I'm going to go follow you right after this.
Robbie Wagner: [53:21] I would say that it's iterative just like coding is like, just get stuff out there and just keep building on that because it's hard to get something perfect unless you're Taylor Swift. But you'd be surprised some things you think aren't great or like. People might love it. Everyone has different tastes. So I haven't done music in a long time because I do way too much coding. But I would love to get back into it sometime soon.
Dan Jutan: [53:46] Since we first got connected, I started a full-time job again after a period of a little bit of contracting and being all over the place. And something I realized is holy shit. Like, after a day of working, I'm kind of exhausted.
Robbie Wagner: [53:58] Yeah, I just want to turn that Netflix on.
Dan Jutan: [54:01] Yeah. And, like, I have all this other stuff.
Chuck Carpenter: [54:03] Pour yourself a whiskey.
Dan Jutan: [54:05] Yeah, exactly. Because of Solid and stuff, like, I'm doing these conferences and like, oh, after work I need to prep for the conferences. And then it's like, well, when am I going to have this just quiet time to write or to practice? And I'm really looking to get back into that. I do not want to continue the way I've been doing the past few months, where I've just been all in on my career. Music is important to me for a lot of reasons. I don't think I'll ever make money from it, and I don't really want to, but the thrill of writing a song and then performing it at an open mic just feels amazing. And it's not something I want to give up just because I'm being ambitious about my career.
Chuck Carpenter: [54:43] Well, yeah, and I think that there's a lot of value and a mental disconnect that benefits your career. Right, because you can just keep going down that path and you run yourself into a little bit of burnout and whatnot, and giving yourself that mental break to put into something else refreshes you for coming back to the main thing. So there's a lot of quality in that.
Robbie Wagner: [55:06] It's good for your brain. Like, you stop for an hour to write a song, and then an hour into it, you go, oh, yeah, that's what that bug was like. Let me go fix that thing. You have to disconnect because if you just keep staring at a problem, it's like, I can't get it, I can't get it. And then you go to something else like, oh, yeah, that was easy. I know what that was.
Dan Jutan: [55:25] Yeah. And for me, because I'm not like an engineer for Astro, I'm a combination of product stuff where I'm trying to get user feedback and make sense of it and a combination of being on the docs team, like, okay, trying to connect the dots between the docs and the development team, make sure we're really documenting everything. And so there's this through line between everything that's just like writing. Whether you're writing music or you're writing docs, or you're writing plans, processes, and analysis, it's almost like my brain just wants to create new stuff. And maybe I'm being overly conceptual by connecting all the dots, but I'd like to think that getting better at technical writing somehow improves your ability to write songs.
Robbie Wagner: [56:11] Yeah, no, I think you're totally right that all creative things are kind of related. A lot of people that I knew in college and stuff did a lot of super heavy weight lifting, and that was like, they could focus on that, and they could also focus and crush code. And then I knew a lot of people that were singer-songwriters that could be creative there and be creative in code. And it's all connected. And flexing skills in another direction I think is super helpful because if you just stay heads down on the exact same thing all the time, you can't grow and look at different perspectives and change all of that stuff.
Dan Jutan: [56:47] I love that. And yeah, I know we're starting to run out of time, but before we end, I need to throw out there that I recently did a bit of a poll. I asked everyone in the Astro core team if I didn't already know, what instruments do they play. Almost everyone plays an instrument. So there's this huge parallel between musicians and engineers and people in this space. So we have two drummers. Nate, he might have told you on the podcast he plays the sax. Chris plays every possible instrument, and he also makes electromagnets sing. Sarah, the docs lead, is also a singer. Ben plays piano. So we really have this confluence of engineers who happen to play instruments.
Chuck Carpenter: [57:34] I think that's very common, actually. I've read that, like, The Pragmatic Programmer back in the day talks about coming from music into programming, and that the practice being similar in terms of practicing your craft and execution and that kind of thing. Yeah.
Robbie Wagner: [57:50] So we are at time here. Is there anything we missed? Anything you would like to plug before we end?
Dan Jutan: [57:56] One thing I'd like to plug, I haven't streamed for the past few weeks, but I usually do regular streams on Twitch. I like to have guests on and ask them to explain their craft, explain what they've been working on. So that's my name, Jutanium. It's my last name. J-U-T-A-N-I-U-M. Like titanium. If you put jutanium Twitch.tv/jutanium YouTube.com/jutanium, Twitter.com/jutanium, you can find my stuff. And if you're listening to this and you're like, oh, this guy seems like fun to talk to. I want to be on his stream. Send me a DM, because I love people, I love talking to people, and I love making things accessible and putting it out there.
Robbie Wagner: [58:37] Cool. All right, well, thanks, everyone, for listening. If you liked it, please subscribe, and we'll catch you next time.
Chuck Carpenter: [58:46] Thanks for listening to Whiskey Web and whatnot this podcast is brought to you Ship Shape, and produced by Podcast Royale. If you like this episode, consider sharing it with a friend or two and leave us a rating, maybe a review, as long as it's good.
Robbie Wagner: [59:02] You can subscribe to future episodes on Apple, Spotify, or wherever you get your podcasts. For more info about Ship Shape and this show, check out our website at shipshape.io.