516: Building a Technology, Twitter Driven Development, Deciding on a Blog Topic

How do you add features to a web app while the web app is running? Should you add features to your app based on whatever Twitter tells you? And if Chris or Dave were starting a new blog today, what niche would they start writing about?




Chris Coyier and Dave Rupert in silly sunglasses and a sign that says Shawp Tawlkk Shough DOT COM

Chris Coyier and Dave Rupert

This episode is with just Chris & Dave, ShopTalk Show's hosts. Chris is the co-founder of CodePen and creator of CSS-Tricks, and Dave is lead developer at Paravel.

Time Jump Links

  • 00:30 Building a technology
  • 11:34 Paraval news
  • 12:31 Sponsor: Notion
  • 15:08 I like software, but I’ve hated all of my jobs
  • 20:21 Twitter driven development
  • 29:51 Sponsor: The Stack Overflow Podcast
  • 30:34 Thoughts on tags
  • 41:20 If you were starting a blog on a specific piece of web technology and you couldn't choose CSS, what would you choose and why?

Episode Sponsors 🧡


[Banjo music]

MANTRA: Just Build Websites!

Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show, a podcast all about front-end Web design and development. I'm Dave Rupert, and with me is Chris Coyier. Hey, Chris. How are you?

Chris Coyier: Hey, dude. I'm doing pretty good. Another day. Another day. Another technology happening.

Dave: Yeah? Are you building technology? Are you establishing enterprises?

Chris: I am. I really build technology every day. I feel like we're right in the middle of -- you know, I've been in the middle of this long, big project for a long time. It feels good, but it can be an emotional rollercoaster. I'm such a ship it kind of dude, as you know.

Dave: Oh, you? Interesting. [Laughter] I hadn't noticed that over the last ten years.

Chris: It's not just blog posts. I like to just ship features, and I like to talk about the work I'm doing. In this case, it's just not possible. I'm talking about future CodePen stuff, because it's just got to--

You know I've been thinking about this. I think this is a very cliché tech statement is, "We're trying to replace the engine of the plane while it's flying."

Dave: Yeah.

Chris: I've heard that a lot of times over the years. I think because it's an apt metaphor for a lot of websites. So many people work on websites that already exist. Most of us aren't building a greenfield thing. In fact, after day one, you are working on a website that already exists. And so, if you want a big change to that website, you can't just turn off your website, rewrite it, and turn it back on.

Dave: Mm-hmm.

Chris: Probably because your business model does not allow that.

Dave: Mm-hmm.

Chris: It needs to support the existing product. People are paying monthly or whatever. A lot of us are trying to rip the guts out of websites and replace them, and it's tricky. And there's not a lot of writing and help, and technologies aren't necessarily built around that concept.

We have a lot of customers that we've got to support a product. We're trying to not do nothing. We have this big community and stuff. At the same time, build whatever is the next generation. It's just taking a long time because we're really trying to do it right.

Part of me is like, "Man, we are so blessed because we have a good business model already. We're already profitable. We're already stable. We're paying people. We're taking care of ourselves financially, and we get to build the next-gen."

Dave: Mm-hmm.

Chris: You know? It's not a do or die thing. It's not like, "Oh, look at the road ahead of us. There's only three months or we're dead." There's none of that happening, and that's what I mean by blessed.

But part of it, when you're down, you're like, "Man, is this big, and is this a gamble? And is this--?" you know, all that.

Dave: Yeah. I kind of -- I mean I hate the build a plane while flying metaphor just because that's not how airplane maintenance works at all. If we were to hop into an airplane and suggest that as a method to fixing the plane--

Chris: [Laughter]

Dave: --we would probably not get too far in the Federal Aviation Administration.

Chris: It'd just be a hard no.

Dave: Yeah. Just, "Nope." You take the plane offline, and you use the backup plane, or whatever.

Chris: Right. You have lots of planes, and you land the one that you need to fix and change it or something. There's still a metaphor to be had there because not everybody can afford two planes.

Dave: But the one -- and this is probably problematic out the wazoo. The one I like is you're pregnant. Just that you're growing a feature. You're growing a feature set, a new thing.

Chris: Mm-hmm.

Dave: And there's a lot of anticipation that comes with it, but you've still got to go to work or do your stuff. It's still a deal. You've still got to manage life. You never get to -- but you're excited for the future, the new thing, but you have to just do the work and take your vitamins and everything.

Chris: Yep.

Dave: Grow the new thing.

Chris: Yeah, there's lots of personal growth in there, but there's kind of that cost of not shipping that has an interesting toll.


Dave: I want to write a blog post on that because I think that's been coming up in the Paravel discussions quite a bit, just with Luro. It's like we're not under a threat of not shipping, but it's like -- I think a lot of organizations, you build the thing and, guess what, it doesn't happen because of whatever reason.

I've had dozens of stories. I think my worst or least favorite one was when a feature got held up, or a whole app. We were building for a software company in Redmond, Washington. It got hung up in legal. It was just like, man, that's unfun.

Chris: Wow. That's a bummer. It was a blog post of yours about -- you know it was quoting Apple, but it was a general kind of concept is that there's something really powerful about the excitement cycle.

Dave: Mm-hmm.

Chris: Which is like, you ship, and then you ship again, and you ship again, and you ship again. There's a lot of value in that.

Dave: I mean if you're making headlines, and you have three or four product lines where you can say, "That's new. That's new. That's new."

Chris: Yeah.

Dave: I almost think this new pattern of these feature blast weeks that everyone is doing -- Figma did it, Netlify did it, all these companies--

Chris: Cloudflare does it.

