604: VS Code Plugins, Git as a Radical Statement, Tailwind & Arc Drama
A follow up on jQuery conversation, Microsoft owning all the things, what VS Code plugins are your ride or die, the ability to Git from wherever you want, Tailwind drama, global design system follow up, Arc Search gets roasted, and Frontend Design Conference is back!
Guests
Chris Coyier and Dave Rupert
Time Jump Links
- 00:18 This episode is sick
- 04:06 jQuery follow up from ep602
- 10:56 Microsoft owning all the things
- 14:04 It's all about the plugins, baby
- 16:29 Wherever you Git your code is a radical statement
- 20:56 Sponsor: Wix Studio
- 22:57 Tailwind hot drama
- 33:19 Global design system feedback
- 37:41 Arc Search spicy thoughts
- 49:21 Frontend Design Conference
Links
- GitHub - tc39/proposal-type-annotations: ECMAScript proposal for type syntax that is erased - Stage 1
- Chris Coyier on Embracing Technology and the Future of Web Development - Whiskey Web and Whatnot - Episode 131
- Zed
- Dracula Official
- GitLens
- Tower Git Client
- GitHub Desktop
- “Wherever you get your podcasts” is a radical statement - Anil Dash
- Sourcetree
- Tailwind marketing and misinformation engine
- What is Utility-First CSS?: HeydonWorks
- A Global Design System | Brad Frost
- Thoughts on a Global Design System – Chris Coyier
- Arc Search
- Can Apple Win Back Music - Brad Frost
- Carolina Chocolate Drops
- TPAIN - Twitch
- Front-end Design Conference - April 25-26, 2024
Episode Sponsors 🧡
Transcript
[Banjo music]
MANTRA: Just Build Websites!
Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another sick kid edition of the ShopTalk Show. I'm Dave--in the shed--Rupert. With me is Chris--in the office--Coyier. Hey, Chris. How are you doing?
Chris Coyier: Heck yeah. Just a stone's throw away from my sick kid. But it's the day of the thing where it was kind of a coin toss whether you go back to school or not. You know?
Dave: Right. Right, right.
Chris: It was like, "Nah, I can't be the..." I don't want to be the dad that is pushing it. You know?
Dave: Right. Right. You're like, "Okay. You were feeling awful at bedtime. But now, you're doing great."
Chris: Yeah.
Dave: And, um....
Chris: Yeah.
Dave: Yeah.
Chris: She hasn't been eating because it was a stomach thing, too. I haven't seen her just blast a meal yet in, like, five days.
[Laughter]
Dave: Yeah.
Chris: I'm like, "That's... I can't send you like that. Your brain... There's no way it's firing on all cylinders." You know?
Dave: Sure. Yeah.
Chris: One more day. One more day. But I had to come to the office today.
Dave: Yeah.
Chris: Not just for this show. Although, I would. I'd do anything for you, Dave.
Dave: Aw, thanks, Chris.
Chris: But we had to get out of the house, too, because -- not to sound too bougie, but we do have cleaners that happened to be scheduled today.
Dave: Oh, yeah? Yeah.
Chris: Miranda has been out of town, and I'm like, "We're going to need those cleaners."
[Laughter]
Dave: Yeah. Solo dad'ing with a sick kid has not been the cleanest experience. I get it. Yeah.
When you told me you had a sick kid, I was like, "I get it." My daughter has been sick. I think she was in the office for the show last week.
Chris: She was. Yeah.
Dave: It is such a sidewinder for me, man. It's just like, "Surprise! You're a butler now. That's your job. And you're entertainment, and you're kind of food getter."
It is such a sidewinder to my productivity and my plans for the day or the week. It's just a major shift. It makes me think about what about people who have sick kids at home or kids with disabilities or parents or whatever. You know?
Chris: Yeah, and you're a FedEx driver or something.
Dave: Yeah! Yeah.
Chris: Yeah. I do think about that all the time.
Dave: Yeah. Anyway, it makes me feel empathy for people who have it harder, definitely. But it is such a... just a waste... I don't know. Just a weedwhacker to my day.
Chris: Day one, dude, I was like, "I got this." You know? I was a little tired because we were up cleaning stuff. But I was like, "Look at me. I'm all over this."
Then day one, I'm like, "Well, she's just laying around sick." I feel terrible for her. There's some work to make sure she's comfortable and is taken care of. But then the rest of the time, I'm just on my laptop, baby. I'm like, "This is fine."
Dave: Mm-hmm.
Chris: In a way, it's almost easier than a day where the kids are full energy and you're like, "Okay, well, I guess we're doing trampoline park, then park, then--"
Dave: Yeah, school out day. Yeah.
Chris: We'll go get lunch together. Yeah.
Dave: Yeah.
Chris: Those are a little more high action. This is just like she's just lying around. But then there's enough going on where I'm taking care of the house and all this that by day three, day four, I'm like, "I haven't sweated. I haven't watched an hour of TV that I want to watch."
That's how you start to feel ragged is that the self-care stuff goes away. I haven't crushed it at work, certainly. I'm like, "Man, it's starting to--" If this went on for two weeks, I'd be coming apart at the seams.
Dave: Yeah. Chips away at what you know about yourself, sort of, or what you--
[Laughter]
Chris: Yeah.
Dave: I don't know. What your self-goals are. You're just like, "Ooh, I have to do a major adjustment."
Chris: Well, we're here now at the office doing the show. There's some stuff. It looks like we have a couple of corrections to issue. Is that--?
Dave: Yeah. We should start off with some corrections. I biffed it again. No... [Laughter]
It has been very helpful, but let me get... I'm moving my windows around. I'm going to actually disable stage manager because that's a little too much for me right now.
A couple of episodes ago, episode 602, we were talking about jQuery and how cool it is because you could just do dollar whatever my thing add class foo, and it would add class everything. But now in JavaScript, you do query selector all my thing for each L and loop through those.
I was saying you have to do L has attribute foo. You have to test for the attribute before you do something, like set or remove it. You'd have to say L element dot has attribute foo. If element has attribute foo, L remove attribute.
Chris: Because remove attribute would throw.
Dave: It would throw, and somebody -- I think it was Eric Merchant in the D-d-d-d-discord -- pointed out that that's not true. And I was like, "No, it's true."
But I made a reduce test case on CodePen and it was true. It's not true anymore, I should say. I have vivid memories of this being an issue, and I did some digging. It's because it was an IE, Edge implementation of those attribute functions. They threw if you didn't have it correct.
Chris: Oh...
Dave: Old edge, Old IE. Now, since Edge is on Chromium and IE is dead, it's not an issue anymore. So, I have to update my thinking and so I apologize that I said it wrong.
Chris: Yeah. Remove attribute doesn't throw anymore. Why would it have--? Why? Why would it have ever thrown? What a dumb thing to throw on.
Dave: Hmm... Yeah.
Chris: Dumb.
Dave: I mean, I don't know. Ask the people.
Chris: Throwing is rough. It stops all the execution in your JavaScript. For that?! Ack.
Dave: Yeah. I mean you know. People like types, so. [Laughter]
Chris: Well, that's true. That's a good point.
Dave: Yeah. Yeah, they want them to be there. That's for sure.
Chris: Oh, my God. Yeah. I won't get into it, but I was battling with TypeScript the other day. It was one of those. I had this 12 lines of code, and there was a TS ignore over each line of it. [Laughter]
Dave: Oh, good. Yeah.
Chris: It was just sprinkled with it all the way down. I'm sure somebody smarter than me could have sussed it out, but it came in as an any, and necessarily so because some processor would spit out who knows what. I didn't have any control over necessarily what was coming back. But then I needed to de-structure parts of it and such. I was just like, "Oh... I don't care, TypeScript. I don't care. Just deal with it."
Dave: Yeah. Somebody asked me the other day. They were like, "Why didn't you write this in TypeScript?" I just was like, "I don't like it." I want to grow into that complexity. This didn't seem like it needed it. I used JS Doc, and that got me the squiggles and everything. I don't know.
I will probably use TypeScript in the future. But I'm also curious. Where is ECMAScript at it on the proposal for type as comments?
Chris: That seems pretty dead. It was Microsoft that was really pushing it, and we haven't heard a word from them. Although, it doesn't mean that it's not being worked on. It could be. I just don't know.
Dave: Yeah. I looked. There's a website. Let me pull it up. It's types... TC39.ES proposal-type.annotations. It really hasn't updated, but there's a link to stuff on GitHub. But it hasn't really changed.
There are some notes from 2023, but I guess maybe the ACMAScript will meet in March this year. Maybe it will be closer. I don't know.
Chris: Maybe. I could see why that's hot on your mind. It is mine, too. I just mean it seems to stick with a Dave kind of zeitgeist or something that, like, "Why would I go all on this tool when it feels like it's coming down the native Web tech pipeline? And I'd rather do that."
Dave: Yeah. I feel like we're a year out, so I'm going to spend a year converting everything to TypeScript and then, whoop. Guess what. [Laughter] Native types drops, and now I need to spend a year undoing TypeScript. That seems stupid. But I don't know the timeline. I'd love to know the timeline on it.
Chris: Yeah. I think some people would say that you're never going to get quite the same experience. For example, I think there are plenty of people that really like that your TypeScript won't even compile.
Dave: If it doesn't do right. Yeah.
Chris: If there's a little error. The native platform is not going to do that. The way that it's being talked about is that it's meaningless once it actually hits the platform. If anything, you strip it out before it gets there to save bytes. But it will never throw or anything.
Dave: Right. Right.
Chris: It's just about getting good squiggles.
Dave: It's about getting squiggles. We need a proposal for squiggles. Yeah, I don't know what the future there is. I think it's kind of... I need to dig into it.
I saw Tab Atkins name floating around there, so maybe I'll reach out to Tab directly or just ask.
Chris: Yeah, that's cool.
Dave: Say, "What do you know about this?" But it might be March before people even do something. It's currently at stage zero, and I'd love it to be stage one, two, or three before I even--
Chris: Yeah, feel like it has any momentum.
Dave: Yeah.
Chris: Yeah, stage zero. You could make a stage zero.
Dave: I could.
Chris: A blog post is practically a stage zero, isn't it? Maybe it has to be a GitHub issue or something.
Dave: A blog post on GitHub is a stage zero. [Laughter]
Chris: [Laughter] Yeah.
Dave: That's how you make it. Yeah, I don't know. It's interesting. People are using classes, like really dummy classes - I don't know - with the attribute. Anyway.
Chris: Also, it feels like a thing that happens at the editor level.
Dave: Mm-hmm.
Chris: If VS Code has so much power. Now, this is behind Microsoft, so chances are it's going to work great in VS Code. But if for some reason the VS Code team was like, "We don't like this," they could just be like, "Well, it doesn't matter. It doesn't have to stop. It could still go all the way through to stage five - or whatever it is - and just become part of the thing.
But they could just say, "Well, we're not going to put squiggles." They don't have to. They're just some piece of software. They don't have to do anything.
Dave: Yeah. I saw Fireship, and he was kind of talking about the new Zed, the new editor we've kind of talked about a long time ago.
Chris: Yeah.
Dave: He was saying... He just was joking, like, "You're using the Microsoft code editor to use the Microsoft version of JavaScript to push it to the Microsoft code repository in the cloud to your Microsoft hosting platform."
Chris: Mm-hmm.
Dave: It was like, "Ooh... that's a lot of one brand, single brand."
Chris: Yeah! It was funny. A tweet was going. I was on the Whiskey Web and Whatnot the other day.
Dave: Yeah.
Chris: That's the clip that they chose to share on social media the other day. We were talking about Microsoft and how funny it is that they touch so many things we touch as developers these days. You almost kind of don't even think about it. How it came up in conversation was that I forget about NPM.
Dave: Yeah!
Chris: They have that too.
Dave: Yeah.
Chris: What?!
Dave: Every time you download something, even if you're using Yarn or anything else, it's coming from the NPM repository.
Chris: Yeah, it sure is. Even these new... Wasn't it... Did Deno say they were--? We just had Josh on the show, and somehow it didn't come up. They have a JSR or something? Yeah, they're going to do their own package manager kind of a package manager to rule them all kind of thing.
Dave: Ooh...
Chris: But still, I believe I read in there it still ultimately falls back to NPM. You know?
Dave: Yeah. That's the database, right? That's where things are pointed. Yeah, I don't know. I think, to be fair, Microsoft was not in the lead [laughter] and they made a very good code editor and convinced enough people to use it. They kind of rode this whole types thing, getting squiggles, and they have great IntelliSense in their product and stuff like that.
Microsoft bought GitHub. That was a pretty aggressive move. Billions of dollars were shifted around.
Chris: Yeah.
Dave: I think they salvaged NPM. I think NPM was about to implode, so I think they basically saved it from itself. Yeah, as much as I can say Microsoft is amassing this major market share (and they are), I think it's a very... Because they were doing good for developers over time. That's maybe what I would say. They were doing a good job for developers over time.
Chris: Yeah. Still true. Yeah, certainly they have this control and it doesn't bother me somehow.
Dave: Well and, hey, you get into the old EU Digital Markets Act, and it's changing my perspective on what kind of devices I want to buy; I will be honest.
Chris: Hmm...
Dave: Just who is investing in the Web is very clear right now.
Chris: Indeed.
Dave: Without going too much into that.
Chris: Yeah. My local Bend JavaScript group was all chatting it up about Zed the other day. And it came to the same conclusion that we did on this show not long ago that it's kind of about the plugins at this point. You're doing a lot of stuff right, looking great, but that fact.
This anecdotal. It would be interesting to have people write in. If you feel like it, please hit us up: email or pick a social media.
Just the raw number, how many plugins do you run in VS Code? Just look. Don't scrutinize it. Just count them and send it in.
Dave, you were at, like, 40 or something. I can't remember, but it was a frickin'--
Dave: Yeah, 50, I think, dude.
Chris: Fifty? Yeah.
Dave: It's so many, man.
Chris: [Laughter]
Dave: A lot of it is themes and language servers and stuff. Whatever, right?
Chris: It's not whatever, though. You install them for a reason.
Dave: It adds up. It adds so much to the weight and the speed and performance.
Chris: Yeah. But then, I suppose. Send us the number, but then if you're going to apply any scrutiny to it, send also the number of "Can't live without" ones.
Dave: Yeah.
Chris: Be like, "Okay." If you absolutely love your theme and couldn't live without it, fine. Put it in that bucket. Probably for most people, they could live without their theme, especially knowing that the themes on Zed are pretty decent.
Dave: I hate to admit this, Chris. I don't know what theme I use.
Chris: I don't either. I really don't. I don't even remember anymore.
Dave: I know over at Syntax, Wes Bos makes his own Cobalt and it's on everything. I literally do not know the theme I use.
Chris: For a long time, if I was feeling it, I would just type because you can just search for themes.
Dave: Yeah.
Chris: I'd just type "themes" and then they would be sorted by popularity. Be like, "Oh, never tried that one. Activate." You know?
Dave: Yeah. I'm maybe the worst in that regard, yeah, because I don't care. And I like light themes. That's probably something I should tell people [laughter] if people need to know about me.
Chris: I remember at some point... Now I'm looking. I bougied out, as I always do, and I paid for the premium Dracula theme.
Dave: Hmm... Nice. Dracula was good. Dracula was very good.
Chris: Yeah! I kind of like it. Yeah, there is. It is tricky, though. It's not like all themes are equal. I think I end up switching, usually because there's just some little thing that annoys me about a theme, but I've been on Dracula for long enough now that maybe it's the perfect theme. I don't know.
Dave: I use Zed, right? For a bit, like two weeks. I give it the two-week try.
Chris: No way?! Did you really?
Dave: Yeah. Yeah, I really did.
Chris: Holy cow.
Dave: You know I'm not doing a bunch of mission-critical stuff, really, but just command line. But one thing that is not in Zed right now -- and they just opened up the whole plugin system and stuff like that, which is cool -- is Git stuff, like a visual get commit thing, which is not--
You may say, "Oh, just use the command line." Yeah, yeah, totally do. Totally. Totally. But things like getting Git Blame and Error Lens and viewing the history of this file, like, "What did I just change?"
Chris: Oh, Git Lens is the best, isn't it?
Dave: Yeah. Those sort of little pieces are very cool and make VS Code very useful to me. Those were the features or plugins and stuff that made me switch over.
I had to kind of give up just because I wanted to start committing a bunch of stuff, and I was just like, "Man, it's just easier to visually manage this stuff in another repo." I still actually commit over the command line, but if I want to diff a file and see what I changed and did all that, it's just a lot easier to--
Chris: Yeah, you do it right in your editor. Our team is so split. I don't think two people do Git the same way. I know Robert, who sits in the office here with me, is all VS Code all the time.
Dave: Mm-hmm.
Chris: Pull requests, the whole thing, because it's all built in there. You can do that. Rachel is on Git Tower. I was on Git Tower for a long time. I thought it was nice, but it started to chip away at me.
I mentioned this the other week. Now I'm on GitHub Desktop.
Dave: Mm-hmm.
Chris: I have totally switched over all my computers now. I'm having a little honeymoon phase with it. I think it's pretty nice. Stephen uses Source Tree or something like that.
Dave: Uh-huh. Yeah.
Chris: Dee and Alex are just all command line all the time.
Dave: Hmm...
Chris: I forget. Yeah. It's just interesting how it kind of doesn't matter. I think that's cool.
Wasn't there an Anil Dash post the other day about, you know, listen to this podcast in your podcatcher of choice is a radical idea - or something. His overall point was, "Cool. We did it. It's an open technology. People can make technological choices that support what they like." There are protocols underneath it that support that. That's awesome!
I think that's viscerally why I got so mad when some podcasts were like, "Exclusively on Spotify," or whatever. I'm like, "Okay. Good-bye forever then."
Dave: Yeah. Yeah.
Chris: Not because I have to open Spotify - or something - which is annoying to me because I don't use Spotify, but it's that a podcast was this open technology before, and you're clearly actively trying to ruin that. Your goal is to ruin that, and that pisses me off.
Dave: Mm-hmm.
Chris: So, I'm out. You know? But I think that's cool about Git in this case is that it's not proprietary. You can use all kinds of different software to do it.
Dave: Well, and Git and just code, in general. You can open it in BEM. You can open it in VS Code. You can open it in Zed.
Chris: Heck yeah.
Dave: Yeah, Git and just code itself is just a folder full of files. That's pretty radical that it can just be used on whatever editor of choice, whatever Git client of choice. I think that's really... Yeah, extending Anil's post. I think that's really cool. It is like the RSS Feedbin or whatever [laughter] of, like, "Oh, you don't like that one? Use this other one."
Chris: I know, and it's healthy, right? I don't know. I hate to be too protective just because it's my fun little playground and I'm a nerd and I like my fun little playgrounds, but it also feels kind of like nobody steal this if we protect it, then. I don't know. It seems--
Dave: Yeah. Yeah.
Chris: --good and on a level. Hopefully, I'm not just being a protective nerd and that there's a reason for that.
Dave: Well, you get into walled garden territory. You can really only run Swift in one big machine.
There are other ways to run Swift but build an iOS app in one program. If you don't like it, sorry.
Chris: Yeah.
Dave: That's kind of too bad.
[Banjo music starts]
Chris: This episode of ShopTalk Show is brought to you in part by Wix, Wix Studio specifically. You think of wix.com, you go to Wix, you pick a template, you edit some stuff, add your own content, publish the site. That's fast and great, and that's all good.
Wix Studio is more for the ShopTalk Show listener, I think. A way more powerful product. Go check it out.
You start up a new site. You pick lots of beautiful templates in there. And then you're dropped into... Or you can start from scratch, of course. You're dropped into this visual editor.
You're dragging on componentry that you want or adjusting existing componentry. It's like there's a design system already baked into it with all the stuff you'd expect, like cards, buttons, sections, columns, and all that stuff. But way more than that because this is such a powerful tool.
There's, like, "I'm going to put a blog in here, too. And on this particular page, there's going to be a list of blog posts over here in this column. There are going to be products for sale here because there's e-commerce stuff built in, or bookings or events coming up or membership stuff that's locked to pricing plans that only certain people can see, or totally CMS-driven concept." All that stuff is baked in. Super powerful.
All right, so you're looking at your site. You're building it out with these components. Then you have all this control, spacing, drawing backgrounds, and really powerful stuff. You can really literally do anything in here. An incredible visual editor. Then you hit publish, and you've got your live website.
But ShopTalk Show listeners, you're like, "Well, can I code, too, though? I need to do custom stuff. I need to hit my own APIs," or "I need fancy CSS control." Whatever it is, you can be working on this site locally in VS Code and be pushing up your changes to GitHub. The whole thing is source-controlled. You have that power too.
Or you can code right in the Wix Studio editor as well. They'll spin up a VS Code for you right in the browser. And you can code without even leaving your browser. That's really powerful, too.
I love the idea of just starting from scratch. You get a header, the section thing, and the footer at the bottom. You can just go wild dragging stuff on, seeing how it looks. It's all beautifully responsive, too, so you're dragging the different sizes and seeing how it responds to stuff: making adjustments, building your own color palates, adding in your social media stuff, anything. It's a really powerful editor. It's worth checking out.
To me, I'm like, "Wow! Wix has come a long way here in its ability to build any sort of website." Really targeted at doing this quickly, beautifully, fast, really designed for the agency or the freelance developer. Pretty, pretty, pretty, pretty rad there, so go to Wix Studio or simply click on the link in the description. Thank you for the support.
[Banjo music stops]
Chris: Well, some more hot drama this week. There are a couple of posts on the Tailwind smackdown. A big one was the Tailwind marketing and misinformation engine, which kind of tried to home in on some early Tailwind history and how it looked like a kind of contrived effort to bend some words into making people feel differently about the technology and stuff.
Itself faced plenty of criticism. [Laughter] Like, "Is that really what happened or what?" Then Heydon Pickering kind of followed up with his own take on it. Heydon is so fiery that he was happy to throw down with people on social media. I was watching that kind of go down.
Yeah, there's nothing new here, I don't think, as far as unearthing how people feel. It's just more kindling for the fire.
Dave: Yeah. Yeah, I do... The words thing, like the marketing, it's not a separate of concern. Best practices don't actually work. That was kind of an "ism" - separation of concerns. We call it dependency direction. Content first, utility first. Semantic CSS. Functional CSS.
Those word twists, "Semantic CSS is unmaintainable, but Tailwind is well engineered." "Semantic CSS doesn't scale. Tailwind is thoughtfully designed." "Semantic CSS is fucking bullshit. Tailwind is meticulously balanced."
You know? That's marketing, and we're susceptible to it, and we just repeat it like it's true. The irony here is [laughter] CSS doesn't scale but Tailwind is basically a proxy for CSS. Anyway--
Chris: Doesn't it feel like--? There probably is a silent majority of people who A) just don't care.
Dave: Sure.
Chris: Or B) can just kind of see they're just an adult and they can kind of the see the tradeoffs on both sides and don't have to absolutely throw down about this. It's like when you are seeing this go down, like so many other political things, who is choosing to open their mouths is either they're just feeling fiery that day or just happen to be way, way, way on one of the sides or the other.
Dave: Yeah. Yeah.
Chris: I know we're talking about it here on this show, and hopefully, with a measured take. But I really like to stay out of it because, at this point, I'm just like, "I know human beings on..." Somehow, both sides feel like a loaded phrase to say.
Dave: Ooh... whoa... whoa... whoa...
Chris: But I'm going to say both sides, even though that, I feel like, is not a fair thing. But think of the Discord. We have reasonable conversations about it all the time in there.
Dave: Mm-hmm.
Chris: What you're not seeing in these takes is, for example, can we look at the codebase of somebody who is really proud and happy with their Tailwind codebase who feels like it's just really kicking butt for them in this case?
Code samples aren't pulled from those codebases. People try to find the craziest, weird crap to do and then point at those and be like, "See how bad it is?" You're like, "Okay. Well--"
Dave: Yeah. Yeah, you see a 20-class button and you're like, "Well, that sucks." You know? I'm sure people have that. I think a lot of people have that. I think a lot of people have 20-class divs all over their codebase.
But who am I to say a 20-class div is abjectly worse for your organization than a 20-property CSS class - or whatever? I don't know.
Chris: Theoretically, there is only one (right) because it's abstracted. You do the one as part of a template. Those are the little nuggets that I think are positive to pull out of something like Heydon's post is that, "Yes, it absolutely requires a system that is like a JavaScript framework."
I've said this forever, too. It's absolutely used... Tailwind and WordPress I don't think go together particularly well because it's not really templated all that well in WordPress land and it doesn't come with a hot module reloader in it.
Dave: Mm-hmm.
Chris: Because you're changing HTML, that's harder to get a good DX around that; I've changed some classes and I want to see the results of that immediately. You're in "refresh the page" territory.
Or, if you're working in React, you have this kind of HMR setup, and it just feels fine. It just feels like changing anything else in a thing.
Dave: Mm-hmm.
Chris: I don't know. Sure, you've got 20 classes on a thing. I feel like I'm trying to defend it. I don't like it - for the record. I've tried it a number of times. It doesn't click with me. I see all sorts of problems with it, but I understand that there are enough people that really like it.
There are a couple of things that you can measure. One of those being the final size of the CSS that ships with the website. If you throw down with a Tailwind versus not Tailwind website, Tailwind is going to beat you for just raw size of the shipped CSS.
Dave: Sure. Sure.
Chris: There's one that you can measure that they win. It doesn't mean that it's just out and out better because there are other things that are involved like DX and maintainability.
Dave: Gzip. [Laughter]
Chris: And not being able to use certain features. There's all kinds of stuff. Yeah. Yeah, Gzip. [Laughter]
Dave: I think there's the promise that it can be just one single static thing. But then you've got to bring a bunch of tooling to get those good file sizes. You have to scan all your templates and yoink all this stuff.
It's not free, if that makes sense. You get it set up, and it might work really well.
Chris: Yeah. Yeah.
Dave: But it's not free.
Chris: Yeah. The scanning templates thing, people just assume that that's set up and working perfectly and correctly.
Dave: Yeah.
Chris: That's how proper Tailwind usage is supposed to go. I would think most Tailwind people just know that or assume that or something.
Then you're like, "But you should just know that there are all kinds of people out there that take some fully complete Tailwind build as a CSS file, just load that, and then just use classes out of it.
Dave: Mm-hmm.
Chris: You knew that, right? That's awful. Not you're getting the exact opposite experience. You're getting way more CSS than you need. Of course, that happens too.
When you're comparing this technique for this technique, you also need to compare somebody using it really well against somebody who is using CSS really well. And you need to compare somebody who is using Tailwind really poorly against somebody who is using CSS poorly, and things like that. There are scales on both sides.
I said "both sides" again. I hate saying, "There are good people on both sides, buddy."
Dave: Well, there are jerks on both sides, too. So... yeah.
Chris: [Laughter]
Dave: No. I think everyone knows my [laughter] curmudgeon opinions, but it didn't suit me.
Chris: The same. The same.
Dave: Or it doesn't... I love a handful of utility classes, and I should probably blog about what I like about those and why, where I sort of draw the line arbitrarily. But I do. I like a little bit of utility, but I also like a lot of autonomy to code my own stuff. Yeah, anyway--
There were some critiques, attitudes of, like -- I can't find the actual quote, so I'm just going to say the attitudes of, like, Tailwind doesn't let you write CSS. Then everyone is like, "It does, though! You just use apply or you write your own thing inside the Tailwind config."
Chris: Yeah.
Dave: True. True. True. But I wish, too, we just had a framework for arguing about this stuff. In the general speaking in the marketing and then even the maintainers saying, "Don't use apply," there are workarounds, true, but they're just generally not recommended or embraced. Or maybe the marketing does need to be like, "Write your own stuff when it gets weird." Maybe that's it, too. Maybe there needs to be some intellectual honesty, like, "This doesn't actually solve the job all the time and regular CSS is fricken' awesome for that." You know? Maybe we need some of that, too.
Chris: To never once say that it's not the perfect tool is smelly to me a little bit.
Dave: Yeah.
Chris: I always think of old Shawn Wang about that, too, like really good developer evangelism requires that, or that's a step above what normal developer evangelists do in helping with the marketing of it is saying where the rough edges are.
Dave: Yeah.
Chris: Being clear about that because it's just a trust-building kind of exercise there.
Dave: I will never forget when we built a whole design system for a company and then a new developer comes in and says, "Let's use Bootstrap. It has zero problems." I just was like, "Zero, huh? [Laughter] Just zero?"
Chris: Yeah. How long have you been around? Zero? Mm-hmm.
Dave: Zero, was his claim. It was not a fun conversation. But anyway--
Chris: [Laughter]
Dave: It's zero, Chris.
Chris: Zero.
Dave: It has zero problems. Zero.
Chris: Yeah. Yeah. Yeah, yeah, yeah. That sounds about right.
Dave: That was tough.
Chris: I got a couple of emails. One really big notable email from somebody writing in about the global design system stuff, too, saying that... I'm joking a little bit, but this really was what it was, like, "I solved this in my basement." That was kind of the vibe of it.
Dave: Oh, good. Yeah, yeah.
Chris: But that's not fair because he was a nice gentleman, but it was kind of like, "I've been thinking about this, too. Can I get you involved in it?" or whatever. I'm like, that's important.
I had to say no because I just am too busy with all the different stuff that I do, and I've had a whole bunch... I contributed a little bit by asking some hard questions of it, which I feel like, in my mind, some of them are answerable and some of them, they're not answerable in that whatever the answer is, it's such a big tradeoff that it knocks down the globalness of the global design system.
Dave: Yeah. Yeah. Yeah because that was your thoughts, right?
Chris: But there's one thing I knew, and I told him. One person will never solve this. It's not possible because it's such a social issue, too.
It was Mr. Linus Torvalds - or whoever -- who invented Git, so there are lone rogues that can make big, industry-wide, genius things happen. Hey, maybe he will. Maybe one person can do it. But in this case, it feels like the reason to pick a design system is such a sociopolitical thing that happens at organizations that it's different. It's not just a piece of technology. The marketing matters almost as much as the technology does.
Dave: No, I think you're right. I think you made the point on the show and then your blog post. Every single question you ask chips away at your market share, right? Should we use TypeScript? Ka-chung!
Chris: Gone, yeah.
Dave: You've just nuked 20% of whichever side of the fence you've decided on.
Chris: That's just one, man. It's like what package manager are you going to use?
Dave: Ka-chung!
Chris: If it's not all of them, you lose some.
Dave: Yeah. How do you fit into an existing system? That's like--
Chris: But you can walk into this with eyes wide open knowing that.
Dave: Mm-hmm.
Chris: And being like, "We still are going to make some of those decisions, and not all of them are going to be for maximum market share. But our goal is to make as few of them that push people away as possible."
Dave: Mm-hmm. Yeah, yeah. If we could just be very minimal and invasive and prescriptive, that would be awesome. I think there is a market for that. I think it's in the buildless Web component territory, but you know there are people who are like, "Uh... Web component don't work because it needs to server render," and stuff.
We have declarative Shadow DOM in Firefox this week, so that's good.
Chris: Yeah.
Dave: But setting this bar for all Web components to always spit out - whatever - static HTML by default, they don't quite do that yet. In some circumstances, they can. With the right tooling, they can.
Chris: There's even billing is involved. If you walk into some of the biggest agencies in the world that deliver design systems for money and said, "Hey, what if you never had to build a design system again?" They'd be like, "Uh... no. We're pretty cool billing for those. Yeah, thanks."
Dave: Yeah. [Laughter] Making a bunch of money is way better than not.
Chris: [Laughter]
Dave: I've experienced that in my own life sometimes too.
Chris: Let's say you go to 1,000 organization. What things would get to a yes for using a design system that came outside of these walls?
Dave: Right. I even said, "Use Web components, buildless Web components." That nukes React sites because they don't support it yet. You'd have to be on new, new, new, new React or go through the pain points of squeezing it in.
I've already nuked out a huge potential customer base, hype base.
Chris: More drama -- apparently, this is the drama episode -- of Arc Search.
Dave: Hmm...
Chris: It's Arc being the browser company's browser. I'm in it right now. I don't know if you are, Dave.
Dave: I'm right here. I'm Arc'ing it up. I'm in the third space.
Chris: They've really skyrocketed towards... It feels like. I don't know what their numbers are, but a good amount of usage, especially amongst the early adopter type of crowd. I've sung their praises many times. I think it's a beautifully designed browser. There are lots of features in it that I just absolutely adore. To me, it signals how slow and stagnant actual browser vendors have been about exploring new UI. It's a fun company to watch because of how fast they move in shipping every single week and just really cool.
All of a sudden - whatever - an Icarus kind of moment, flying high and the wax wings are starting to melt - or something - because they've done what so many companies do. They're just head-first into AI territory. A lot of us being skeptical of that move.
Their first step were those five features - or whatever. I don't even know where they're at because I found them all so much of a miss.
Dave: Arc Max.
Chris: But I was like, "That's okay. Hey, they're just experimenting. It's fine."
Dave: Yeah.
Chris: Then to have their new... They already had a mobile browser that was just kind of like a tab sync-er machine.
Dave: Mm-hmm. Mm-hmm.
Chris: Which was kind of fine. But obviously, nobody is enthralled with that, I don't think. Probably didn't see a ton of usage of it.
Make another mobile browser called Arc Search that just couldn't have got worse press. [Laughter] There wasn't a positive thing written about it. Maybe there are some people that like it, but the idea is you type a search into it. Then it's kind of like a meta AI. It goes out and browses - whatever - 10, 15, 20 websites.
Dave: It browses for you.
Chris: Yeah, it browses for you. Then goes to all those websites and smashes it all together into one chunk of output.
Kind of on the surface, you can be like, "Wow, that's kind of neat," because SERP pages (search engine results pages) can be so messy. Who knows which thing to click on is the best. I could see AI stepping in there and helping out with that kind of thing, extracting the most useful information.
But it did not take long for people to be like, "Wait. But if that kind of approach takes over, why would anybody build a website?" You're just thrown a dagger through the heart of websites.
Dave: Yeah.
Chris: Nobody hates websites. I don't know. Maybe some people do. But what a horrible thing to do to websites, to be this company that's just dedicated to making the Web better and funner and more usable and clean. It just felt like a 180 on, like, "You know those websites? Screw 'em." [Laughter]
Dave: Yeah. Just sort of a traffic yoink machine. Just yoink! [Laughter]
Chris: Yeah. Who are you trying to make happy here?
Dave: The motivation, though, is you go to a recipe website, and you have to read somebody's whole life story just to learn how to make a pancake.
Chris: Sure. Yeah. Websites can do a bad job.
Dave: I agree. I don't want that either. But then I'm like, "Okay." My distrust of AI is like, did you get that recipe correct? When you auto-yoinked that, I know you're a "make it up" machine, so when you auto-yoinked that and made up the recipe from the article, did you do it correctly?
Chris: Yeah. [Laughter]
Dave: Because putting two scoops of flour into a pancake recipe and two scoops of grass is totally different. [Laughter] What did you put in there? How do I know you did it right, or do I have to cook the pancake and hope you did it right? That's my own personal mistrust.
Yeah, it was kind of interesting that they chose to do that. I don't know.
Chris: Then there are all kinds of fallout, like, what's the fun of writing on the Web anymore? You're just feeding some big machine that ain't going to feed you back.
Dave: Yeah.
Chris: Isn't that sad? I'm hoping that there's another angle to this. I saw a Brad Frost article about AI in music. He was pointing at some people, and I think he felt the same way himself. He's just not worried about it at all. People want... People are obsessed with what other humans do, and that is on display in music land.
Dave: Yeah.
Chris: Writing may end up kind of the same way in that I want to know that a human being wrote this, and I think I can kind of tell because there'll just be markers of it for a long time. A writer's turns of phrase and stuff are unique to their own style. Not that AI can't catch up and kind of try to replicate it. Certainly, it could. But I think people just have a feel for, like, this came from the fingers of Dave Rupert. I think I'll be able to tell for a long time. [Laughter]
Dave: I wonder. Maybe we should have a challenge. In the next month, no... We can't tell, but in the next month, we'll set a calendar date for late March.
Chris: Yeah.
Dave: We have to each post one AI blog post and see if it--
Chris: Oh, my God.
Dave: See if people notice.
Chris: I feel like there's... I'm going to have... I can't just agree to that right away.
Dave: Okay. All right.
Chris: I'm going to have to think about it more because I really feel like it hits my heart in a weird way.
Dave: Yeah. It'd be a good challenge, but anyway.
Chris: [Laughter] I mean it's like, okay, sometime in the next month, we're each going to try heroin once. You know?
Dave: [Laughter] And who gets addicted loses.
[Laughter]
Dave: Whoever has a cardiac episode loses the game called life.
Chris: But as a company, isn't that a weird ass move for the browser company? I don't know. Can't they be happy doing great work in the browser world and then extend that work?
At one point, they were like, "Also, we're going to make a computer." They said that. That was a big move. That can be like, "You're mavericks! You're crazy! You're crazy, but I love you!" Kind of like that.
You're dreaming big instead of just being like, "Ah, we're going to get on the AI ship and just start shipping stuff that people hate."
Dave: I agree. They had a new feature in the Arc Search iOS app where you pinch an article to summarize it. You pinch, and it'll fold up the page and summarize it. I think that's awesome. I want that to exist.
That's what I love about Arc is it's just a weird ideas factor, and the Web needs that. The browsers need that.
Chris: Yeah. Yeah.
Dave: All the browsers look the same. It's all boring shit.
Chris: That's neat. Does it pinch DOM nodes together? Like you grab three paragraphs?
Dave: No. It just shrinks the whole... It rasters the page and folds it up - or whatever.
Chris: You can do the whole page or nothing.
Dave: Yeah. Yeah.
Chris: Okay.
Dave: It's just kind of like a way, instead of right-click, summarize. It's like, pinch, and then you get a smaller version of the page.
Chris: Okay.
Dave: I think that's cool. But I think it's important to acknowledge the metagame right now is investors are investing in AI only. I'm under pressure from investors to add AI features. Everyone is. It's the game. You can't get investment unless you say AI this, that, revolutionize it.
Chris: Yeah.
Dave: Somebody who - whatever - they're not a maker, maybe, and they're not in the content generation space. But man, if you just type five words into here, now you're a content creator. That's cool, probably, to them.
Or, hey, you read a bunch of dumb stuff on the Internet all day. Wouldn't it be cool to summarize it? Here you go. Here's a summarize tool.
I think the metagame in the VC space is you have to put AI into your product this year. Everyone is doing it. You know what I mean? The reason everyone is doing it is it's the only thing getting funded (internally or externally). It's just what it is.
Chris: It is kind of wild, isn't it? I don't know. I don't know how I feel about that. Part of me is like, it's their money so they can do whatever they want with it - in a way. It's not like there's a fairness clause of investment that they have to adhere to.
Dave: Yeah. It's kind of like when everyone built an iOS app. It was like, iOS was 40% of the market share and everyone was building iOS apps. Then you were just like, that's cool but did we need an iOS app for our podcast? No. The answer is no. You just exist and you just have a normal RSS feed.
I think there's just this very... It's the hype. It's the zeitgeist. It's everything. That's what people want to see, and I think there are breakthrough opportunities. Somebody is going to come up with something that kind of is cool and kind of works. But it's currently the only thing going.
It's like everyone in town plays the same music now. They all play country music, and we just have to deal with it. Beyonce does country music, Chris Coyier.
Chris: Oh, I'm well aware. I fricken' love that new track.
Dave: Billionaire Beyonce can't escape the grasp of the money machine. [Laughter]
Chris: Mm-hmm. Yeah, it's the banjo player from the Carolina Chocolate Drops opens that track.
Dave: Oh, really?
Chris: I've been loving that band for so long, and it's cool to see her.
Dave: But Beyonce is from Houston. She's from H-Town. She can do whatever she wants.
Chris: [Laughter]
Dave: Yeah.
Chris: Well, how is country taking over? That is so strange. I'm here for it.
Dave: It's the only profitable one. It's got radio. It's got... You know it's the only way to make money in music. Even TPAIN. Did you hear TPAIN? He's written a bunch of country songs and sold them. [Laughter]
Chris: Yeah, but he's saying don't credit me on them. That was a crazy article.
Dave: Don't credit me. Just give me the check because I don't want the racism. [Laughter]
Chris: Wow!
Dave: That's so great. TPAIN is my favorite dude. His YouTube or his life Twitch stream is so--
Chris: It makes me sad to think about where does it... Is it from--? Is it some white person accidentally, in their mind, enjoys a song, then is like, "I wonder who wrote that? Oh, it's a black person wrote it? I'm going to send him a letter of my disappointment that this song that I've already decided that I like was written by him"? What?! Is that what's happening?
Dave: Yeah. Yeah. Like, "I'm making my decisions based on this awful fact." You know? Yeah.
No. Well, it's funny.
Chris: Where is John Stewart on that one?
Dave: He actually was at a country music festival here in Austin. My brother-in-law flew in to go to it, and he was like, "Dude, TPAIN was there." I was like, "What?! TPAIN?"
[Laughter]
Dave: He was like, "TPAIN was there. We watched TPAIN. It was great." Everyone loved it, so that's good. Good for him. He found his--
Chris: Freakin' moment.
Dave: He found his subgenre. Yeah.
Chris: Indeed. Ah... fun. All right. Well, that's exciting. What else? Do we have one more on our list here, I think, somewhere?
Dave: Oh, we should call out our old friend Dan Denney has resurrected Front-End Design Conference in St. Petersburg, Florida.
Chris: Yeah. The original location for it, yes, I did put this on here. I see he's selling tickets now, and there are some price increases coming up. This was the first conference I ever even went to, I think, and I happened to speak at it. So, I kind of jumped ahead a little bit because I just wasn't... I didn't know that there--
This was a long time ago. I wasn't really... I don't think I knew that there were conferences you could go to for Web design stuff that were just fun.
Dave: [Laughter]
Chris: Maybe there wasn't that many of them at the time. I don't know what I was thinking. But, yeah, Dan invited me to it in the early days of CSS-Tricks and then ran it for a whole bunch of years afterwards, and I always just loved it because, you know. It's this one guy and his family, his wife Cherrie, just making it happen, and did okay with it for a while.
Always kept it cheap. It always felt like a real true actual community pulling it off, and then ended it for a while. I can't remember why exactly. I think he had perhaps a couple of missteps. Didn't he do one in Portland or something, and that didn't go well? I can't remember what but stopped.
Dave: Yeah, I think... Yeah.
Chris: This is kind of like a "We're bringing it back" moment. And you love to see it, right? We're in this kind of post-COVID area, and you can do this stuff again. It's slow going watching these things come back. To me, this is like the ice thawing, kind of, to see Dan throwing one.
Dave: Are you going? Are you going?
Chris: Well, I put it on here because I feel so bad that I can't go.
Dave: Aw...
Chris: It overlaps with something that I can't... And it makes me feel sad that I'm like, "I'm going to promote this thing for you, Dan."
In a way, it's like, "Yeah. I wish I was there." But it also is begging for a new generation. You know?
Dave: I would agree with that. Yeah.
Chris: Rather than just seeing my old ass face at it.
Dave: If you've ever listened to an episode of ShopTalk, and you hear, "Just Build Websites!" that was recorded at a Front-End Design Conference.
Chris: Yeah.
Dave: Yeah.
Chris: Hell yeah, it was.
Dave: I might... I don't know. I want to go. I need a major hall pass to make it happen, so I'm... [Laughter] We're working on the old logistics here, but I would love to go. If you can go, you should go.
Chris: Exactly. That's what I would need, too. I would need to really push it.
Dave: Yeah.
Chris: Because we have some conflicting stuff. But if I cashed in all my chips for the year, maybe. You know what I mean?
Dave: Right. Right.
Chris: We're just old now.
Dave: Yeah. Well, yeah. There's something to be like, "Hey, I'm just going to take a few thousand dollars and head to Florida by myself. See ya." [Laughter] There's a little bit on the old--
Chris: Yeah. I don't want to cash in my social chips for it either, though. Even though maybe... I think the speakers are locked in at this point. But even if I was speaking at it, she knows enough that I'd be cashing in my social chips, not my work chips. You know?
Dave: Oh, yeah. Yeah, yeah.
Chris: [Laughter]
Dave: Okay. Yeah. That's the, "You don't get to go drive cars with the boys this year if you do this one." Yeah, yeah.
Chris: Sure don't. Yeah.
Dave: Yeah.
Chris: Stephanie Eckles, though, CSS Master. Ben Callahan is there. Sparkbox did kind of the current generation of CodePen's design. It's been a long time now and it's evolved since then, but that's pretty cool.
Dave: Yeah. Elyse Holladay.
Chris: Cameron Moll. I haven't seen him in ages.
Dave: Cameron Moll.
Chris: Yeah.
Dave: Jina Anne, Cass-i-doo.
Chris: Yeah.
Dave: Adam Kuhn.
Chris: Mr. Homer, probably talking about accessibility. Yeah, the Cobra Winfrey himself. Cassidy is going to be there. Dang. This is a hot, hot group. For $300, hell yeah.
Dave: Cobra Winfrey is the big pull for me there.
Chris: Isn't it? [Laughter] Yeah. His work is--
Dave: Stellar.
Chris: Excellent. Yeah.
Dave: Stellar over time, too. I petered out.
Chris: He used to be native. He used to live there. But now he's up in North Carolina. But I'm sure... Has probably a family draw and stuff for him, too, at this point.
Yeah. Around the last one, he threw a CodePen meetup at the last Front-End Design Conference years ago.
Dave: Oh, okay. Nice. Yeah, it's a good conference. You should go, if you can. I'm going to see about if I can.
Chris: Okay. St. Pete, baby.
Dave: Just need to align the old budget machine. [Laughter] Budget machine, go!
Chris: [Laughter] That's cool. Do we have any questions? Did anybody write in anything interesting?
Dave: I don't know. Let's see. You know we could probably get to one. I think we're already kind of up at 50 minutes here, so we could probably wrap it up and save questions for next time.
Chris: Yeah. My Internet is being weird anyway. Sorry for everybody out there using AT&T who has gotten screwed. I think it might be related.
Dave: Solar flare? Yeah, it's the old solar flare. We were joking before the show. That's absolutely made up.
[Laughter]
Dave: If you crash AT&T's global network, you'd just be like, "Ah, yeah, dude. Solar flare, man."
Chris: I'd be like, you get one of those a decade or so. You could use that internally at work. You're like, "Why is the website down?" Be like, "Oh, boss. I'm so sorry. Solar flare." What do you say to that?
Dave: Yeah.
Chris: He goes, "Oh, really? Solar flare, huh?"
Dave: Why is the website slow? Solar flares affecting radio waves here in the house or building.
Chris: Yeah.
Dave: Yeah. I'm wired in, though.
Chris: It reminds me of how you can tell anybody that you play the harp. You know? You can just work that into conversation because they'll be like, "Prove it." You'll be like, "Well, I don't have my harp here, obviously."
Dave: [Laughter] Smart.
Chris: You'll never be in a place with them and a harp at the same time. It's never going to happen.
Dave: Dude, I guarantee the first time I try this grift, it fucking blows up in my face.
[Laughter]
Dave: The very first time.
Chris: Fricken' Anchor Man it and have a harp up their sleeve.
Dave: Just the second I say, "Well, I play harp," there's... b-b-bring... [Harp strung]
[Laughter]
Chris: They're like, "Really? You want to see me on YouTube winning the world harp championships?"
Dave: You could look it up? Yeah, go look it up. I don't know. Yeah.
Chris: Go look it up. All right. Fun stuff. We'll answer some questions next time - maybe. I think we have a couple of guests coming up, though, and they can help us with that.
Dave: A couple of guests lined up, yeah. Please, if there's somebody you want to see on the show that's not your boss, let us know.
[Laughter]
Dave: We'd love to hear that.
Chris: Yeah.
Dave: But then... ooh... we get a lot of those. Then anyway.
Chris: Gees, do we ever.
Dave: Yeah. Thank you, dear listener, for downloading this in your podcatcher of choice. Be sure to star, heart, favorite it up. That's how people find out about the show. Follow us on Mastodon, front-end.social at [email protected]. And join us in the D-d-d-d-discord. That's where the party is at, patreon.com/shoptalkshow. Chris, do you got anything else you'd like to say?
Chris: [Tongue roll] [Laughter] Sh-r-r-op Talk Show dot com.
Dave: B-r-r-ow.