Episode 500!!! And it has been a journey! Nearly 13 years ago we started this podcast and as of today (this episode) we’ve officially shipped our 500th episode. As a companion to this episode, Jerod and Adam shipped a special Backstage episode where they reflect on 500 episodes. And…not only has it been a journey for us, but it’s also been a journey for our good friend Chris Coyier and CSS-Tricks — which he grew from his personal blog to a massively popular contributor driven model, complete with an editor-in-chief, a wide array of influential contributors, and advertisers to help fund the way. The news, of course, is that CSS-Tricks was recently acquired by DigitalOcean in March of 2022. We get into all the details of this deal, his journey, and the legacy of CSS-Tricks.
Square – Develop on the platform that sellers trust. There is a massive opportunity for developers to support Square sellers by building apps for today’s business needs. Learn more at changelog.com/square to dive into the docs, APIs, SDKs and to create your Square Developer account — tell them Changelog sent you.
FireHydrant – The reliability platform for every developer. Incidents impact everyone, not just SREs. FireHydrant gives teams the tools to maintain service catalogs, respond to incidents, communicate through status pages, and learn with retrospectives. Small teams up to 10 people can get started for free with all FireHydrant features included. No credit card required to sign up. Learn more at firehydrant.io
Sentry – Working code means happy customers. That’s exactly why teams choose Sentry. From error tracking to performance monitoring, Sentry helps teams see what actually matters, resolve problems quicker, and learn continuously about their applications - from the frontend to the backend. Use the code
CHANGLOG and get the team plan free for three months.
Retool – The low-code platform for developers to build internal tools — Some of the best teams out there trust Retool…Brex, Coinbase, Plaid, Doordash, LegalGenius, Amazon, Allbirds, Peloton, and so many more – the developers at these teams trust Retool as the platform to build their internal tools. Try it free at retool.com/changelog
|Chapter Number||Chapter Start Time||Chapter Title|
|1||00:00||Welcome to 500!|
|5||04:44||People give up too early|
|6||07:01||Are interview podcasts played out?|
|7||08:42||Is 500 episodes social proof?|
|8||13:51||When Jerod discovered Chris|
|9||20:13||When Adam discovered Chris|
|10||26:00||Wufoo happened because of CSS-Tricks|
|11||28:31||How many years of CSS-Tricks?|
|13||32:08||Was there ever burnout?|
|14||38:27||It was time to walk away|
|15||39:52||Chris holds grudges (forever)|
|16||42:23||Seeking counsel and valuing CSS-Tricks|
|17||44:00||The big announcement|
|18||46:13||Concerns about selling?|
|19||51:21||Where will Chris write now?|
|20||52:27||Transferring assets like @css on Twitter|
|21||56:18||Regrets and second-guessing|
|22||1:03:47||The next big thing at Codepen|
|25||1:08:36||What is Codepen?|
|26||1:15:34||The revenue drivers of Codepen|
|27||1:20:26||Front-end and CSS Chris is excited about|
|28||1:25:21||Does :has make Chris rethink everything?|
|29||1:26:17||CSS-Tricks design history|
|30||1:28:41||The process to re-design CSS-Tricks|
Play the audio to listen along while you enjoy the transcript. 🎧
Chris, welcome on the Changelog, man.
Hey, thanks for having me. This is huge. I feel like a massive congratulations is due for y’all. 500! Wow!
500 is a big number.
It is a big number, because you’re weekly, which means it’s like 10 years, ish… You know, with 52 weeks in the year
Right. It’s actually more than ten years, because we’re weekly, but we’re not consistently weekly.
We are now, but we weren’t earlier.
Yeah. For a while.
Well, as you know, I do a show, Shoptalk, with Dave Rupert, and we’ve just crossed that milestone ourselves. We’re on 525 or something, and similarly, we are not perfectly consistently weekly over those ten years, but pretty close… So yeah, we’re both celebrating over a decade of speaking into little microphones, for both of us.
That’s crazy, right?
It is crazy! I didn’t turn it into a freakin’ empire, like y’all did…
Well, we’re trying…
You have an empire of your own.
I think you did in other ways, though… So when did you guys begin Shoptalk though? We started November 2009. And I think it was around the same timeframe.
I can’t remember the first one, but thanks to the power of URLs, I could probably figure it out… Because it would just be shoptalk.show/001, I guess…?
Well, it’s gotta be 2012 if you just hit a decade.
Yeah, 2012… But January 12th. Huh… Pretty good.
What was the plan then? Was the plan to podcast for a decade, or were you guys just “Let’s hop on the mics and talk”?
I don’t know. I’ve never planned the demise of my company on day one, you know… Although maybe we should.
Well, you’ve gotta have some sort of goal, right?
Yeah. But you know, there’s no shame in it. People quit doing crap all the time, you know? You just let it flitter away… But I tend not to, you know? Maybe that’s some part of my DNA.
Yeah, I do. I do. For better or worse, you know? But I feel like people just – this is an abstract thought, sorry to get deep on here right away, but… I feel like people give up a little too early, generally. They’re “Oh, this startup isn’t working. I’ll throw it into the dumpster and do another one.” Which can be smart, because I think there is probably a point at which you’re like – you realize you haven’t hit product-market fit, and you need to do a thing. And that’s smart. why would you, you know, grind and hustle away on something that you have some evidence isn’t working? But do you…? You didn’t work on it hard enough. Whereas I’m the opposite. I’m “I will never throw this away. I will grind on this thing forever, until everybody knows it.”
I think that’s especially true with podcasts, because they’re slow burns. The growth of a podcast – I tell people who are getting started, “Don’t compare your podcast to a YouTube channel”, because the growth is going to be slow and consistent. People will do better than others, but don’t look at your download numbers and just like immediately give up because you’re only reaching 100 people… Because a lot of people never reach 100 people an episode. But you just keep doing and keep showing up, and as long as you’re enjoying it, and you get the process, you get better, better, better, it grows and it just snowballs over time.
Yeah. Hopefully, you don’t care that much. You know, I feel like I’ve seen some success in that regard, of like “I’m doing it because I want to be doing it. Because I like to be doing it. Not because I’m obsessed with some metric.”
I talked to a guy yesterday that wanted to start one for our town, in Bend. We’re like a hundred thousand people(ish) in Bend, and I don’t think there’s one, in any niche, for our whole city. And I was like “Oh, that’s an awesome idea, actually…” Because there’s enough Bend pride and stuff that if you did it and like made a food one, or anything, that you’d get a bunch of people listening to it just for the but – you’ll never get the numbers, because you’re automatically geographically-niched, so it’s small. So you’d better love doing it, because–
Then you’ve gotta do it for the love of the community really, at that point; the payoff is the community building, and then the small business uplifting. Like, what if you helped a small business not quit, because you brought a little bit more joy to their business, and a little bit more business to their business. You know what I mean? And they saw the hope, I suppose, of their possible future, where they may have quit… Or did it worse, I don’t know. You need a curator.
Okay, so two questions here for you all, because you’re podcast heroes, too. So number one - like, the interview you’re having me on… This is an interview show. A lot of your podcasts have guests. Is interview just the way to go? Or is it played out?
I think conversation, really. We’ve – it always has been interview, but I feel like it’s never like “Let’s ask a question”, and it’s never really been a volley kind of interview scenario for us. It’s bit more of varied conversationally. And then in a lot of cases we’ll meander through certain topics and whatnot. So I think –
We didn’t tell you this during the pre-show, but we often tell our guests we don’t have a set of index cards with questions written on them. Like, we don’t prepare an interview like you might if you’re working for 60 minutes, or 20-20 or whatever they do in the professional interview world. Who’s that guy for the Actor’s Studio, where they ask the same questions at the end? Like, “If you showed up in heaven, what would you say to God?” What’s that guy’s name? James…
I know what you’re talking about, but it’s not in there anywhere…
[08:03] He gets spoofed on Saturday Night Live, and stuff… Famous interview. We don’t do it like that. So I guess we don’t really think of it much like an interview show. It’s more like “Hey, let’s find interesting people and talk to them.” I don’t think that ever gets old. So has it played out? I mean, it is kind of a standardized format… But it’s good. It can be good.
Yeah, I know what you mean. I think that off the cuff thing is fun, because then it gives you this vibe that you’re driving around in your car and you’re just a part of the conversation too almost, because it’s so off the cuff; it much feels like you’re just sitting – you’re all on freakin’ barstools, or whatever. That’s pleasant, it’s heart-warming.
Okay, so 500 then… Is that social proof? You know, are there people finding this show on their podcatcher of choice, and they’re like “Look at this show. Clearly knows what they’re doing. I’m going to actually subscribe to it because they’re at show 500”? Or are you like – I’m sure there’s a mixture of both, but what’s the bigger percentage here? Are they like “I’ve missed the boat. They’re gonna have too many inside jokes… They’re too deep into their thing that I’m not gonna subscribe to that. They’re too far”?
I don’t know the answer to that. I think the second one makes less sense because it’s an interview show. Like, we don’t have – I guess Silicon Valley is the only running theme at this point, Adam. We don’t really have inside jokes, we don’t have – there isn’t much back and forth between Adam and I. There’s always a guest, there’s always somebody else we’re talking to, and we’re so curious and interested in them that – of course, eventually, our personalities show up and are there through our questions and through our conversation, but I think if they thought that, it would be incorrect. But maybe for a show more like Shoptalk, where it is you and Dave talking - you guys have guests as well, but not all the time… And it’s like, you guys have just been talking for ten years, the two of you, and that is the show, right?
It is, yeah. We probably have more of that kind of repeated “You know, we’re not going to talk about X, because we talk about it all the time” kind of thing, which makes it not a good entrypoint show, probably… Which is a little unfortunate.
So what I think about it is because are you missing out then on some like level of excitement? Like, you’ll never get the benefit from that hot, new, fresh, exciting spirit that you can when you launch something.
I don’t know. That number - I just feel like it’s a badge of pride, and it’s a badge of like “Are we just dinosaurs?”
Well, that’s funny, because in the pre-show before you joined, we were just talking about a thousand. You know, 500 – I said, if we’re gonna celebrate anything, it’s gotta be 500, because there’s no more bigger numbers until 1000. Like, who’s gonna celebrate 750? So 1000… That’s a decade from now. And by then, we’re in our 50s… Are we even still – does podcasting still exist?
I would assume that you’re going to be.
Are we so dinosaurs that – can we still write software? I’m just being tongue-in-cheek a little, but…
Yeah, no, audio will never die. Just like a paragraph will never die. I mean, come on. You might be listening to it in a different – you might be listening to it on your spaceflight, or whatever…
Space flight… [laughs] I’m heading to Mars, listening to the Changelog…
We’re gonna have to flesh out our neckbeards, you know?
Yeah, maybe. I don’t know. Anyway, I just think it’s kind of interesting. So if you’re new listener friendly, always, every episode is as good as the last as a place to start. You have to educate people then.
To that point - so in the intro, we do say “For new listeners, go here to subscribe.” For long-time listeners, we have a membership, so if you want to level up and get closer to the metal, there’s an ad-free version, there’s some stickers that are yours, just waiting to be had… We’re gonna throw some other bonuses in there in the future, and stuff like that… But you know, we do –
In the same token, if there’s like three episodes of some podcasts, I probably also won’t subscribe to it, because I’d be like “Ooh, that’s gonna be a little rough…”
I never thought about us having such a deep well though, scaring people away, being episode 500…
I just wish I could tap into some excitement – I wish that we could like do a show on Shoptalk and have it benefit from that, you know, that launch kind of feel… And I just don’t see a way to do it
Are you guys getting bored?
No. I just wanna – you know, you can’t help but think about… Like a product release - a product has a release; you do a new feature, and then you go “I’m gonna market the new feature!”
[12:23] Well, we just added something new. We added a Monday news brief, which is like four to eight minutes… It’s just me, it’s scripted, it’s got audio stuff coming in… And we’re just like talking about the news, what’s going on, and we just get in, get out…
You’re a network, so you get to benefit from that. Like, “We have a new show on the network”, which - that’s pretty cool.
Yeah. And we get to pull in stuff from around our other shows as well from time to time, which helps things kind of cross-pollinate and be interesting, hopefully.
That’s the trick, you know… Because you asked me on to talk about CSS-Tricks generally…
Yeah, let’s stop talking about us, man…
No, but I mean – I think that’s interesting. I never had like a network, really, but in effect, I sort of did, because I had CSS-Tricks, and Shoptalk Show, which are not related super-directly, you know… It wasn’t Shoptalk Show by CSS-Tricks, or anything. They felt like its own enterprise. We did the accounting separately. And then CodePen, which is very different from both of them. But I could sell across them. They were mine still effectively, and that was cool for advertising, because I could put it together and make it look like a network buy, essentially. And that was highly, highly effective.
Yeah, we have that across our own shows. We don’t have different properties… Ours are, I guess, more tightly aligned in brand than yours are, even though you are kind of the brand that ties all three of those together.
Yeah, you still get to say vie across multiple shows.” I’m sure it doesn’t hurt.
Well, I wanted to go way back, because I like discovered you as just a guy on the internet a long, long time ago.
So long ago.
And I’m wondering when Adam discovered you… I’ll tell you when I did, because I don’t even remember what you were doing… Was it a video podcast? Was it on YouTube? I don’t know. I didn’t discover your website. I first discovered you in a video. You were basically like doing a Twitch stream, but this was like way, way, way before Twitch existed… And you were just like building a sidebar, and I remember you had a drink there, maybe it was water, or something… But you were just like hanging out on a video, building a sidebar for a website, and I remember it was kind of the first time I saw somebody who just like shared their whole screen and did stuff. And the one thing that struck me, I’m like “This guy has so many things in his dock.” I just couldn’t believe your dock was just–
[laughs] You should see it now. It’s double.
And you had the cool – like, all the Adobe apps icons, you know… And I was like, “This is very interesting. I’ve never seen something like this.” And I think it might have been – did you ever do like a video podcast of you coding, back before YouTube? Or maybe this was just like very early.
Oh, yeah. Well, for sure. CSS-Tricks has a – you know, you can go there still, CSS-Tricks.com/screencasts. I think that’s the URL. Or at least it’ll redirect you to where it needs to go.
And did you syndicate those via – like, they would be in the iTunes podcast store?
They were, and still are.
Yeah. Like if I were to – you know, I mean, CSS-Tricks has sold to DigitalOcean, so there’s new people at the helm running it, although Jeff Graham is there, went to DigitalOcean at the time of the sale. He was the lead editor for me, and he’s the lead editor now. So it has some of the same lineage and stuff, which is pretty cool. But it’s a WordPress website. If I were to go in there and say, “New screencasts!” and put all the little data in, and stuff - this is so old. Like that time that you’re talking about… Like, when I first started it, YouTube probably existed, but I for whatever reason didn’t seem like I would just go all-in on YouTube. It just didn’t feel like that was what people did. So I’d shoot the video and get some lmp4 or something, and then find somewhere to host it, which unbelievably to me, I was able to figure out S3…
I’d get the freakin’ video on S3. And so when I post it from WordPress, there’s like custom fields in WordPress… And not like cool, advanced custom fields. I just use the old-school, like built into WordPress, like little dropdown menu thing, and made one of them for that S3 URL. I named it “URL to video” or something, and then I pasted that in there. And then when you visit a Screencast page – and there’s other metadata too, like how long is it etc. Then I made another custom post type of thing in CSS-Tricks that would create an RSS feed just from screencasts, and then it would grab all that extra metadata stuff that was basically defined by like whatever iTunes wanted… You know, like when you craft a feed for Apple, it has to have all that extra crap, and the XML… And I just put it all in there, and then submitted it to Apple, and they took it, and it’s still on there to this day. So if I publish a new screencast, it updates that RSS feed and it goes to Apple. People don’t really – it’s just not a thing anymore. Like, how did video – video podcasts just died.
It’s interesting, because they launched right alongside audio podcasts. Like, from the very beginning, Apple was like –
Yeah. To this day, you can still do it.
I didn’t realize that… Because it’s crazy how audio took off inside of iTunes back then, and video really didn’t. And now we’re kind of in a sense coming full circle, because now we have like Spotify adding video podcasts back in, Apple started talking about them again… Of course, there’s a proprietary – Spotify’s is proprietary; you upload the video into Spotify, I believe.
So it’s lame.
So it’s lame… [laughs]
And everybody’s like “Why?” Because YouTube exists. You’re like, if I feel like watching videos, I’ll go to the ultimate home of all video on the web, YouTube, and it’s just a damn masterpiece over there. I hate to admit, it’s a lot of control for them, but there’s great – I watch a lot of YouTube. I’m not afraid to admit.
Yeah, I do, too. I’ve got many a playlists, many a subscriptions, many of hobbies are in. If you wanted to know who I am, you’d probably watch my YouTube history, more than any other search.
Yeah, there you go. Because it shows my – don’t you go on little benders? Like, I’ll get excited about some channel or something and watch like a lot of it, and then I’m off it. I’m like “Oh, that was a weird phase.”
Yeah. I’m like “Get out of my feed.” Because then the algorithm will get you…
Well the thing is, it like feeds you. Once you go down this rabbit hole, it just keeps feeding you that. Eventually, I’m like “No I don’t want – I just was curious. I’m not interested”, but it just keeps feeding me that thing. Then I start to get mad.
Yeah. And then you dip your toes again, and then you’re locked in forever. For a minute I got into watching people that are really into Lord of the Rings, like explain some intricate detail of what would the show have been like from the Dark Lords’ perspective, or whatever. I watch one, and it’s just endless… I’m on a real bender right now watching guys solve Sudokus, and like think through their process, because their brain is like on display. They’re like “This, this, this…” I’m really just into it for a minute. I know it’s a fad, and I’m going to stop watching it, but then the algorithm will show it to me for the next couple of years, I’m sure…
Anyway, we got off the rails there, but yeah, CSS-Tricks had screencasts… I’m hesitant to say pre-YouTube, because I don’t know the date that YouTube launched, but I hosted them myself.
Pre-YouTube would have been at least before 2007, right? Because YouTube was around 2007. I remember listening to Leo Laporte on a podcast, talking about the internet pipes. Like, literally, that was the ongoing meme at that – I mean, it’s like the origins around thereof of the internet pipes being–
Well, that one politician called it a series of tubes, didn’t he?
Exactly. A series of tubes, yeah. That’s what I’m referencing, sorry.
I think of Leo Laporte too, because they did video way back.
In a nice studio.
And he later admitted that whole deal was probably not worth it. But now he’s probably happy he did, because he’s kind of gone full circle, and video is important again.
For me though, Chris, I think – I don’t know if this goes back before your Screencast days, or right around the same time, or when Jerod caught up with you, but I remember you before – you worked at Wufoo with Kevin Hale. This is like LessConf days, so this is like 2009, 2008, 2007 timeframes… I don’t know when you began CSS-Tricks, but I recall you being in the footer. I believe you were in the footer, like a picture of you…
I believe it was in the footer of CSS-Tricks, down –
Oh, of CSS-Tricks, yeah.
Yeah. Not in the footer of Wufoo.
Yeah, if you really care to look at that, you can go to CSS-Tricks.com/design-history, and it’ll show you all the different versions of it… And there’s definitely more than one version where I put my own face in the footer…
But yeah, I’m still not above that. I think that’s kind of cool, to see whose website it is, you know…
Let’s see which one I remember most… Because that would at least go back to the legacy.
Yeah, it’s almost like most of them, I’m afraid to say, have me down there somewhere…
So v18. You had 18 different major redesigns throughout, huh?
Yeah, I think it’s technically 19 now. So I would only put it in the history once 20 came out, but…
It is in new hands now.
Well, for me it goes way back to even – okay, I can’t see version one. Version two seems a little foreign to me, so I want to say it was version three… But maybe version two.
That was that era, for sure. Those were really early days.
Yeah, this looks familiar. Yeah. I mean, you had the full-on tabs… You were doing like sliding windows with the tabs, and stuff like that, with like an image, all that stuff… Gosh, tabs back in those days was a challenge. Like, visuals… That may have been why went to your website…
Freakin’ everything was.
…because you were probably explaining sliding windows tabs or something like that, with CSS.
Yeah, maybe. I don’t know. I don’t know how I fell into that LessConf crowd. I think it was probably through just being in the South-East, in Florida… And then Wufoo was part of the – you know, they had this magazine, TreeHouse, but not the TreeHouse you think of… They had this other web design magazine TreeHouse that they did, that was full of that, like, how to do stuff on the web. And then they stopped doing it, for whatever reason. So that was our overlap, and probably how we knew each other, or something. But me joining them was fun, because they were a bigger part of the entrepreneurial crowd. They were at Y Combinator, so it was that type of thing.
That’s where Kevin’s at now. He’s a partner, I believe, at Y Combinator.
Yeah, he was for a while… I don’t know if he was or still is. He could be. I don’t know what Kevin’s doing, I haven’t talked to him in a long time.
I don’t know what partner designates necessarily, but he’s in there. He’s in the mix. I see him on their YouTube channel, I see him advising startups and entrepreneurs and founders etc. I still pay attention to Kevin.
Yeah, he was always good at that stuff.
Yeah, that’s how far back it goes for me. So basically, the beginning, you know; roughly the beginning-ish…
Roughly, but I got my job at Wufoo because of CSS-Tricks.
Is that right?
I would not have gotten it if CSS-Tricks didn’t exist, because I used CSS-Tricks to talk about Wufoo sometimes… Especially in those really early days of CSS-Tricks I didn’t really have a big plan. I was just writing crap that – because I was, you know, a professional web designer. I had clients, and I would do professional work. I wasn’t just – I never really did freelance. I was I was just in the thick of –
This began as a personal blog, right? It was a personal blog. It was never like a network of many authors, and…
[24:06] No, and it could have stayed that way. I would always write very personally; you know, even in the later years when there was other authors, and stuff… I write whatever the hell I want on there. And I wanted to keep that spirit. I wanted to do that on purpose, so it felt like a blog.
That, I believe, is the beauty of it, though, was that you could explore… So I’d say “I don’t know you that well. I know of you.” We’ve met in-person one time. I’ve never seen you on video or done a podcast with you, so my knowledge of Chris Coyier really is mostly, you know, through just knowing of you, really. But I would always say that you’re an explorer; you’re a curious explorer, willing to go to the ends to eke out the finite things of beauty in web design and web development. And then CSS-Tricks is a manifestation of you sharing that. That’s how I would describe you and what you’ve done with it.
Seems fair to me… [laughs] And then it just turns out that when you post like “This is how you do X, Y and Z” with like code snippets and examples, it just so happens that that stuff is like pretty juicy, SEO-y stuff.
Right. And it builds over time. It pays dividends years later.
Yeah. And I was never, never anti-advertising. To this day, if anything, I’m pro advertising, I like that companies get to use content sites to reach customers, because they’re too busy building their product. So use me. I’ll be there; I’ll get the people and I’ll show you – you know, I’ll tell them to use FreshBooks, or whatever… And that felt good to me. That was from early on CSS-Tricks. I was making money on the side doing it. And that seemed to be going up and up and up. There was the growth of the money – it grew with everything else that was growing, the audience and traffic and such.
That’s awesome. So you said Wufoo probably wouldn’t have happened if it wasn’t for CSS-Tricks… Like, how many different things can you substitute for Wufoo? Like, how much has happened in your life because of this website? I mean, probably–
All of it.
Your whole life? What do you mean all of it?
Well, my professional life, for sure… So I had CSS-Tricks, and people were reading it, and then they’d know me, because my mug’s in the footer… And the web was smaller back then, you’ve kind of got to remember. There was just not as many people; there’s a lot of knowing who each other were. Like, if I got two comments from the same person, I’d be like “Oh, there’s Jerod again…” For sure. It just felt smaller. It felt like – I hate to say it, but a little more positive, too. These days you’ve really got to be almost like careful and protective about how you engage with the wider internet, because it’s just toxic, or whatever the right way to talk about that is… There’s not just like overwhelming positivity; there kind of was in the early days of the niche web design world.
It was just all fun, all the time. Maybe I’m glossing over, or seeing rose-colored glasses, but it was a small community of people having fun writing about the web, and stuff. And then as it grows and gets as big as it is today, there’s just like less consequence for being a jerk.
It took really good intention to crap on somebody’s website. Like, to go to a blog post and crap on your blog posts would take a lot of intention. Whereas in a Hacker News posts like that, it’s pretty easy - or even a Twitter thread…
Yeah, you can just run your mouth off, and there’ll be no consequence for doing it. Whereas if you were to do that in the early days, it’d be like “Well, bye… You’re just not invited to our cool club anymore.”
Well, I think we’re all trying to grow our networks then, too you know? Why would I destroy my own personal future possibilities by crapping on your blog posts? That was the early blogosphere; the blogosphere we talk about - that’s what it was.
Yeah, you would just be out. I don’t care what you do after that. After I already know you’re a jerk… And I hold spite like that. I still do. If you said something jerky to me, you are off the list. [laughs]
[28:09] Yeah. It is interesting to think though, that – well, as you had said in your own words, all of it can be pinned back to the road you took, the journey you took with CSS-Tricks. I mean, that’s – congratulations. I mean, for putting in all the work… I mean, we talked about quitting early, you’d said that, and the grind… I mean, this is – how many years of CSS-Tricks…? What’s the addition? When did you begin it? What year? What’s the combination of years? How much dedication did it take?
‘07 was the first, so five years older than – you know, it’s 15 years instead of 10. You know, just a little bit of extra there. And those first five years were so small, though, that by the time 2012 rounds around, CSS-Tricks was already - not big, but like big enough to matter. I was already definitely getting invited to speak at conferences quite a bit, and stuff, which would have definitely never happened without CSS-Tricks. And then conferences have their own kind of little snowball effect to them, or at least they did. Things are –
They’re different, yeah.
Things are weird now. Who knows what’s – yeah, but then it was kind of like “Wow, you’re a conference guy.” That opens doors of itself.
There was less conferences then though…
You had A List Apart. That was like the premier place to be. I’m sure you spoke there. There’s just a lot of conferences now. Right?
Yeah. And that one was a milestone for me, because you don’t just get invited to that without having done anything else. You know, by the time you’re at An Event Apart, you’ve already done a bunch of – you’ve done something to, I don’t know, earn your spot there, in a way. That one still feels special to me. I’ll be at that one this year for one of their shows, and it still feels cool.
Yeah, yeah. But that opens other doors. Like, if you were to do consulting or whatever - I didn’t, but I could have… You know, because people know who you are then, and all that. So I’ve never had a professional door open to me that wasn’t opened essentially by CSS-Tricks.
So 15 years and then you sold it… Were there any moments along the way where you were considering either selling it, or stopping, or taking an extended hiatus? We were talking about Jason Kottke just took an extended hiatus recently from kottke.org, and he’s been doing it for like 20+ years… And I was curious – I would love to hear the motivation, but also…
I wonder how he did it. He never had ads, or nothing. How do you make that work?
Yeah, he went with the Support Me style. It must have worked.
That never works. [laughter]
It’s true. It’s always a bonus. It’s for – it’s really to give your most loyal fans a way to be a little closer. Make it beneficial for them, give them something special, and you know, pay for Slack, or pay for Discord, or whatever it might be, the cost money to make it happen. It’s usually a breakeven scenario. It’s never like “Oh, we’re getting rich from this thing.”
Yeah, I’m a fan of the model. I just mean like, dude had a family and lived in New York City…
Which has the highest rents ever in the world right now. Manhattan is like 5,000+ for any given rent.
Yeah, that’s whack. So that’s a lot of members, you know… Despite him being like the world’s best blogger, which - you can have that crown, Jason. Here you go. It still is a lot of money for just membership-only, so I don’t know, maybe…
So did you face a burnout moment, or a “I’m ready to–”
You were just steadfast. Like a robot. Like a machine.
I generally had some perspective, you know… It was mostly fun. And I feel like people have written a lot of good stuff about burnout… Like Sophie Shepherd’s “The Road to Burnout is paved by context-switching”, and stuff like that… That would sometimes get at me, like I’m doing too many different things… But I’ve always kind of thrived on that. That one doesn’t bug me that much. I’m kind of a multitasker because I want to be…
[34:04] But the burnout - I think more comes from working super-hard and not affecting any change; like, not shipping, or not having any control, or feeling like you’re spinning your wheels on stuff… And since I’ve always been the guy steering the ship, I just didn’t – it never felt that way. If I want something to change, I change it, and I kind of embraced that.
So I never really did feel burnout, although I think I was getting tired. In the end – I mean, if we’re driving to the point of “Then why did you sell it?” it was just… You know, the offer was negotiated well, I thought the buying company was going to do a good job with it, and they seem to be doing fine with it… So it just was kind of like – it’s not like I’m committed to everything for life.
Well, somebody you had said in your post was that it had gotten to the point where it was more than one person’s job to run it, basically. Like, it became more than you actually thought you would ever have to do to maintain it, was the sentiment I gathered from that paraphrase of what you said.
I think that’s true… Because it already had Jeff running lead editor; that was dang near a full-time job. He did other things too, just because – you know, CSS-Tricks made money, but it didn’t make so much money that it could support a large full-time staff. That just wasn’t in the cards at its scale.
But yeah, the bottom line though is CodePen. That’s a bigger company, that I’m a co-founder of, so I have a real responsibility to the other guy, who’s Alex Vasquez, who’s my good friend and co-founder of that company, which I see bigger potential in, and is already a much bigger product, and all that… So to have this thing that’s ostensibly a side project that’s as big as CSS-Tricks got - it started to weigh on me almost like a “This isn’t fair to the other company” kind of emotion…
You were the main voice.
Yeah, I wrote for it, I approved everything, I ran all the advertising… I mean, I did a lot. In the end, the thing that got outsourced the most to Jeff was just like “What’s gonna run and when?” and make sure the posts are all polished on the way out. That was just a ton of work. But that I was able to outsource, thank God; otherwise it really would have been too much.
But then in the end it just felt like too much, because – even stuff like advertising. Y’all know what work for these advertisers. All these back-and-forth emails, and approvals, and…
A lot of details.
Yeah. And then I have to come into this booth where I’m sitting right now and just be like “Blah-blah-blah, it’s the best thing out there for memberships”, or whatever…
And I was happy to do it, because I liked it, but I had to research who they were; I didn’t even always know who the advertiser even was necessarily.
You had to care, Chris. You had to care. And it’s hard to do when you’re so busy. Because you do care, and you wanna care, but you can’t care about all the details when you have a multi-faceted responsibility tree like you do.
With CodePen, if they needed you more and you had to care for these details, and CSS-Tricks, and you just couldn’t show up, or as well as you wanted to, at some point, like you had said, you kind of do a disservice.
It’s different too if CSS-Tricks has a longer life possibility than what you can give it currently. Because if you didn’t do this acquisition, you would kind of keep going down that road. But if you gave it more room to grow, outside of what you can give it, you actually allow it to do more, because it actually can do more, right?
Absolutely. I think that’d be kind of cool. Another version of it is let’s say I’m just like “You know what - I’m gonna effectively sell it. I wanna step away all the way”, where I’d literally basically don’t even have a say anymore. What you need then is just like a product owner, or something, that you really trust. And I would totally have trusted Jeff to do it, but it just didn’t come to that point where I had to have that conversation with him, like “Do you want this?” And then “What can I offer you to make it worth it?” And then still, you still own it. So if something were to happen to Jeff, or whatever, guess who’s right back at the helm?
So it’s kind of like – I don’t know… It felt a little better to walk away a little bit. And the buying company was DigitalOcean, known for – obviously, they’re a web host, but they have made their business model content. So it’s like “Oh, they want to buy more content. Doesn’t that make sense?”
It seems like a super-smart buy from them. Did they approach you, or how did that go down?
Yeah, they did. They emailed me… It was kind of a two-pronged thing, where they signaled some interest early on, and then – I don’t know, I can’t remember exactly how that first conversation went down, but it fizzled out pretty quickly… And that’s not terribly rare; I’ve had plenty of those throughout my career. It’s like a little bit of interest, and a little bit of chatter, and then it goes away, and then you just kind of shrug and move on, because you’re like “Whatever. They obviously weren’t that serious.”
But the second time around I think they had almost some level of guilt or something about it… Because it was kind of like a “Oh, sorry about that last time. This is where we were as a company then. Let’s contrast that to where we are as a company now”, and they painted this picture of like “We just took this huge round of funding, and this is our new stated business model, and we have such and such people in charge, that believe X, Y and Z…” So they’re trying to sell that the second time is different.
So you give it more attention.
And I was like, “That’s cool…” It seemed almost more important to them than it did to me.
They thought maybe you were scorned, you know?
Well, you’ve already admitted here. Do you admit that often that you’re pretty spiteful long-term to people?
He’s gonna hold a grudge… [laughter]
I’m never crossing your line ever again. I mean, I would never do it.
I’m just saying… You crossed off, Adam!
Yeah. It’s only so much time on this world. I haven’t got time for second chances… Just kidding. I don’t know. Whatever. I don’t even know how I feel half the time… Yeah, anyway; then we did a back-and-forth… There was a lot of due diligence stuff, like “What’s the answer to all these things? What are these metrics? How does this part of the business work?” blah-blah-blah. And eventually, it would lead to offers.
Because they did this thing, which I think is smart - probably pretty commonplace, but you know, I don’t sell that many businesses, so I don’t have a lot to reference, of the “Let’s throw numbers out early, to make sure that we’re “in the ballpark”. Because you don’t wanna do three weeks of work to get that first number and have it be like “Hah! No, bye.”
Like, that would be the worst. So at least throw me a range, or something… But the funny part about that is the range then becomes reality. Because you can’t throw out numbers without them essentially being pretty real…
So there’s just a little bit of back-and-forth, and eventually I got to the place where I was happy with it, and I was like “Alright, let’s do it.” It really wasn’t that hard. As far as business sale goes, a laundromat would be more complicated, because a laundromat will have a lease, it has a bunch of equipment, it has employees, it has all these things that are actually kind of hard to deal with in an acquisition scenario, and I was just like “Oh, nah, it’s just me. No equipment. No lease. Just some IP. Sign this document. Okay, here you go. Bye.” I don’t wanna underplay it, because it was plenty of work, but…
Right. Accounts, DNS stuff…
Yeah, we did all that. I mean, first you formulate a plan. You have to have it all really spelled out, because there’s the moment in which you literally get a wire transfer… Because I’m not transferring no DNS without the money first, you know?
So you get the wire transfer, but then you own their properties. You have to go in a rapid-fire mode and start clicking all those buttons and doing all the transfer, that hour. It has to happen right now. So that was kind of fun… More than happy to do that once it goes down.
Did you seek any counsel – not legal counsel; I’m sure you had some legal counsel. But like advice… I mean, this was a big decision for you. Did you have like “Hey, I wanna bounce this off some people who’ve done this before”? Because if you haven’t done it, maybe you’re like “I could be getting taken”, I don’t know. Did you have any of those thoughts?
Yeah, yeah. I reached out to all kinds of people and talked to them about it, and tried to – I don’t know, just spelled it out, see what they thought, see if they had… And then even more so when the numbers started coming around, being like “How would you value it?” and stuff.
I never did get like a valuation of the company done, which probably a lot of people gave that advice… You can pay for that. It just was a little – it’s such a weird company. It’s a little hard to do, and it’s a little hard to find somebody that’s particularly qualified to do it… So I ended up not doing that. But what you know – you kind of know what your company is worth, because you have your own accounting to go on. You can be like “This is what the company earns per year. It has this kind of trajectory”, and then you just have a multiplier, like “Am I selling this thing at a 4x, 6x, 10x? What’s going on here? What are we talking about?” But at least you have kind of a range.
Yeah, anyway… Pretty cool. Everybody involved was so nice, and helpful… And it didn’t seem like nobody was playing super-serious business trickery stuff. Nobody was trying to pull any fast ones, or at least it didn’t seem like it to me. It was just people talking about it, and they wanted to make it work, and we made it work. Pretty cool.
That is cool. Then you have the big announcement, which also I think can be intimidating or scary, because you have your audience, you have your loyal peeps who love CSS-Tricks… Of course, a lot of the traffic you get is probably the people searching for answers, so they’re just like - it’s a website they like; they don’t really care necessarily who writes for it.
Then you have the people that read it like a blog. I’ve been a CSS-Tricks reader just in my RSS reader for years, and it’s like, I’m happy for you and I’m kind of sad for me. I’m like “Oh, Chris won’t be there anymore.” I loved your – especially the posts that you would do… I really appreciate your posts where you’re like “Here’s a topic”, it’s usually a current event, or a theme, or a trend, and like “Here’s a roundup of what people are saying about it.” And you kind of do some quotes… But you’re always – you’re kind of giving your take on their takes… I don’t know if you have a name for that style, but I appreciate that style.
No, but I appreciate you saying that. I think that’s cool. Yeah, even Jeff did one of those recently; I think he did a good job of picking up that torch a little bit, talking about some changes to the HTML document algorithm that have been going around… So I hope he keeps up with that.
But yeah, that was kind of my favorite stuff to write too, because like y’all, I’ve been around a while, so when I see stuff go down, I’m like – I don’t automatically know what’s going on, but I feel like just with a little research and talking and stuff I can kind of figure out the vibe… Which is I guess kind of little homegrown journalism. I always hesitated to call anything I did actual journalism, because I think there’s some pretty strict rules to what you do, and requirements to kind of get the official journalism badge…
Yeah, there’s people with degrees that would probably prefer you don’t call yourself that, if their degree says they are one, or something…
[laughs] Yeah, and I know I made some mistakes… You know, you should add a bare minimum if you’re gonna publish some industry event news kind of thing, you should reach out to the major parties who were involved for comment, and talk to them, and get the thing… I think that’s a bare minimum journalism requirement.
And possibly lighten up on the opinion. Whereas I didn’t want to! I didn’t want to lighten up.
[laughs] I wanted to weigh in.
I thought the announcement was very well handled. I wonder if there was any trepidation on how it would land. You don’t want your people to turn on you… Because it’s literally a sell-out. We talk about bands selling out, and all this kind of stuff…
It is, yeah.
So this is literally like “Yeah, I sold the site. I don’t own it anymore.”
It wasn’t so bad. There’s like a PR team that got involved with it.
But they asked me to write it, so of course I did. They wrote their own and I wrote my own, and to this day, you go to the site and there’s a link to an announcement that the ownership has changed hands… The blog post is not long. I did not stay up all night writing that. I just wrote the very basic – like, what would I think if I saw this go down, and formatted like a fake FAQ kind of thing, and write it… I just wanted to say thanks to everyone that helped, and this is the deal now, and if you have any questions, let us know. And then just let the comments fly. They were 90% positive, and the ones that were really jerky - guess what we did with those comments? I hit the Trash button on them, because that’s what I’ve always done on this site. I don’t have time for your negative ass crap. It’s still our website, you know?
At least it’s my post on this website. And I don’t really – I’ve been more nervous about giving a talk than I was about this, because I’m like “This is mine. Like, I’ve made this. Nobody else has any right to say what I can and can’t do with it.” Maybe that’s just like I’m like a weird libertarian, or something… But I was not ready to hear people’s opinion whether I had the right, or what I should do with the site.
I didn’t even have to put on a bulletproof vest for that. I just was ready…
I think the design of the post is very well done. I think how you kept it short and sweet was nice… I think the format was nice… You essentially answered what would possibly be the most asked questions, for the most part… And you turned it around and you said, in typical blog form, “Share your thoughts and comments”, and obviously, if they’re negative, they’re gonna get trashed. You didn’t say that in the post, but that is the truth behind the scenes.
And honestly, with DigitalOcean, they’ve had their history, and they’ve always been even good with us. Back in the beginning of our relationship with them it was about the community. I learned how to build a Linux server, an Ubuntu server that’s still running today because of a DigitalOcean documentation. And I became comfortable with Linux and comfortable with running Ubuntu, and comfortable with standing up various things, just because of their –
That’s cool. That’s what everybody told me about backend posts, is that they have them – they’re almost even a little dry. They’re always like “How to stand up Ubuntu on this type of server”, or whatever.
They do a great job, an amazing job taking care of that. And just knowing that investment into that side - to me, I would say like when you have somebody acquire something as beloved as CSS-Tricks has been and is, you wanna make sure… You know, sure, you could do whatever you want, Chris; it is yours, for sure. We would love it if you give it to somebody who’s gonna nurture it the same way you have, right? And I think DigitalOcean is the closest you can get to that.
So when you say “This is a sell-out”, Jerod, I know literally it is… But this is the closest you can get to making it not the negative side of sell-out, you know what I mean? Where it has a good suitor to take care of it, and as you’d mentioned, Jeff went with the team and is carrying the torch still yet, there’s lots of plans, and it’s got new opportunities… This is the best way you could have done it.
Yeah. I hope that plays out. It’s still relatively new…
And I have no inside information about what they’re gonna do. They’ve been publishing content, Jeff’s at the helm… I’m even still on the repo. I can see commits to the site, and stuff like that. I’m sure they have plans for it and whatnot, but I just am not privy to it anymore… Because that was the big question, it was like “Well, are you still around? Are you still running it?” Because that can happen too, an acquisition in which just now you work there, you’re still involved. And this was not that. I haven’t written for it since the day, yet.
I may still, because as far as – I mean, I know for a fact Jeff’s been asking me to write something here and there… And it’s just tricky, because I’m like - well, part of the feel of it was to let go of that. So it’s not like I don’t want to forever, but something about it hasn’t felt super-right to just be a writer on this thing I don’t own anymore. And to be perfectly frank about it, I own other businesses. I don’t have that many skills and assets in the world, but writing technical content is kind of one of them… So I might wanna use that skill and ability –
…for stuff I won.
That’s what I was gonna ask… It was an outlet, and so you still have probably at some point a desire to write. So I was like, “Well, where are you gonna write now?” You can’t just tweet everything; is it gonna be a hundred-thread tweets now? Are you gonna actually write other places?
It could have been, but that always was nervous to me. It’s always like “Don’t put too much of your time and effort on somebody else’s platform”, you know? I have blogged a lot more on my personal site. I just write a lot less than I was before, but every week at CodePen we send out a newsletter called The CodePen Spark, and I decided that, just because I can do this, because I own that too, I’d put a new section in it called “Chris’ corner.”
And I write every week about whatever I want to, web platform style.
Dang it. Now I’ve gotta go subscribe to that sucker, so I can hear what Chris thinks about stuff.
Yeah, you do. You do. It’s just my own little editorial every week in that newsletter… Which in a way is almost like my nicotine patch for tech writing almost, because you can’t go totally cold turkey. That’d be crazy. [laughs]
Right… So I was thinking about the things - you were talking about transferring stuff, and how it’s easier than a laundromat, and I was thinking about the accounts you’d have to transfer. One of the things I’m sure they acquired was Twitter.com/css.
They did, indeed, yeah.
So I was wondering when and how – because I don’t think you had that the whole time. I remember there was announcement… Like, how did you get the @css handle on Twitter? Or had you had it all the way back?
No, a guy wrote to me one time and said “I own this thing, but I don’t make use of it. Do you wanna buy it?” And that was a whole negotiation, too. I ended up buying it off of him for kind of a combination deal of promoting his Sass product and money.
And it wasn’t that much money, and to me it was like almost a vanity… Like, “Wouldn’t that be so rad to have this?”
And DigitalOcean made it pretty clear that they would want it.
Yeah. I assumed they would want it.
Yeah. And I left if pretty automated… So that doesn’t have as much personal stuff on it as even the website did, really.
It was mostly just a system we set up to automatically post new content… And that felt fine to go in the sale.
So would that be the kind of thing that would be a line item on like a sale to DigitalOcean? Did they value that separately, or was it just like “Yeah, we’re gonna want that”, and you’re like “Okay”, because the price is already good… I don’t know, was that a conversation that had to be had when they said “We want it”? Like, “Well, it’s gonna cost me this much. Let’s increase the price by that much.” Do you remember?
Yeah… No. I mean…
Alright, fair enough.
Yeah, we didn’t really piecemeal it out. It was early enough that it was just like “Yeah, yeah, yeah…” Giving away those things is almost a reduction in my mental technical debt anyway…
Right. One less thing to worry about.
Yeah… You know. Let them do it. It was kind of fun. Mostly, they’ve just kept up with automatically posting stuff… But that was an interesting thing after it happened; there was a couple of tweets that had a little bit of that “This is obviously for engagement” kind of feel… Which usually kind of works on social media. Everybody’s – lately, in the past week, there’s been a lot of making fun of that, you know, “Microsoft Word is used by ten million people, but not everybody knows all these tips and tricks to make the most of it. Here’s a thread.”
There’s a lot of making fun of that happening this week on Twitter. That’s the main character of Twitter, at least in my feeds this week.
Yeah, I’m seeing it.
They didn’t quite do that, but that is just one of an ever-changing spirit of engagement-style tweeting. And I think they toyed around with that a little bit and it was so – the people didn’t like it. They got –
They got lambasted a little bit?
Yeah… Which was too bad, because it really wasn’t that bad when I looked at it. I was like, “Whatever. They’re just making some point about some historical CSS content.” They weren’t even wrong, is the funny part, but people were like “This is old” etc.
So I felt bad about it, because it was kind of like - there’s obviously somebody who was put in charge of this, who has expectations at work. And for them to be like “Let’s do nothing. Let’s have it be exactly the same as it was before” doesn’t really seem like they’re doing their job. So what do you do? Well, I don’t know. It depends on if that person is a social media person…
Unfortunately, this is so niche… I mean, it’s called @css. So the person who’s in charge of it should probably know more than a little bit about CSS.
It should probably be a socially-median client developer, and I don’t think that’s who it was. So I think they were between a rock and a hard place.
So that’s kind of where I was driving with the trepidation around maybe betraying audience, to a certain degree… And I wonder if we hypothetically said “What if DO has new management?” and all of a sudden they just turn CSS-Tricks into just a terrible website somehow. At that point - gosh, do you start to second-guess things, or do you just like “Well, it was mine. I sold it. It’s no longer mine.” There’s a legacy there; of course, you don’t want that to happen, and it doesn’t seem like that would happen, but… What would you do? What can you do?
That’s just the risk, you know? I would say “That’s unfortunate” and then I would take a nap, or something.
I have literally no control after that point.
Right. There’s nothing you can do about it.
You have to know that there’s a chance that that could have happened, and it did happen, and I can no longer affect it, so… Bummer. I definitely wouldn’t go to Twitter and be like “Look at what they did to my baby!”
It’s like “You sold it, bro.” You know.
Yeah. That’s good for you, because it shows the emotional intelligence that you have.
Ability to detach, yeah.
Because sometimes you can be – I mean, if ever we had Changelog be acquired, I would probably have the sentiment, but… You know, publicly I would have that sentiment, but inside I might be like “Man, that really sucks.” I might be a little emotional about it, because… It’s just challenging really, because you’ve put so much –
It’s also a little bit relative. Like, do they definitely ruin it, or are they just doing it differently than how you would have done it?
Right. This was like a small microcosm. Of course, I’m imagining the worst, but that’s a stupid hypothetical that probably will never happen, so… Why worry about it?
[58:00] Yeah. Well, and here’s the other thing that happened when they tweeted this… And it was something about how you set font size or something, and related to REMs, or something… And it got hundreds of comments…!
Ha-ha! It worked.
So you know, mission accomplished, I’d say… [laughter]
So no seller’s remorse yet. Or probably ever at this point. You’re a few months away, so it’s pretty recent.
It’s March, right? At least announcement-wise.
Yup, yup. And I said in the post, I had a contracting agreement with them to stick around, tie up loose ends, make sure that the flow worked, or whatever… And that has jus concluded.
So you’re officially free.
You’re footloose and fancy-free.
I’m not even in the Slack anymore.
What are you gonna do with all your spare time?
I’m gonna work on CodePen. That’s what I have been doing. You know what’s interesting though, I haven’t – I’ve been so stuck on frontend for so long; partially because I like it, that’s where my skill set it, but I also felt like “Well, that’s what I write about. That’s what I have an audience around.” And now in a way it doesn’t matter as much. I don’t have to be as up-to-date on frontend stuff. And I’ve kind of been like, you know what - I don’t know that I have the ability to do this, but I’m gonna try the best I can to just switch to backend. I’m literally just gonna spend all my time thinking about and trying to be more useful on that… Especially because that aligns with kind of what we need at CodePen. We’ve always been stacked on the frontend side, with lots of skills, and we’ve always been just needing – we have great backend developers, but just traditionally, over the course of it, backend has always run behind. And I’ve been like “I should have these skills. It’s almost embarrassing that I don’t, working on the web that long, that I don’t know as much about backend development.” And we’ve been undertaking this big transition to just get everything on Go. And there’s a whole million reasons for that that we don’t have to get all into, but it’s been pretty positive for us to embrace that language and move a lot of stuff to it. I see that you have a Go podcast over there, so…
…new subscriber… It’s been very good, and I’ve been like “Well, then Go it is for me.” So I’ve been on a many-months-long journey now to level up in it. And you know, in the early days it was funny. It was like “Ah, I’ll just pair with people.” And lately, all my PRs are a bunch of Go code, so…
I’m definitely not high-level in it yet, but I’m certainly effective at it. In the end, it’s just a language, right? It’s not like a –
So I can imagine like a go-tricks.com upcoming soon, or a backend-tricks.com.
Yeah, I don’t think I have the confidence that I did then. Part of being able to write about CSS early on was not knowing how dumb you are, in a way… I’d almost be too scared to do it now. I’d be like “Oh my God, I can’t publish dumb, trite stuff, like I was happy to do at CSS-Tricks.”
You have a reputation to uphold.
Those early posts - I wasn’t saying anything of interest, and I was probably wrong on half of them. I can’t start a new blog now and be wrong about half of what I write about. I don’t think that’s gonna fly. [laughs]
Well, Go-Tricks does have a ring to it…
Yeah. I mean, I do really like the language. I’ve been convinced by my co-founder that chose it for us as like a – you know, we’re gonna write our APIs in this, we’re gonna write all our services in this, then we’re gonna port our web servers to this… And every time we’ve done it, it’s worked out great. Because the speed difference between what we’re doing in Ruby and Go is so extreme that it’s almost just silly. It opens doors that you just couldn’t do before… Like “Oh, if we did this in Ruby, we’d spend this much money, or spend this much time” or something; in Go it’s just sometimes many orders of magnitude cheaper and faster.
And still pretty productive, you know? It’s not like you’re spending that on the frontend. It’s not like “Well, in Ruby it would take us 40 hours, and in Go it’s gonna take us 3x hours.” It’s like “Yeah, maybe like 1.5x.” Or maybe about the same amount of time, who knows.
[01:02:05.07] In the beginning time, yeah, it’s something like that. Maybe it even is 3x in the very early days…
Well, when you’re learning anything new, it’s gonna be slower.
Yeah. Then it smoothes out, you know… And there’s something about the language, how it’s typed… The chances of you shipping something that’s broken in a really small, nuanced way is not – it either works or it doesn’t, for the most part. I’m sure there’s little bugs you could write, but it feels less – it feels more sturdy, in a way. There’s less magic that can go wrong. There’s a lot of typing. My PR today is like what is that? 1500 lines? What?! It’s just a very type-y language, I feel like… Anyway… That was a side-quest, huh?
Well, I’m happy to have a new Go Time listener. Maybe at some phase you will face that imposter syndrome, come on Go Time and talk about that CodePen transition. It might be a cool show.
Yeah… It’s a lot. Everything we do, we choose to transition to something, and that becomes a multi-year process that’s never even – you know, I remember a long time ago we were like “We’re gonna switch to React, because it’s just the nature of state and such on the web; it’s a perfect match for what we’re trying to do.” And that transition isn’t 100% done still, six years later, or whatever… [laughs]
And it’s not because we should just stop and focus on that; like any business, there’s just reasons for things. It’s not like things are in shambles, but… Big transitions on big, old apps are tricky…
You mentioned that you have responsibilities at CodePen, and you talked about your new (I guess) direction into backend, some exploration… More curiosity, more exploration. What’s happening at CodePen? What’s the next big thing for you guys there?
Yeah, it’s a little too early to talk about, but CodePen has been the same for a hot minute… And it’s not because there isn’t little features that we could knock out; we could, it’s just we spent a long time doing that to turn CodePen into what it is today. So the spirit has been like “Let’s slow down, have a little bit bigger of a vision”, embrace some of this new tech, and then embrace what’s happening in the expectations of developers, and try to make a next-generation CodePen that’s more capable and more aligned with what developers want out of an app… And then also crucially that’s designed for change better than we are now. Because if there’s one thing that’s just so obviously true to developers that have been developing for any length of time, it’s that the stuff that you use to do development just changes. React at some point will just not be big anymore. People just won’t use it, because they’ll use some other new, fancy thing. So you can’t go all-in on that.
Processors kind of come and go… And there’s no reason not to support the smaller ones too, the more niche kind of things, because they all have some commonalities in that they expect text files on a file system, and then you run stuff on them, and it produces more text files… If you think about it that abstractly, you can kind of architect a system that’s ready for whatever is next. That’s kind of the plan. I mean, it is the plan, I just hesitated to tell you exactly every detail of what that means exactly… But we’re just working on like a next-generation CodePen, and it’s just been so monumentally huge of a project that it’s almost been a – a challenge, is the way to put it, to even plan it, and break it into pieces, and stuff.
What phase are you in, or percentage complete? 80%, 90%? Do you feel like you’re at 40%? [laughter]
We’re 90% done, and there’s 90% left to do.
What I would like you to do is to pin you on an ETA. Come on, give us a release date, and then we can make fun of you later.
No, I absolutely can’t… We can’t even do it internally. Even a sprint we’re not very good at time estimating.
What exactly is CodePen though? For those who don’t know, which - probably a lot do. Like, how do you describe CodePen? What is CodePen?
It’s like a code editor in the browser… So you don’t have to install anything.
Is it mainly for demonstration of these things? Is it ever a production thing, the artifact? I mean, production-ish, like if it’s –
And one of the features then we built into it is the ability to just deploy it very simply on CodePen itself, meaning you hit a deploy button and we put the stuff in a bucket and point a URL at the bucket for you, and you have a static website. It wouldn’t even run a static site generator. I mean, we’re talking about using just HTML files, and then a little bit of – we support a language called Pug, for example, and you can have multiple Pug files that import each other. So you could kind of hack together your own little pretty basic static site generator, just from the nature of having includes in languages like that, and Nunjucks… And then you could CNAME a DNS at that deploy website.
So there’s some people that in some cases use CodePen for their production website because they just manage it on CodePen and CNAME to the deployed site. And you had to click Deploy to send up the new files. So that means CodePen itself was kind of like your dev environment. You could play with it, change stuff and not worry about it being on the production site, and then when you’re ready, hit Deploy and it would go out.
So that means you version stuff too in there, I guess, to some degree, or…?
So they threw versioning out the window then, basically, to use CodePen.
They did. But you also didn’t have to learn Git, or anything. You had to learn nothing. You just came to the website, you typed some stuff, and you hit the Save button. And you want somebody else to just look at the code? Just send them the URL of the project and they can look at the code. So there’s some stuff that made it so easy that it’s used. It’s used to this day. People pay to use it in that way. And because we’ve been at it so long, and we’ve been so freakin’ dedicated to fixing absolutely anything that went wrong with it - you know, just using Sentry, and bug reports, and anything to just make sure it’s just so, so, so solid. At one point we were just getting sick of bugs. We were like, “Why don’t we just fix them all? Let’s just fix every bug that is filed.”
Yeah. [laughs] And obviously, that’s not entirely true; it’s not like there’s zero bugs in the software… But really, we support – there’s millions and millions and millions of CodePen users. It’s just been around so long, and it’s so everywhere on the web… There’s just a lot of usage of the app. And we have one person on support who does it like – it’s like a third of her day. When I take support for a day, it’s trivially easy, because there’s just not a lot broken on CodePen. It just does what it does. It’s simple, but it’s really solid. What that’s done though is given us this –
It’s like the web version of a boring business, right? You say you wanna own a laundromat potentially, or a car wash, because it’s a pretty boring business… It’s like the internet version of a boring business, at this point, because you have no bugs.
Yeah, it just happens to be a really weird, niche one.
Boring because they’ve spent so much time to get all the bugs squished out. It probably wasn’t boring before that.
Yeah. And it gives us time and a foundation to mean that, like “Why don’t we just take our time on this next generation of it, so that when we release it, it also hopefully has that same kind of strength and robustness, and such.” But it supports it. I think it’s fairly obviously that you’re like “Well, how come you can’t even run a Eleventy, or some basic thing like that?” Of course we would like to support that. I’m not promising that you’re gonna get that on day one, or maybe you’ll get that in ten more, I don’t know, but that kind of ability of “Why can’t I use the stuff that people use to build websites now?” That’s obvious, right? Obviously, we need to support those things… But I’d like to support those things and not just like look at what’s popular now, and then just build a system that just does those… Because in the early days of talking about this I think we were headed that way; like, “Let’s make an X-specific editor.”
And then we kind of felt like “Well, because we have a little more time and runway here, why don’t we build one that is ready for the thing that we don’t even know about yet?”
The classic mistake, man… The classic mistake. The super-generic one, that can handle any circumstance that ever comes.
Yeah… And maybe we’re idiots. Maybe we’ll look back on this podcast and be like “Remember that thing you never shipped?”
If you pull it off, it’s great. But then you’re like, “Maybe we should have just done the one that does Eleventy and then done this one. That’s the hardest decision in software.
Maybe. I can’t promise, but I think we’re on the right track, and it’s just been a really long haul, and the people that are working on it have been really dedicated to it, and loyal, and I appreciate that, and they seem to think it’s a good idea too, and…
How big is the company?
It’s a business play. We’re only eight people, because our designer, Claire, went to GitHub, which was awesome for her, and then we haven’t replaced the design role yet. I’m not sure if we’re gonna jump on that yet, but we have eight people, and everybody gets paid, and we’re a very happily healthy company… So we’re just gonna have to freakin’ take our time on this feature…
…and cross our fingers it’s awesome. But I feel like, again – you know, there’s just certain truths, I think… There’s lots of gambles you could take in business, but I look at this and I’m like “Yeah, that’s great. That’s obviously a nice product. It’s obviously a nice evolution of what you have now. That looks like a strong idea.” I don’t have a lot – I mean, I’m incentivized to think so, but I don’t have any doubt that it’s a pretty good idea. It doesn’t actually feel like a gamble to me, because it’s just better…
Fun times. I have two unrelated questions… I’m not sure if you have anything else left, Adam, and then we’ll let Chris go… Do you have anything else on the CodePen side maybe, Adam?
I was just gonna observe on what seems to be the revenue drivers for CodePen. That was really it. And I was mostly curious because it seems like an interesting revenue model where you have a Pro membership, so some sort of paid tier, and then also advertising. So you’re sort of like an – you accept advertising as a company, which is sort of strange, because you’re not really a SaaS, right? But it’s kind of a SaaS, because you have a monthly –
[01:16:05.06] Advertising - well, because they have so many Pens all over the place, right? Is that what the advertising model is?
That’s the thing, it’s because it’s freemium. It’s always kind of felt like “Man, a lot of people use this site for free.”
Well, I mean, even in your challenges - those are sponsored by folks. They’re brought to you by X people… So you’ve got like this advertising –
Chris is a salesman. That’s what he knows. He’s good at it.
Yeah. It’s good, but it’s foreign for a SaaS business - or in quotes, a “SaaS business” - to be also in advertising. It’s like, “Well, isn’t SaaS bigger?” If you’d get more subscribers, wouldn’t that trump advertisements?
Do you guys consider yourselves SaaS? I guess a pro thing is kind of a – I mean, you are a service…
Paying monthly. That’s software as a service.
It’s all SaaS. That’s the vast bulk of our revenue, is Pro plans.
And then we do the ads because - probably because, like Jerod said, I happen to know that world, and always felt like there’s so much traffic. The traffic is stupid. It just crushed CSS-Tricks.
The partnership ability of advertising is what I really like. It’s less about the money that ads bring, which is obviously a benefit… But it’s the ability to cross-pollinate ideas, and also inspire. We work with a lot of similar brands that are in your repertoire of brands you work with, and it’s like, I love working with them because I get to share ideas back with them. There’s a give and take. There’s very much a partnership. It’s not like “Hey, tell us what to say about your business” and then we say it.
It’s very much like “What do developers really care about – about Sourcegraph, for example. I see – there’s one of them; it’s a sponsor of ours as well.
How do they cross over? How can we really help them? Like you said before, connect with our audience.
That’s better than what we do, frankly. I think that’s cool, and I wish we did more of that… And I hate to say this, because I love all those companies, too… Because they hand-come through me. I approve these companies, so I like what they’re doing. But I’m not giving them a lot back, other than just clicks, and stuff… And very honestly, if we did markedly better on Pro plans, I would very much want to - and this is not my decision alone, so I would have to… You know, this would be a company decision that we would talk about… I’d just get rid of them, you know?
It’s like, GitHub don’t have ads, you know? I’d rather be like GitHub than –
That’s why I think it’s strange, for those reasons.
It is a bit strange.
It seems like the larger upside is on scaling SaaS, not scaling advertisements, or partnerships even.
It absolutely is… But the choice then is “Do you just throw it in the trash tomorrow?” You’re like, “Oh, but that’s money, and I like money”, you know?
Well, it gives you more runway on the other stuff you wanna build.
And does it really diminish the brand at this point? I don’t think it necessarily does.
Not knowing what’s behind the scenes involved in it, I would say there is dividends worth investing into for it, that may not necessarily be strictly monetary. It’s more like – because there’s lots of brands who you really can’t help reach developers through these mechanisms, and… It’s relevant.
That would be an interesting play, wouldn’t it? It would be way – I’ll tell you right now, it would be way more risky to… Maybe we just give away the product; instead of doubling on the SaaS, double down on the branding and advertising and stuff - it would be harder to earn exactly what we earn now and grow it.
You could do both. Don’t do and/or. Do both. That’s my suggestion, is do both.
Why not both.
Yeah, that’s why I’m hesitant to throw it away too soon, because I do think there’s some potential in –
Well, let’s talk behind the scenes, or something. I’m happy to dig in further if you want more advice, or some unsolicited advice, at least. I love –
Adam always is there for unsolicited advice.
I have to be protective at the moment. It’s not that I don’t wanna talk about it, but we’ve gotta finish the damn thing, you know what I mean?
[01:19:50.10] That’s very much my emotional level at the moment - I’m working on the biggest project I’ve ever worked on in my life, and with every fiber in my being I need to finish it…! [laughter] It’s not that it’s dragging out, it’s just that it has to get done, and it’s hard to see – when you have this many tickets, and this many things to do, it’s hard to even see the light at the end of the tunnel. It’s there, it’s here… I just have to be protective over my time and choices to get there.
Alright, two little quick ones, and we’ll let you go back to your Go code. So the first one is, as you move to the backend, before you become frontend-irrelevant, while you’re still tapped in - sort of tongue-in-cheek; I’m sure you’re gonna keep your eye on the scene… But in the frontend space, what’s interesting, what’s burgeoning, what do you have your eye on? Things that are tickling your curiosity at this point.
Yeah, it’s so interesting right now, because it’s almost a silly time to not be writing about CSS, because there’s maybe never been like a hotter time in how fast CSS is dropping new stuff, and stuff that there is to talk about and explore… Like, if I was only working on CSS-Tricks, it’d be a freakin’ heyday for content, you know?
Because this container query stuff is very hot, and it’s just about to drop across both Safari, meaning every browser on iOS… And Chrome, which is just so crazy-dominant on the – the only thing that’s unknown is when Firefox is gonna drop it, and I bet they will… So it’s like, all of a sudden we’re gonna have container queries, which opens up some insane doors. It’s not just like “Oh, now there’s a little thing.” It needs to be explored and figured out, and talked about, and see how companies are gonna use it, and talk about that. There’s almost unlimited stories just with the container queries, and it’s only a third of the kind of ball that it exists within, which is container units too, which are a way to size things based on the size of the container that it’s in, which are also very untapped territory of what that’s gonna unlock in the world.
And then there’s this thing called style queries, which very few people are talking about, but it’s lumped right in with container queries, but it’s a way to say like “Hey, is the parent of the thing that I’m in have background pink? Oh, well, then the text color should be black.”
So it’s a way to express something in CSS about what’s happening style-wise in my container. And I think that might really change how CSS is approached, because in a way, it’s almost antithetical to how you should write CSS; because you should just be very emphatic about what you’re setting, and not leave it up to render chance. But now that that’s happening, I wonder if that will end up being rethought…
And then there’s scoping that’s dropping, and cascade layers, which are ways to affect the strength of CSS that you’re applying, in a way that they’re kind of an answer plus to what happened with CSS-in-JS for so long. That’s gonna change everything. Just the nature of CSS is getting wild. All of a sudden it has just dropped. Has is like a parent query like you can say
div has p and you’d be like “Oh, does this div contain elements that have p’s in them?”
Forever that was just assumed absolutely impossible in CSS. It was like “No. Not only can you not do it, you’ll never be able to do it, so get over it.” And all of a sudden they’re like “Just kidding. We have that now.” [laughter] That’s nuts, what that unlocks in CSS. It’s almost like unknown, because there’s all these simple use cases, kind of like “Oh, this is a card component. Does it have a button in it? Because if it does, it’s kind of like a call-to-action card. If it doesn’t, it’s kind of like a content card.” And I can style the whole card, from the top on down, with that information now that I can know it. That’s the obvious use case. But as I’ve known through writing about CSS for so long, what actually happens, how it actually transforms how people do and write CSS is a little unknown right when stuff drops. It takes a minute to suss out all what’s actually gonna go down with this.
[01:23:57.01] And what has does is unlocks – because you can go back up the tree in CSS, it changes a lot. Right on the body, you can write like “Body has” and then like an elaborate selector that figures out kind of like the state of the page, and then you’re back up at the body, so you can not only style the body, but then go back down the tree again and style whatever you want. It unlocks this tornado of styling possibilities, essentially based on the state of the DOM that’s just weird.
Provided it’s fast, right? If it’s slow though…
They wouldn’t have shipped it. I asked the same questions to the power-that-be just the other week.
Okay, so it’s fast.
Yeah, it’s acceptably fast. There’s ways to screw it up, and stuff, but there’s safeguards in place. Just like with container queries, there’s some things you have to set up on the page first, that make sure that they’re fast… Because that was the problem before, is that it had too many weird, infinite loop potential, and lookback potential in the parser; there was like “We can’t do it, it’s too weird. It’s not how browsers work. It’s too slow.” But now they’re saying like “Well, in order to use the container query, you have to say that it’s contained on its in-line size, which is a little weird to explain and talk about, but it has some limitations of what that element can do then… And because that exists, then container queries exist. Has is a little similar. There’s some limitations to what it can do.
Does has - its presence being available now, does it make you rethink everything, basically?
Well, yeah, but it takes a minute to rethink everything. You’re not just like “Oh, because that new pathway unlocked, a flood of thoughts happen that immediately fill in in my brain.” It’s almost like you just have to recognize that it’s there now, go about your day-to-day work, and hope that your brain thinks about it when you need it… And then those turn into blog posts, and the industry kind of slowly changes based on what gets talked about.
Different people discover different uses, right? That’s why where CSS-Tricks, the epicenter of like “Well, here’s Chris –” Now it’s Jeff. Jeff is gonna then say “This person’s using it this way, and that person’s using it that way.” Then we start to realize, “Oh, this is actually the best of those ways, so let’s do that.”
Alright, that’s awesome. Great stuff. Last one and we’ll let you go. Going all the way back to your design history… CSS-Tricks.com/design-history. Pick your favorite; you’re looking back, you’ve got like 18 designs… Surely, some of these – you don’t have to pick just one. It’s really some of these you still love, other ones you’re like “That was more of a dud.” What do you think? Just name the number…
Oh, they’re all emotionally complex… I know you just want a number, and I’m gonna give that to you, I think… If I can choose one… Oh my gosh, that’s very… [laughter] Now I almost regret telling you that.
And what is the selection criteria?
The one that evokes the most joy.
You know, I’ll pick 17, even though it’s fairly recent history, but it’s because I got to work with Kylie on it, the Australian designer. I think she’s here at Apple now in the U.S, but it was so – just a joy to work with, and so clever… And it changed how I had to – you know, it forced me to do stuff that I would have never done before on it, and in a way that the other ones were just me, for the most part. It’s just like my own design sensibilities. So when I see that one, I’m like “Oh, that was so cool, to collaborate in a way that I never got a chance to do otherwise on it.”
But another one I’d point to is – I look at it and I don’t even… It’s not like I love it now, but 13 was so white. It was one where I felt like the design was getting too complicated, or something… And I just wanted to see what it would feel like to just tear it all down, and just let the type speak for itself stronger, and stuff like that.
I don’t know how long it lasted, but I was so pleased to have been able to really tear things down… And I think that it’s set up a bunch of future designs, because things were so torn down, it was easier to –
…to do stuff, yeah. So it’s almost begging for it now. This current design has been iterated on enough times that it would be tempting to do a teardown design again. That’s one of the – it’s not like there’s no ads on CSS-Tricks now, but that helped me make the decision to sell it, because I pined for the day that I could design CSS-Tricks without ads on it. Despite being an ad lover, I always thought “Wouldn’t that be fun to design a site with this much content on it and devote almost none of the screen real estate to ads?” Just as an experiment.
Yeah. Maybe a tangent to Jerod’s question is what is your process? When you say “tear down” - for each new iteration, do you start with site.css and it’s completely blank? How do you–
Yeah, pretty much. It’s a WordPress website though, so what I wouldn’t throw away is all the templates, because it’s just too much to think about.
Right. It’s only a CSS reset, essentially.
Yeah, I’d throw away all the CSS, for sure. And then I would go to Figma or something and try not to think about the templates, and stuff; think about what a cool design would be without thinking about the code at all, and then make the templates match that design, and then write the CSS on top of that. But knowing that you’re not gonna think of everything in the design process, so when you have to go back in the code, and – because you can’t throw away like any template, because they all have to do something important. So if I forgot to design that, hopefully the new design kind of suits it, and it’s a little bit obvious what to do… But if not, then go back to the design and get ready for that template.
There’s certain things that the skeleton of the site just are – they’re choices that would be hard to undo, so I just won’t. But now it’s not my problem at all, so… We’ll what they do. I’m sure that they will morph it to look more DigitalOceany over time.
I guess the question is would it remain WordPress? Would it make sense to not be WordPress?
Oh gosh, there’s probably so much there… Why replace it?
That gives me extreme anxiety, and I’d almost wanna not think about it…
Whoever makes this decision, I really want it to be well considered, but I can’t make it, because I’m too emotionally attached to what – but at the same time, nobody knows better than me what WordPress is offering, what is it doing for the site… And it’s a lot, and if you were to just tear out WordPress just because you don’t like it or something, or you don’t have expertise in it or something, those would be okay reasons. I mean, I’ve done less for less, you know…? But just be really careful, I guess. There be dragons, you know? There be dragons, for sure.
Be careful out there.
Choice beware. I guess one more side tangent question to the whole entire conversation, I guess, considering DigitalOcean… Where did you host CSS-Tricks? Was it on DigitalOcean, or was it somewhere else?
No, it wasn’t. It could be. There’s no reason it can’t be. It’s so out-of-the-box Wordpress, it’s so boring. For a long time it was Media Temple, because we had a deal… And then when that deal went away, I was interested in finding another hosting deal, because WordPress hosts are always looking for that kind of thing… So I picked where I wanted to host it, and then I reached out to them with a proposal… Like, “How about CSS-Tricks is on you?” And that was Flywheel. They’re still around. They were snatched up by WP Engine. It’s pretty big. They’re both good.
That’s an Omaha company, Flywheel. From my hometown.
Yeah, indeed. I’ve been there.
Oh, have you?
I’ve hung out with them at one point. Yeah, they have a really cool office, it’s a real success story from that town.
Yup. I know all those guys.
Yeah, they did a great job with it, and still do, and they’re still kind of independent and they made a really cool local hosting product for WordPress, that I thought was just such a strong move for a hosting company… Yeah, so that was a long partnership at the end, and then – as far as I know, it still is on Flywheel.
It’d be interesting to see how long it is, because… DigitalOcean. You know what I mean?
Yeah, I mean… It’s a question of resources, I’m sure. If I was in charge of it at DigitalOcean, I would just pluck it over. It would take one day.
It’s not a trivial change, really. It’s just more like hosting rights, is more what it’s about, right?
Yeah. I mean, then you can put “This site is hosted by DigitalOcean” and not even mean it.
“Not only is it owned by us, but we host it, too… Okay?! We can host WordPress here!”
Yeah, because there’s obviously so much money in WordPress.
Yeah, for sure.
I mean, not drag this out, because I’ve really gotta go, but when it’s freakin’ half the internet or whatever it is, why wouldn’t you say “WordPress works great on DigitalOcean”? Or whatever hosting company is trying to – and many of them do.
Well, Chris, thank you for the journey, man. Thank you for sharing episode 500 with us, and congratulations to you on selling your baby, man.
Milestones all around. 500 at the Changelog, baby!
Oh, yeah. We appreciate you coming on the show, man.
Thank you. It’s been a blast catching up and going through all the details, man. I appreciate it.
Yeah. Take care, fellas. We’ll talk soon. See ya.
Our transcripts are open source on GitHub. Improvements are welcome. 💚