Dave: Cloudflare does it. I mean they're all great. I love new features, but I almost feel like it's an antipattern because you get all your features in a week. All the headlines come out in one week. It would better if those were just kind of rollups of things or if they were pre-announcements so that you could kind of be like, "This is what we're working on. In three weeks, we're going to have a bit more to tell." That's kind of what Apple does.

Chris: Yeah. I wonder if there's a mix between -- it's really one thing or two things, and then you sprinkle a little extra crap on it to stretch it out and call it a week. You know?

Dave: Yeah. Yeah. Yeah.

Chris: Here's the big one. Here's this other one. Then here's a blog post one, and we launched a Discord, and here's a hackathon. Or something.

Dave: Yeah. Yeah. Yeah. That's usually the format, right?

Chris: Yeah.

Dave: Yeah.

Chris: And that's okay. I mean I don't mean to poke fun at Astro because they had a little bigger release than that, but I feel like you could do that. Really, why you're calling it a week is that if you called it a day, it doesn't feel like enough. In these days of ephemeral social media blah, you're going to miss a lot of people who just took Thursday off because it was a mental health day - or whatever. It's got to be a week or two. [Laughter]

Dave: Right. Astro Week. I guess that keeps you in the conversation for a whole weeks, which in social media time is forever.

Chris: Yeah.

Dave: That's kind of a big deal.

Chris: I think that's the real deal is that you just need longer on social media, essentially.

Dave: Yeah. Yeah, time is power.

Chris: Mm-hmm.

Dave: Time is power.

Chris: And I think there's a planning aspect to it. I think I've heard it said that it helps your team to align on things.

Dave: Mm-hmm.

Chris: There are deadlines associated with it. It's just easy for your internal people to wrap their head around, hey, the week is coming up. Better be ready.

Dave: I bet that helps. Apple has WWDC or whatever. Like, guess what, that's coming in a week or two. All the teams inside Cupertino or whatever are pushing hard to hit that deadline.

Chris: Mm-hmm.


Dave: Yeah. I think there's a lot of value in that. But you know, I think, too, that cost of not shipping is huge. I think you lose talent. I think you lose employees.

When I've been reading or interviewing people, too, sometimes one person will quit and it'll change the dynamic of the team enough that ten people quit, or whatever. You kind of almost lose a whole arm of your company just because one person got frustrated (for right reasons). Not like they rage quit, but your organization can be as sensitive as just one person got a new job and, guess what, two, three other people are having a less fun time. Then, all of a sudden, you have a whole missing arm of your company. It's interesting.

Chris: I know. [Laughter] That's tough. Just well aware of looking at companies and seeing them, seeing their velocity being highly based on staff. Obviously, right?

Dave: Mm-hmm.

Chris: But it's just no company is immune to it. Just because it's Twitter doesn't mean that they've got this entirely figured out and that if anybody leaves, it's no big deal. They'd just replace them with some other incredible developer who's just as fast and productive. It's like, no way.

Dave: Yeah.

Chris: That's why I'm so -- I just am so convinced that if you have an Elon Musk inspired exodus of certain people, you don't just next week be like, "And now we've implemented all of Elon Musk's great plans."

Dave: Right.

Chris: It's like, no you didn't. You've got to hire up and spend a billion years getting people acquainted with how this thing even operates.

Dave: Up to speed, yeah. Yeah.

Chris: The bigger it is, the slower that'll take. You know?

Dave: Could you imagine what hackery goes into keeping Twitter's database up? Could you imagine? I can't even imagine. I know they use Casandra, which is a document storage of some kind. But could you just imagine? It's just like there are probably so many weird--

Chris: Yeah.

Dave: Whatever buckles keeping that thing together, and you have to figure them all out.

Chris: I think of that, like an aircraft carrier. You know? I've seen shows that are like, "What's life like on an aircraft carrier? Real world aircraft."

Dave: Yes. [Laughter]

Chris: And it's all a bunch of 20-somethings having sex with each other and whatever. You're like, "Yeah, I bet there's a lot of that, you know, a lot of this young, Top Gun kids, and testosterone crap, and whatever happens. But there's also some 60-year-old dude in the bowels of that ship who runs the nuclear reactor that is required for it to move forward who is probably not terribly stymied by the day-to-day drama up on deck.

Dave: Yep. Gus doesn't care about the--

Chris: No, but you better as hell hope Gus doesn't quit.

Dave: Yeah. [Laughter] If Gus quits, the boat goes a lot less faster. Yeah.

Chris: No. He's the guy down in the muck in Water World. When they flick the cigarette down, and he's like, "Oh, no!" Anyway--


Dave: [Laughter] Yeah. No, well, exciting things on the Paravel side. We've made some hires for Luro, which is kind of cool.

Chris: Oh, congrats.

Dave: We did end up going the junior developer route.

Chris: We talked about that last week, didn't we?

Dave: We think this person is cool and it'll work out. But yeah, anyway, so that's kind of what's starting. But we're starting to do, and then another senior developer is going to come on full time. He's taking a break between jobs here.

Chris: One senior, one junior: you split the dif.

Dave: Split the dif, and then we're going to kind of just build out the team or work together, figure out where our edges are, and then see if we need to hire somebody else, maybe somebody more back-end specific or dev-op specific or something. We don't know. It's kind of up in the air, but there's always work. I don't know. There's always work.

Chris: Oh, for sure.


[Banjo music starts]

Chris: This episode of ShopTalk Show is brought to you in part by Notion. Learn more and get started for free at Notion.com/CodePen.

That's Notion.com/CodePen to help you take the first step towards an organized, happier team today. That again is Notion.com/CodePen. I know this is ShopTalk Show and not CodePen Radio, but that's the URL we got just to keep all them clicks all consolidated for this overall sponsorship.

Notion is the best. As you know, I've done videos about how we use Notion. We've talked about Notion a ton on CodePen Radio and ShopTalk Show. It's a phenomenal software product. In my opinion, it really changed the game and kind of invented a new category of knowledge management app, which is kind of how I think of it.

It's an app that's really at the core of running any kind of business, but probably mostly software technology businesses because that's where my brain is at. It helps you plan projects and have shared calendars and have shared meeting notes. What you can do with it is really open-ended in the best possible way. Everything you make is like a database or documents, and it's all nested and has good permissions levels and stuff.

I know I'm speaking very abstractly here, but once you get into using it, you're going to find it very natural and comfortable to use, especially in a team setting, and it just really brings people together. I have no doubt that it's made us a better place to work. At the places, the businesses I've incorporated Notion into there, it's like Notion is where the work happened a lot of times, and I really love that.

I also want to say one thing about how I appreciate how they get the details right at Notion as a company. For example, for a long time, anybody who says, "Where's the API? Where's the API?" For years and years and years.

Finally, they're like, "Here's the API," and it's super well done. It's well documented. It has good default integrations. It's just a super well done API to the point where people were just like, "Um, thanks... That's perfect, actually. Great." [Laughter] You know?

Then they took a bunch of time to get even a little detail about how text is selected across blocks in the document editor. It just underwent this great improvement of how you can select text across them, and it feels just like you're selecting text in a natural way that you'd expect in any text editor, which was different before because of the block nature of editing.

A little hard to describe, but if you don't notice it, well, that's what they wanted. They didn't want you to be like, "Ew, why is text selection weird in here?" which it kind of used to be a little bit, and now it's just better. I appreciate that, like, we're going to spend time on that detail. Not on necessarily some big flashy thing, but just on getting the experience of using the app good.

Thanks for the support, Notion.

[Banjo music stops]


Chris: This actually reminds me of a question we got in from an anonymous person who wrote in.

Dave: [Indiscernible]

Chris: "I'm writing in because I like software, but I've hated all my jobs." [Laughter]

Dave: Oh, okay.

Chris: "I've worked for two Fortune 100 companies and two venture-backed startups."

Dave: Mm-hmm.

Chris: I guess that's four companies. None of them are right. "At the Fortune 100, I get good hours, but I'm not particularly proud of the work I do. I feel like code quality and performance take a back seat as long as project managers are crossing stuff off their list."

Dave: Mm-hmm.

Chris: "Then there's this rotating cast. You know, higher ups can't choose what the priorities are. There are pains there. Venture-backed, you know, the startups have this like grind thing going on, you know, growth at all costs. Blah..."

Dave: Right. Right. Break your neck. Give me your youth.

Chris: Yeah. [Laughter] Yeah, totally.

Dave: [Laughter] Yeah. Yeah.

Chris: We need a little bone marrow in the server.

Dave: But your blood in this bag.


Dave: I need your blood to stay young.

Chris: What's a weekend? Anyway, those do seem like big extremes. You're talking Fortune 100. There are literally 100 companies, and they're all unfathomably large.

Dave: In that, yeah.

Chris: When you say venture-backed--


Dave: Have you tried Fortune 500 or Fortune 1000?

Chris: Yeah. Can you narrow this in a little bit? Why don't you go to the Fortune 912th company? It might be a little different story, or a startup that isn't necessarily -- didn't get a $200 million check. You know?

Dave: Mm-hmm.

Chris: How about one that's a little more - I don't know - family spirited or just has some good teeth to it or something that's a little more normal?

Dave: Mm-hmm. Mm-hmm.

Chris: I don't know what to tell you, anonymous. You did pick the extreme, so you've shopped around. But doesn't this feel like the three little pigs situation here? You know? You need a little just right porridge here, anonymous.

Dave: Yeah. This seems like a just right situation, a baby bear porridge.

Chris: [Laughter]

Dave: You know what's interesting about the porridge is it does not follow the law of thermodynamics, but whatever. That's fine. The baby's is small but it's too hot. That should be the cold one. Anyway.

Chris: Yeah, mama bear's should really be the perfect porridge, but it's just not how it panned out.

Dave: That's what I'm thinking, but anyway. Okay. Okay, so I think, yeah, there's probably a middle ground in the company size, you know. I will say I totally empathize. I've been in the big with, like, client work. We get kind of embedded.

There's a really demoralizing feeling when you feel like your work is really just a bullet point on somebody's LinkedIn. You know? [Laughter] They're driving you so that they can get a bullet point on their LinkedIn and get a new job. You know what I mean? I've seen that. I've felt that.

Chris: Yeah.

Dave: It's kind of demoralizing, so that's not a good feeling. I've been there and it's not good.

The rotating cast of higher ups, I've seen that too. It's these -- you know, and people -- in bigger organizations -- I feel comfortable saying this. People kind of worship leadership almost in a sycophant way. It's like, "Oh, the boss said we've got to do this," because their success depends on pleasing their boss, right? Their bonus or whatever or their livelihood depends on pleasing one person while as you're trying to manage 20 different stakeholders and stuff like that. That kind of rotating cast thing can feel bad.

One time, I was working, and I was just kind of crosscutting projects because I was on a design system or something. I was just working on a few different jobs. I was like, "I have eight managers. This is terrible." I just was like, "This is not fun, and I need to back out." That's happened.

But then working for the small thing, you know, that, as much as -- I don't know how CodePen works, but the whimsy can get really tiresome. You know what I mean? Like where it's like, "Hey, guys. I was showering and I came up with this amazing idea. Uh, we're going to implement it overnight. Ready? Here's some Red Bull." You know?

Chris: [Laughter]

Dave: That's violent. That's violence. You know what I mean?

Chris: [Laughter]

Dave: I don't know. How does it work at CodePen?


Chris: You showered and you chose violence? No, we joke about that these days. In fact, we're post joking about it because it was a joke for a minute and then, you know, we used the joke too many times. But we used to call it Twitter-driven development.

Dave: [Laughter] The joke got sad. Twitter-driven development, okay.

Chris: Yeah, that was the early days when somebody is like, "You should have that," and we're like, "We should have that!"

Dave: Mm-hmm.

Chris: And we put it in there with no thinking of how cleanly it was implemented, what kind of future technical debt problems it could cause. You know?

Dave: Mm-hmm.

Chris: Not really discussing it. Maybe only one person worked on the feature, too. Maybe we didn't even talk about it. You just put it in.

Dave: Mm-hmm.

Chris: Turns out that's considered violence these days, which I kind of agree with. It would just never happen again. You just turn into an adult at some point and you stop doing crap like that.

Dave: Well, yeah. It can be such a disruption. I've even--

I don't know. I feel like I've been in situations where a manager just wanted to flex and see how -- he came up with some dumb but practical idea and wanted to flex and see if people would implement it, like see how quickly. It was almost like a test or an agile test or something.

Chris: There's a lot of "fortune favors the brave" thinking out there and, like, "Ooh, they're the person at Google who invented doodles," or something.

Dave: Yeah. Yeah. Yeah.

Chris: Now they're legendary. You know?

Dave: Right. Right.

Chris: I appreciate anybody that pushes the sentiment that there's no loan geniuses and that technology is an amalgamation of smart people, teams of smart people riffing on each other. It's a healthier place to be.

Dave: Oh, I mean it is. I heard somewhere. I want to find it. Building the software is one thing, but a company is really like you're building the machine that builds the machine. And so, if you can focus on that (and that should be management, I guess) you're building the machine that builds the machine. And so, that's the process is the workflows, the code, the architecture that builds the machine in an efficient way so that everyone hopefully - whatever - makes money, gets customers, gets rich. You know?

Chris: [Laughter] Yeah. We're still capitalists here, people. We're just adult versions.

Dave: Adult versions that are tired. But no. [Laughter]

Chris: [Laughter]


Dave: But you know. It's never that simple. You know. I don't know. There's been a lot of -- tech has been on a big swing for a decade, and astronaut prices to hire somebody. It's incredible.

I'm in this business Slack, right?

Chris: Yeah?

Dave: With like 20,000 people.

Chris: Oh, my God.

Dave: It's wild. It's weird. But it was sort of like for people transitioning to business leadership - blah, blah, blah. It got recommended. I like it. It's helpful-ish for me.

But there's like this compensation channel, and these people are just like, "Hey, is $600K with $12 million in total compensation good for an L2 Google employee, so like staff engineer at Google?" I'm just like, these numbers! What planet are these numbers from?

Chris: What?!

Dave: It's just bizarre, and so that's the thing, too. It's like you have levels. Even that idea is very novel to me. There are levels of engineers? This is incredible.

Chris: Right. As soon as there are, then doesn't it kind of lend credence to the idea that you better have some rogue ass idea that you're trying to pull off, because how are you going to go from L2 to L3 if you can't point to something and be like, "I did that"?

Dave: Mm-hmm. Yeah. You've got to have this. But yeah, why don't you get points for being--?

Chris: Being a good team member.

Dave: Yeah. Cut down build times 10%.

Chris: Yeah.

Dave: I was the person who fixed this prod outages. [Laughter] I fixed--

Yesterday, or two days ago, I was like my docker deploys were failing, Chris. Right?

Chris: Eh... Okay.


Dave: GitHub actions, docker builds the dock -- GitHub actions builds the docker, pushes it out to DigitalOcean's docker repository build.

Chris: Registry thing? Yeah.

Dave: Registry. Yeah. Okay.

Chris: Where's the logs?

Dave: It's taking 22 minutes, and it just says like it's sending out 17 little bundles, hashes, like files or binaries or whatever it is they send. Two of them are not making it, and the whole thing crashes after 22 minutes. It just says, "Nope, couldn't do it."

Chris: Eh...

Dave: All right. I do it again because sometimes, if you just do it one more time, it passes. Right? It doesn't work. Six times.

Finally, all of them get over the fence, and it deploys. We're just like -- I reached out to my friend Scott. I was like, "What's going on here?" He helped set it up. "Any ideas?"

He was like, "Oh, you know what's weird is it looks like your DigitalOcean docker registry is in France, like Germany, FRA1."

Chris: Oh! Smokes and shucks.

Dave: Oh, well, that might explain why the one gigabyte docker can't make it in under the time limit or whatever.

Chris: Yeah.

Dave: It's because it has to go to France. So, we moved it to the U.S., and it all seems to work, but boy howdy. What a mess. Like you know?

Chris: You get a little gold star for that day because that does take kind of a lone person to figure it out, kind of.

Dave: Well, and it shaved five minutes off the docker deploy or docker registry deploy.

Chris: Oh, you're still up against the edge then, though, aren't you?

Dave: Yeah. Yeah. I mean--

Chris: From 22 to 17, and now 17 works, that probably means 20 is the cutoff-ish.

Dave: Well, I think, before it was failing-failing, it was 11. Now it's down to seven, so we're at seven minutes.

Chris: Oh, okay.

Dave: We're doing some -- we put a lot on the docker, so that's probably our fault. But anyway, you know all that stuff is another issue I'm dealing with is like servers are all underpowered. They're Core I5s, and they're like, "Hey, you get a CPU, but it's with 7,000 other people." [Laughter]

Chris: [Laughter]

Dave: Crypto miners, and so good luck. You have no CPU guarantees on the server. But how do you--? If somebody fixed that stuff, how would they be rewarded on the skill tree?

Chris: Yeah. It seems that dev op stuff is a little measurable because it has costs. You can be like -- I can just look really high level.

Dave: Mm-hmm.

Chris: I don't even need to know. I can just be like, "We paid $17,000 last week, and then we hired you, and said you should lower that, and you made it $12,000. Okay. Good job. [Laughter]


Dave: Yeah. But what about the person in your organization who just says no? They're just like, "Hey, can we do this?" They're like, "No."

Chris: Immeasurable, right? [Laughter]

Dave: They just saved you half a million because they just said, "No, I don't want to." Do they get points? You know what I mean? No, they get office curmudgeon award. They get the Dave Rupert office curmudgeon trophy.

Chris: They're probably so useful. They're like, "Salesforce is big. Shouldn't we do some kind of something with Salesforce?" "No."

Dave: No.

Chris: You win.

Dave: Yeah.

Chris: [Laughter]

Dave: I have now saved the company at least half a million dollars, and where's my reward? Where's my steak dinner? You know? I don't know.

Chris: Oh, that's funny.

Dave: Or I think of Melanie Sumner right now. If somebody is like, "Can I do this cool UI widget?" Just say, "No, it's not going to be accessible," or "We will spend a fortune making it accessible." Wouldn't that be cool? She should get points. Just say no. No.

Chris: I like the no being rewarded for no-ness. But yeah, there's just no -- that's -- it's funny, but it's also super true and there's no solution, and we're all screwed.

Dave: I mean you don't want to be like office wet blanket. That's a hard position. That's a hard social position on the social ladder.

Chris: Yeah. Maybe at leadership levels, though, it's okay, though. You know?

Dave: Right.

Chris: If you have a CTO saying no, maybe that's more clearly valuable or something or it's less questioned.

Dave: Right. Right.

Chris: I don't know.

Dave: All right.


[Banjo music starts]

Chris: This episode of ShopTalk Show is brought to you in part by another podcast, another podcast that just so happens to be even a little bit older than ShopTalk Show, and we've been here for ten years.

For over a dozen years, the Stack Overflow Podcast has been exploring what it means to be a developer and how the art and practice of software programming is changing our world. From COBOL to containers, from Rails to React, the Stack Overflow Podcast is the best place to learn what's happening in the world of software development.

Each week, you'll hear from working developers and leaders from top technology companies hosted by Ben Popper, Cassidy Williams, Matt Kander, and Ceora Ford. The Stack Overflow Podcast is your home for all things code. New episodes twice a week wherever you get your podcasts. Thanks for the support.

[Banjo music stops]


Chris: Well, we've got one here from Andrea Rowning. This is a scope thing we were talking about. About a month ago, we were talking about tags in CMSs. You know, Dave.

Dave: Mm-hmm. Mm-hmm.

Chris: You could tag your posts if you wanted to, which maybe you do.

Dave: I started to. I started to now. I'm getting better at it.

Chris: Yeah, and so you wrote one about that cool gopher site that released with the playdate. You could have tagged this post gopher. You could have tagged it panic. You could have tagged it playdate. You could have tagged it all those things if you wanted to.

Hopefully, there's some value in doing so. It does help people bop around the site a little bit. I have some questions in my mind about how truly helpful that really is. I'm not anti-tagging, I just think, at the end of the day, it's probably more useful for you than it is for users.

Dave: Mm-hmm.

Chris: I feel like users use search functions. They browse. But tags aren't exactly knocking it out of the park for UX reasons (if you ask me).

Dave: Mm-hmm.

Chris: Whatever. Not anti-tagging, but I just think they have limited utility in a way.

Andrea suggest, though, in WordPress land there is a field just built in right to all tags. They have a description field. So, if you want to use it, you can. Then on the template where you spit out tag template, you can just be like, "Does it have a description?" Yes, then echo it out.

Meaning that there's no additional technical debt really that you're taking on to make a tagged page more special. I think that's pretty cool, actually.

Dave: Mm-hmm.

Chris: So that if you really want to make a tag page, like the home base for this topic on this website, you're really just one field away from outputting, like, "Hey, welcome to the playdate page on Dave Rupert. This is all of the content that we've written about playdate, and you could even reorder it or something.

Dave: Yeah.

Chris: Make that tag page a little more useful. It becomes more of like a landing page than it is just an archive page. I think that's cool.

Dave: Oh, yeah. Because she was saying Advara has a tag for ensemble, which I assume is some sort of software. They kind of turned it into a page. It's one of the first search results on Google.

Chris: Yeah.

Dave: That's free money.

Chris: It can work. I think there's a mental flip that switches. The mental flip is I'm going to make this page useful. However I can think of to do that, I'm going to do that, but I'm going to use tags as the internal technology to do it.


Dave: I like that, and I could probably do that because my tags are--

The hard part I'm having is keeping a good taxonomy. I would pay somebody. I've tried to pay somebody. But I would pay somebody to teach me how to tag good, how to do tag good, and what word do tag good, and I want to know what word do tag good. It would really help me in pairing that down.

But I could also take those, and I could just have a dictionary. I go - whatever - tag-description.tag, and then I can echo that out. Maybe I'll do something like that to try to make my tag pages a little spicier, a little better.

Chris: Maybe. A couple of things I'd to this is that there's you, Dave, and/or a small team doing tagging.

Dave: Mm-hmm.

Chris: It's a different concept than opening up tagging to the world of user generated tagged content.

Dave: Right.

Chris: Very different.

Dave: Very different. Yeah.

Chris: Then trying to leverage control over that if you ever wanted to. Very tricky.

Dave: Yeah. Yeah.

Chris: Then there's the concept of ML or machine learning is often tag-ish.

Dave: Mm-hmm.

Chris: When it looks at content. This is how I understand the machine learning stuff that powers some of CodePen by the company stream. They look at lots of stuff that you've engaged with and they kind of make tags out of it, but if you look at the tags, you can explore this process. We've gone through this with them, and they're like, "Here's the last week of tagged content on CodePen." It's almost gibberish looking.

Dave: Really?

Chris: It's not how a human being would tag stuff. But it's not just ASCI characters or something either. You can tell that it's strings being chopped up into pieces based on--

Dave: Grouped in some kind of-- yeah.

Chris: But they're unintelligibly weird. But that's okay because science is being applied to these things. You almost don't want to wrestle control over it. Just let it do its thing.


Dave: Well, and somebody had mentioned that to me. They were like, "You can use -- there are tools that will summarize your post, your Markdown or read your Markdown, and give you some tags based on that," or I think that you can auto-tag in WordPress, but then even there's like Jekyll auto-tags, and it basically spits out the tags and figures out what you're writing about.

I think my issue is when that goes wrong, or I'd want to be able to set the confidence threshold pretty high. But when that goes wrong, that stinks. But I would just love to -- I don't know. I think I like Andrew's idea of don't just do tag pages. Do them but try to make them special. I like that.

Chris: Yeah.

Dave: If you could rank by popularity, I think that would be huge-o badujo. That'd be so good, but that's hard to do, right?

Chris: Mm-hmm. Here's one thing that I did on CSS-Tricks that I ended up kind of walking back but I wanted it to work. It just didn't work out quite how I wanted it to.

We hag tag pages. We even had category pages, too. If you're not careful, those are essentially the same thing, so careful there.

The encouragement is that you only have a handful of categories but have hundreds or thousands or unlimited or whatever tags.

Dave: Categories should be hierarchical (like folders) is how I think of it.

Chris: And they are.

Dave: Yeah.

Chris: But still, in practice, they're not really that different.

Dave: No. [Laughter]

Chris: [Laughter]

Dave: It's apparel, men's apparel, and women's apparel are all three different flat categories. Yeah.

Chris: Yeah. It's on you to make them different, and that's actually not a bad one, I think.

Dave: Mm-hmm.

Chris: I think those are okay as categories and nesting them kind of works. What I did, though--

One of the reasons I kind of didn't like tags, even though I had implemented at the time, you go to the tag and it spits out the tag big and bold at the top of the page. It even had reordering mechanisms in there, so if you landed on the React tag, you could see recent content. You could see the most popular content. You could see the oldest content if you wanted.

Dave: Mm-hmm.

Chris: There are ways. You could look at random content if you fricken' wanted to. None of those felt like runaway great to me.

Dave: Mm-hmm.

Chris: What I kind of wanted was curated ordering.

Dave: Yeah.

Chris: Like, this is our React page and I want to pick what you see first, and I might even want to write why you might want to see it first.

Dave: Mm-hmm.

Chris: Which ends up then that's a blog post.

Dave: Sort of, yeah.

Chris: Yeah, because I don't even care that it stayed up to date, but the way that I ended up implementing was basically post relationship fields where I could make a new -- and we called them -- guides, which was unfortunate because we had a lot of guides that were just hand-authored, just like a big old guide, and it made sense to use the word guide. Then we reused the word guide in this unfortunate way to mean these curated content things.

Dave: A series or-- yeah.

Chris: A series. Yeah, we should have picked a better word. Series might have been better.

Dave: Yeah. Yeah.

Chris: But you'd make a new one, and then you'd hand-pick the stuff you want.

Dave: Yeah.

Chris: This is what you should look at first. This is what you should look at. But in practice, it just felt like a tag page.

Dave: Mm-hmm.

Chris: It didn't feel -- the ordering was maybe better, but not that much better, and it didn't really open up any doors to talk about why I think you should look at this one first. It didn't feel very special.

Now there are these hand-created pages that needed to be hand maintained that did not update themselves that weren't really that special, and I think that's kind of why I ultimately gave up on them. They just didn't hit. What you're hoping for is that, dang, we have 18 posts that have variable fonts on them. We have lots of good variable fonts, and so nobody has handwritten a big guide to amalgamate them all together, but I wish that there was a URL that we could send people to and that would hit SEO wise pretty strongly that was the landing spot for variable fonts on CSS-Tricks.

Dave: Right.

Chris: We just couldn't. I couldn't crack that nut.

Dave: Yeah.

Chris: The way to crack that nut is to write the blog post that kicks ass. Don't write 18 blog posts. Write one that's amazing.


Dave: Write one. I wonder. I think Sara Soueidan has these, but the preview cards almost, like URL preview cards, sort of like a Twitter card but for content on your own site or somebody else's site or something. Kind of like a Notion when you put a URL. It's like, "Do you want me to create a cool bookmark thing?" Could you do that in a block editor and just write a bit, post a link, write a bit, post a link, write a bit, post a link with a little preview card kind of thing?

Chris: Yeah.

Dave: Maybe that's a compelling format.

Chris: Mm-hmm.


Chris: Yeah. Maybe what you need is flexibility. That you know that you're going to go on and off different formats and stuff, but maybe it just doesn't matter.

Dave: Mm-hmm. Yeah.

Chris: Just write about whatever the hell you want.

Dave: Right.

Chris: That's fine.

Dave: Hey. Yeah. Build the flexibility.


Chris: Flexibility. Here's one from -- speaking of blogging -- Tyler DuPre writes in. "If each of you were to start a blog on a specific piece of Web technology and you couldn't choose CSS, what would you choose and why?"

Dave: Hmm. SCSS. Gotcha!

Chris: [Laughter]

Dave: [Laughter]

Chris: Oh, man. That would not click these days, would it? Even though it's so highly used. It's one of those technologies that's probably huge, getting huger, and nobody cares about it.

Dave: Mm-hmm. Right. Right. NPM install chart is off the roof, man. It's just up and up, man.

Hockey stick. I have two choices. I can do this. This one is easy.

Chris: Web components.

Dave: This is the easiest question. Web components: I've already been talking about them.

Chris: Yeah.

Dave: But specifically, kind of like what we did with that details utils video, which is out. It took a few tries, but it's out now on the YouTube. Where you talk about a cool Web component that is just kind of a standalone, one-off Web component.

Like, "Hey, I used this the other day, and it's sweet. I don't. I would use it again." I think that would be a Web component review site. That's literally what I'm talking about, and maybe I'll do it. I don't know. I'm not that hungry for more projects, but that would be something interesting, a Web component review site, because I feel like there are a lot of people--

Chris: I like it.

Dave: There's a lot of -- I don't know. You want to sommelier to sort of just say, "Hey, this one is kind of good. I ran it through some accessibility things. It seems all right. Use that." That would be kind of handy.

The other one is RSS tricks, which we are working on in a GitHub organization now.

Chris: [Laughter]

Dave: We have an org, so you know.

Chris: You actually do, don't you? That's funny.

Dave: We do. We do. You're not invited, so yeah.


Dave: What do you know about writing a blog? Yeah.

Chris: Yeah.

Dave: Yeah, so RSS tricks as well. That's Alex and Melanie from the D-d-d-d-discord.

Chris: RSS tricks. It's funny. It's like, "Is your XML valid? Nailed it."

Dave: Nailed it.

Chris: [Laughter]

Dave: Well, surprise. In three months, it won't be. [Laughter]

Chris: Yeah. [Laughter]

Dave: Welcome to RSS tricks.

Chris: Yeah. You know about escaping.

Dave: [Laughter]


Chris: What was I going to say? Mine would be -- it depends on what the goals would be. If it'd just be like pure pleasure, you know, or would it be a strategic play in some way?

Dave: Mm-hmm.

Chris: Which is hard for me to escape my way.

Dave: Give me both. Give me both. Give me both.

Chris: I think if it was -- I don't know. It's hard for me to separate the two, actually. But I just said the word machine learning. Wouldn't that be interesting? Pick one that you don't know super well.

Dave: Mm-hmm.

Chris: Say, this is my blog about machine learning, and dedicate yourself to it, assuming that you don't fall off, which is a huge risk when starting stuff like this. That it could be your journey from real novice to real master. It could be your ticket to that, and that appeals to me.

Dave: Mm-hmm.

Chris: If I was just to go big into machine learning, there's value there. There are artistic reasons you could do it. There are certainly business reasons to do it. There are jobs in that world.

There's just like I'm interested in science and technology and that's a thing that's happening in that field. That could be really cool and interesting.

I'd worry that I would lose steam on it, so I'd want to pick something that I feel like could value me anyway. But I would like to go niche. I think going too broad is going to kill you.

There are lots of technologies I think that could use a niched out blog that's not connected to them.

Dave: Mm-hmm.

Chris: You'd think that there are thousands of blogs that write about WordPress news because it's so huge.

Dave: Mm-hmm.

Chris: And there's just not really.

Dave: It's like WP Tavern.

Chris: Yeah.

Dave: You know?

Chris: Right.

Dave: Yeah.

Chris: Which is weirdly owned by Matt, so a little weird. It's not talking about influence or anything, but it's funny that he had to make his own news site, in a way. There's more than WP Tavern, but none of them are incredible.

Pick something else then. What if you loved Astro and you say, "I'm just going to blog about Astro," and it could be tutorials. You could play with themes. You could talk about the news. You could summarize interesting conversations in their Discord. You could go crazy and just be the Astro person, and that's probably going to work out well for you.

Dave: Mm-hmm.

Chris: Somehow, some way, it's going to go good.

Dave: Probably works, yeah.

Chris: You could be a Cloudflare pundit. Just learn everything about Cloudflare technology. This one actually appeals to me. Post ideas, and post news, and post tutorials on how these things work. Do pricing comparisons. There are a million things you could write about, but then you're the Cloudflare guy and untethered from them, at least at the beginning, until they buy you, and then--

Dave: Yeah, until they buy you. Then they should. Maybe that's how you get into something like that.

Chris: Yeah, maybe.

Dave: I don't know. Yeah.

Chris: That's how I got a job at Wufoo a million years ago. I didn't do it strategically. I just said, "Oh, I love that crap. I use that all the time." Boom. Job. Got it.


Dave: Yeah. It's tough, too, to hitch yourself to a technology. I remember when I was in college. Chris, remember college? Twenty years ago, now.

Chris: I do.

Dave: Twenty years ago, my friend Brian sat me down and said, "You have to learn this. It's going to be Web development. It's taking over."

Chris: Uh-oh.

Dave: Brian was talking about Adobe Flex. [Laughter]

Chris: Oh... I was going to guess. I was going to guess.

Dave: Which was... Oh.

Chris: I would have got it wrong, for sure.

Dave: What were you going to guess?

Chris: Python.

Dave: Python. Yeah. No, close. I think he does Python now. [Laughter]

Chris: [Laughter]

Dave: Brian wanted me to do Adobe Flex, and so Adobe Flex was the successor to Flash, and it was made for building UIs. It's actually kind of, I think, what's under the hood of all of Adobe's applications. It's basically a very app driven UI framework. It had a UI kit kind of built in buttons, toggles, accordions, all that stuff. You just drag them onto a canvas, and then it spits out a little--

It was Flash under the scene, but it would just spit out a little movie, and that was your UI. And so, it had an action script and all that stuff in it.

I tried to learn it three, four times, but I just got distracted. I wasn't doing Web development full time, and so I'd just leave. Then come back, and I was like, "Flex is so cool." Do you remember mint.com? Do you remember that? It's still around.

Chris: Is that Shawn Inman's analytics thing?

Dave: No. No.

Chris: No?

Dave: It was bought by Intuit, but it was the budget app or whatever.

Chris: Okay. Yeah.

Dave: Mint.com, and you had this little chart you could drill down and see your finances and stuff like that. It was like, "Whoa! I'm drilling into my money," and it was so cool. Almost like a tree chart or something for your Webpack bundle.

Chris: Yeah.

Dave: It was cool, but then it was like that was Flex, basically. It just was making these compelling experiences, but it just didn't make it. It didn't win. Being the Flex guy probably would be okay. You'd make some money. But you wouldn't be there--

Your situation would change radically when Flex didn't take off. So, I don't know. Maybe don't be the -- I don't know -- whatever the off-brand Tailwind guy is. [Laughter] Don't be that. Don't be that. [Laughter]

Chris: [Laughter]

Dave: Or maybe be that.


Chris: There is a little risk there. [Laughter] I love David Walsh. We came up together.

Dave: Mm-hmm.

Chris: He was a Madison guy, too, like I was, and we both started blogs and did well. He was always such a positive dude and ended up at Mozilla and loved that.

Dave: Mm-hmm.

Chris: Just was, you know, "Blogging did everything for me." You know? But I always was like, "You ... a little too hard with MooTools in the early days."

Dave: You went too hard on MooTools. Yeah.

Chris: He was a big MooTools guy, and I knew it. I could just smell it in the water, like, this ain't the one, bro. It's not.

Dave: And you went jQuery, and you won, so there you go.

Chris: I went jQuery, but I knew, I knew when I picked it at the time, I picked the winner. [Laughter]

Dave: Yeah. No, see that's maybe the tough part is good technology. I mean even--

Chris: That's okay, but he liked it. Don't force yourself into something you don't like, but picking the runner up is rough.

Dave: Even with Web components, I'm a little like, "Is that really the best?" You know?


Chris: Yeah. I worry. I worry. But betting on a Web platform is usually a pretty good bet.

Dave: Usually. Yeah. Accessibility Project, we did or that's still going, but that was accessibility focused. I would do one about security. I think there needs to be a little more security education. Just accessible security information because right now it's like--

Chris: Yeah. You've got to fricken' know what you're talking about, though. That's what scares me.

Dave: You do, but even just stuff like nuances and stuff.

Chris: Right.

Dave: Even defining the types of attacks that you have to look out for, or whatever, or what you can do. Don't use inner HTML unless you know what you're doing or you trust that content or something. There are so many of those things that you need to know that don't come in the manual with the job. No one tells you when you get the job that it's in the manual. I wish--

Chris: That's true. It is in this weird bucket of learn on the job things, like, "What did you do there?" At least sometimes frameworks help. Rails notoriously escaped everything and React has dangerously set inner HTML. [Laughter]

Dave: Right. Right. Which I think that was a good play because I think people were using it and they just were like, "Well, well, well, let's not use that."

Chris: I know. I'm always partially annoyed when I have to do it and then I'm like, "Yeah, yeah. Fine." [Laughter] I get it.

Dave: Well, and my issue is sometimes you -- like, "Oh, dangerously set inner HTML. That's awful. That's terrible. Your render function works perfect."

I know they're building out a little AST tree or whatever, but I'm just like, "Okay, but why, if I put the word render in front of it, it's all cool, we're all cool, we're cool, you're cool, I'm cool?"

Chris: [Laughter]

Dave: But if I don't -- and then in Vue land or, sorry, Lit land, if I do the HTML tag template literal, why is that cool? I think it does some sanitization in the process of building that template. But why is that cool?

Chris: Maybe.

Dave: Why can't I just do that?

Chris: I know what you mean, though. Yeah. Sometimes it's my own fault, even. I'm like, "Oh, I can just pass in some JSX as a prop, and then it will just - blah. Then I can just spit out children or whatever that prop was that I wanted to otherwise." It's just kind of reminding me to do a good job, which I don't mind. [Laughter]

Dave: Yeah. Yeah.

Chris: All right, Dave. I know you've got a thing to go to.

Dave: Yeah. I've got a hard stop here, so I apologize. We do have some more questions. But, hey, as always, dear listener, please send in your questions. We love them. They're fun. It's better when we talk about your stuff, so we love that.

But thank you 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 Twitter for 16 tweets a month @ShopTalkShow.

YouTube.com/shoptalkshow for new videos. We're doing them. There are two up this week, or last week, so we'll probably do some more. We just need to schedule it out.

And then, what else do we got? We got patreon.com/shoptalkshow for the D-d-d-d-discord, which is popping off.

All right, Chris. Do you got anything else you'd like to say?

Chris: ShopTalkShow.com.