620: Cloudflare #HotDrama, Auth, and Prototyping Thoughts

Download MP3

We dive a bit deeper into the Cloudflare drama of the past couple of weeks, Instagram ads vs Cara art, what to do about Auth in your app, pre-negging any sponsorships, prototyping and feedback on projects, and ideas for future topics.



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.

Episode Sponsors 🧡


Dave Rupert: Where...? Are we going? Sorry.

Chris Coyier: Take your time.

Dave: Dude. Oh, you hit record.

Chris: Why not?

[Banjo music]

MANTRA: Just Build Websites!

Dave: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show. Episode 9099.

Chris: [Laughter]

Dave: I'm Dave Rupert and with me is Chris Coyier.

Chris: We can only wish. We'll be very old at that time.

Dave: That would be a lot of CSS, 9,000 episodes. [Laughter] That would be probably too much CSS if you--

Chris: Yeah.

Dave: To be completely honest.

Chris: [Laughter] Well, we... It's just Dave and I today. No guest. Although, we have been having fun with this idea of having people that build pretty specific products and make a little bit of entrepreneurial stuff about it.

I thought we'll get to some questions. We'll do some of our RSS favorites. Maybe we'll hit a little hot drama.

We were just talking about the Cloudflare thing. There was a pretty juicy blog post by somebody that was like -- I don't mean to say by somebody. I'm not trying to hide their identity. It was like a Substack thing.

Dave: Robin Dev on Substack.

Chris: Right.

Dave: Yep.

Chris: Yeah. Pretty cool choice to become a developer with the last name like that.

Dave: I think it's a stage name.

Chris: Yeah.

Dave: But anyway... [Laughter]


Chris: In the blog post was, like, "Hey, we got screwed by Cloudflare. We were using their various services to host our website and, all of a sudden, we're on the phone with BizDev people. They're essentially trying to squeeze us for a bunch of money."

It went from a very low amount of money to $10,000 a month kind of thing. That's everybody's worst nightmare. I remember. Didn't this happen with Netlify not that long ago?

Dave: The $100,000 Netlify bill. Yeah.

Chris: Yeah.

Dave: Yeah.

Chris: For some reason, this is juicy dev drama because it's just the worst email you can possibly get in the morning is, "We are just humming along and now, all of a sudden, we're essentially dead in the water."

Dave: Mm-hmm.

Chris: That's a horrible thing. But people were reading this, and then they were like, "Why is this so shrouded? Why can't you tell us what you're thing is?"

There are no links to anything. There's no explanation of what's going on. Then I don't know who dug it up - or whatever - but it turns out it's like a gambling site. Do I have that right?

Dave: Yeah. Yeah. There are a few disclaimers here. People who work at Cloudflare are awesome, the people I know. The people who... The products they build are also awesome. Global Spam Protection is pretty cool - or whatever.

Chris: Right.

Dave: DDOS protection, pretty cool. So, just want to get that out of the way before we go.

But yeah, so Robin Dev -- if that's your real name -- was--

Chris: Ooh!

Dave: He says straight, first sentence, "I'm a sys ops engineer at a fairly large online casino."

Chris: Casino. It's the first sentence of the whole thing.

Dave: Let's say "Draft Kings," or "Draft Queens," or something like that.

Chris: Yeah, but it won't be that because surely Draft Kings is spending more than $10,000 a month on traffic.

Dave: Mm-hmm.

Chris: They make that in four minutes at Draft Kings.

Dave: Yeah. Yeah, so your opinions on online gambling might be stronger than mine. I don't really have an opinion other than I think, if you are addicted to gambling, it super sucks. I think that's my general opinion and a lot of things try to take advantage of that, whether it's video games or online casinos.

Your opinion of online gambling sites may be, like, "They're trash. They deserve to get shut down." That's fair. That's your opinion.

Chris: Well, there's not much to talk about if you're there. And I'm pretty close to there myself.

Or if not just, "You're trash. Shut you down," that you should... It should be real clear when you're talking to people that provide infrastructure for you that they know what's up.

Dave: Yeah.

Chris: That you're in dicey territory already, so don't just pretend you're the same as a bakery or something because you're not.

Dave: You're in an ethical quandary, and they kind of say as much in the post. They're like, "We have to abide by certain rules and regulations, whether it's a state-by-state basis--

Chris: Uh-huh.

Dave: --or a country-by-country basis. We can't use Draft Kings here in Texas, I found out. I was just like, "Oh, that's really wild," because we are a very sports-centric state. But we can't do it because we don't have gambling here. But the Mavericks - or whatever - just got bought by an online casino, so we'll see what happens in the near future. [Laughter]


Dave: What becomes shady here? Their business is humming along. They're on the business plan. They're paying money, like $250 a month or something. Is that what it costs? Yeah, $250 a month.

But they're only using the CDN and the DDOS protection, so there are the static assets and the DDOS, $250 a month.

Chris: Yeah, right. Even that is... I just happen to know because we have the same kind of stuff going on. We use a little bit more than they do even.

There isn't just DDOS on or off. There's nuance to, like, "Yeah, but do you have their bots thing?"

Dave: Mm-hmm. Mm-hmm.

Chris: Is it the enterprise one? How many rules do you need? Whatever.

Dave: I would assume, if you ponied up money, you have all the switches on. Right? You're doing as much as you can, right?

Chris: Almost, until you get enterprise. But that's what this is about. They're trying to get them on enterprise. Right?

Dave: Yeah. For me, the shady thing is they get an email from the Trust & Safety Commission (or team) at Cloudflare that says, "We need to talk about your site." And as somebody who has been a CTO, if you get something that serious come through, you're like, "Dude. Everyone stop what you're doing. This is a big problem."

Chris: Mm-hmm.

Dave: Then they're like, "Cool. Big problem. Can you all meet Monday?" It's like, "Wait. What?" [Laughter]

It's a serious problem, but it can wait until Monday? That doesn't compute. We pushed Cloudflare to its threshold, but it also a problem that can wait until Monday.

They get on the call. It's a sales call for enterprise.


Chris: Yeah. Right there is the twist, right? It's not really about trust and safety. It's about getting them to upgrade to enterprise.

Every company wants to get you to upgrade. My host right now is Flywheel - or whatever - that's owned by WP Engine. I go the most annoying call ever the other day that was one of these, like, "We're seeing too much resource usage," on my site,, which is not a trafficked site, and it doesn't do anything special. It's just a dumb little blog.

Dave: Personal blog.

Chris: I'm like, "You're seeing too much resource usage on my little baby nothing blog?" Uh... whatever.

It was this, except for this is like 10x, 100x that, right? Because they're trying to get them on a $120,000 a year plan. That number gets thrown around a lot. It's $10,000 a month.

Dave: Mm-hmm.

Chris: It is $120,000 a year, but I don't know. Somehow it feels different when you say the lower monthly price.

Dave: In this one, they wanted them to prepay the $120,000 - or something like that.

Chris: Yeah. Right.

Dave: It was just like, "Gees!" And I should say, I think the first call was with a business relations person - or something. But then the second call or the second email, they invoked trust and safety and stuff like that.

Chris: Mm-hmm.

Dave: I just wanted to be a reporter here.

Chris: That's... You know that, yeah, I could see people reacting negatively to, right? Like, "Hey, don't give us the run around here." I don't know. It feels disingenuous.

Dave: It is. Yeah.

Chris: Fair enough. Yeah.


Dave: I mean, trust and safety and we want to charge you more are two different conversations. Those are two different departments, and you can't pretend it's the same deal.

The vibe I got was the Cloudflare sales team was getting hard squeezed to make a sale from this casino, and they kind of put it in a trust and safety situation. Again, we don't know the full story on Cloudflare's side. Maybe there actually was a legitimate concern.

Chris: Well, that's part of the pushback here, too. Where is the response?

Dave: Yeah.

Chris: Why are you not saying anything at all? Sometimes I don't blame companies for that. It's not your responsibility to be forcibly required to respond to every Internet drama or whatever. In this case, it is just one customer that's not pleased with the thing.

Dave: Mm-hmm.

Chris: I almost don't expect a public response to this.

Dave: Yeah. I mean they kind of said the thought here has been like a lot of people on Reddit and Y Combinator kind saying, "Oh, yeah. We got the same squeeze play put on us," so it seems like it's maybe not just isolated to this customer.

Chris: Part of the plan? Right.

Dave: Yeah, so the ultimate result was they cut off their CDN and their DDOS. Basically, just opened them up to the raw Internet. And so, that's... That was probably--

Then DNS routing gets beefed up and all that because the whole way that works is your DNS goes through them, right?

Chris: It is. Yeah.

Dave: They switched it all over to, and I think it all worked. But I think part of it, too, was they had mentioned, "We're in talks with about a new hosting strategy, so give us a minute to figure that out," and then they just cut them off. It was like the minute there was competition, they just cut them off. I don't know. Maybe that was the plan.

Chris: Oh, they didn't like to hear that? They were like, "You threaten us? We'll shutting you off."

Dave: I guess.

Chris: Yeah. I could see that. Although, I'd be surprised. They just don't seem like similar things to me. I know does global distribution of hosting, which is sort of like DDOS protection because it's just so much more efficient - or whatever. But it's not the same--

Dave: No. No.

Chris: --as straight up DDOS. It is funny to me that Cloudflare has kind of... what seems like -- feel free to enlighten me with all the other tools out there that do DDOS protection, but it doesn't seem like there are any to me.

Dave: Mm-hmm. Yeah.

Chris: If you're really screwed, Cloudflare is who you call.

Dave: Yeah. I mean it's kind of the network effect, too. With so many people routing their DNS traffic through them, they have a really good list of IP addresses that are being abused for botnets. They just have a really good picture of the Internet. If 700 servers spin up in Russia - or whatever.

Chris: Right.

Dave: Guess what. [Laughter] It's probably not--

Chris: This is crazy. It's the smartest thing they ever did that, like, you've got to run your DNS through us. It's been like that since day one of Cloudflare, as far as I know. A lot of companies out there, if you tell me that, I'm instantly out. I'm like, "No way. I would never."

Dave: Yeah.

Chris: But somehow, they've been doing it long enough. Aside from stuff like this, this is generally trustworthy enough. I don't know. Maybe I'm just speaking for myself but I almost want to on projects.

When I set up a project, I'm like, "I almost can't wait to point my DNS at Cloudflare because they just do so much in terms of speed and features and all this stuff."

Dave: Yeah.


Chris: To have that is just an amazing position to be in for them. But before I rub their shoulders too much, the end of this I do happen to agree with. This is a quote. "Make sure you understand the impacts of Cloudflare's business model on you. Either you're leeching off Cloudflare (like all the customers on the free business plan) or Cloudflare is leeching off you in these big enterprise deals." So, you're either underpaying or overpaying.

The reason I point that out is that does feel true to me and it feels true to tons of other stuff out there. In the world of tech, it's like, "We have this incredible free plan, and it's just amazing." You're probably literally costing them money. Then the next step up is just a zillion dollars.

Some enterprises are willing to do that, and they float the whole party. Then incentive-wise, that becomes the plan for the thing is to tell the sales team, "Hey, we've got to move some people from one to the other." It just seems clear that that's what's going on here.

Dave: Yeah. I mean you think about Apple, right? Oh, the iPod is like $200. The iPhone, brand new iPhone, $200 and you've got to sign up for AT&T, but whatever. That's fine. It's an exclusive deal.

If you want to plug it into a computer, that's $3,000. Then the $200 deal, okay, sorry. That's going to run out, so now your phone is $1,500. I apologize."

Anyway, other companies do it. But it's hard to beat Cloudflare from this robustness thing. They have a very good picture of the Internet. I would assume only AWS and Azure have the similar picture. You know what I mean? They have a picture of global Internet traffic that no one else has.

Chris: Yeah. They are kind of a distant fourth, though, as far as clouds are concerned, right? It's like AWS and Azure and Google is third.

Dave: GCP, yeah. Yeah.

Chris: Then Cloudflare below that. I wonder if they even are fourth or if there's something else in there.

Dave: Yeah.

Chris: I don't even know. I always think of Google as so little, like, "Who uses it? Do people really use that?" I get people use Azure. Microsoft has been a major player in cloud stuff forever. Everybody knows AWS is number one. But then you're like, "Do people really? How many people are on Google" You're like, "A fricken' lot, dude! It makes more money than YouTube does." You know?

Dave: Yeah.

Chris: It's a huge part of their business.

Dave: It's a lot. But yeah, it's just this... It's funny how selling servers has become such a big business.

It's also weird. In the Discord, there was just that new app, Cara, an art-sharing app.


Chris: Yeah. What's going on with that thing? Everybody is talking about that.

Dave: It's pretty cool. It's cool, DeviantArt - or something. [Laughter] You know? But they share or one of the developers, she shared their Vercel bill - or something - which was like $100,000 - or something - for like serverless functions.

Chris: Oh, my gosh!

Dave: It was just like--

Chris: Really?!

Dave: --something spun out. You know? Under intense growth, so your little, small problem, like, "I'm just going to get a user and their photos. That's easy. That takes zero milliseconds." But under 700,000 users, that takes a lot of milliseconds. So, I think it just maybe is an unoptimized situation. I don't know. Who knows? I'm just speculating.

Chris: It could be. It could be some N+1 in there. That's what I always think about. it's like, sure, you queried for a feed, right?

Dave: Mm-hmm.

Chris: There are ten posts on the feed. But every time... The way that you program it could be that, like, okay. Get the post. But the post has the owner of it, and the owner has all the people that liked it. Then you have to query for each of the users that liked it to get their avatar - or something. There are different ways to code that. And some of the obvious ways to code it lead to N+1 stuff.

Dave: Big time. Yeah. Yeah. Yeah, it's really easy to get yourself in a pickle. Anyway, I'm not saying that's exactly it, but that's my code smell from afar.

Chris: Oh, yeah.

Dave: But could just be whatever they had.

Chris: It's free. How are they spending $100,000 on no plan?

Dave: Yeah. Yeah. I don't know. [Laughter] That's a lot.

Chris: Why is the world so hungry for this? Are people... They just dribble over? I mean I hate to say stuff like that, but it does seem like nobody is that excited about it anymore.


Dave: Yeah. I think DeviantArt took... I think, did they shutter, or they just were like, "We can't stop AI art, so we're toast." It's just, "We're flooded," or something.

Chris: Oh, my god. Really?

Dave: Yeah.

Chris: Yeah.

Dave: It's just, "We can't really QA that," or something - if I recall correctly. I think DeviantArt is owned by Adobe now, maybe. I can't remember.

Chris: That's a nice way to die.

Dave: Or Behance. Behance is Adobe. Sorry.

Chris: Oh, that's the other one?

Dave: Yeah, but then I think Instagram, man. It's all ads, man. My wife calls it retail therapy because she's just like, "I go on there to see ads for stuff I don't have."

Chris: Hmm... I hate to agree, but I kind of like it, too.

Dave: Ah! I mean, I can't...

Chris: People do a good job on the ads.

Dave: Yeah, and you got your hobby loaded up in there. It's probably pretty finely tuned to what you want. I get some cool Gundam ads.

Chris: Yeah. Unfortunately, if they turned the dial up just a little too far and then everybody will bail. It feels precarious.

Dave: They do. The ad-o-meter goes from whatever get date, month, or whatever day of the month is zero to 30 ads. It's just basically--

Chris: Yeah.

Dave: That's their ad tech is basically what is today's date? Okay, we'll show you that many ads on your "For You" page.

Chris: Mm-hmm. It makes it hard for everybody else, though, because they make a ton of money off those ads. Then to have a new thing come along and be like, "Our differentiating feature is no ads." But people are like, "But I like the ads. Good luck."

Dave: Yeah.

Chris: But whatever. It's clearly working here. But to have it be mobile first and have it be this feed of stuff that you're scrolling. That's probably the smart part. Behance and DeviantArt are not that.

Dave: Yeah.

Chris: They don't have the feed the same way, as far as I know.

Dave: Yeah.

Chris: It's not like I have them all on my thing. But the art part is interesting because it seems like that's so limited. That's so niche.

Dave: Mm-hmm.

Chris: You and I like that. I want to see some amazing, hand-painted photo of the fairy in the grungy future and just crazy-looking. You're like, "Yeah! More of that!" But do a lot of people want to see that?

Dave: Yeah, I don't know. I think it should exist. I think you've got... If you're an artist, you don't necessarily... This is... I'm going to admit something.

If you're an artist or a photographer, you don't necessarily want to spin up your own website. It's maybe not the best thing, even if it's like Squarespace. It's not the funnest thing in the world.

Chris: Right.

Dave: It is a great place to have a home for your stuff, I think. That will always be true, like a domain name. But just putting your art online casually, sometimes it's about speed so you can get back to the art. I don't need to tinker with the dang website.

Chris: Yeah.

Dave: I can just post it to Instagram. I think, too, if artists are not satisfied. I feel like culture follows art. So, Instagram without art, what's it going to be? It's going to be kind of weird. Lots of photos of babies and lots of ads. Lots of influencers and stuff like that.


Chris: What is it about Cara, C-a-r-a? Why is it hitting so hard right now?

Dave: Just the moment, probably. I don't know. I don't know. It had enough influencers on the front side of it. I don't know.

Chris: Maybe that's it. That's all I'm trying to do is speculate a little bit. You know?

Dave: Yeah.

Chris: It's very nice, so you get there and it doesn't look like a V1.

Dave: Mm-hmm.

Chris: I mean it says beta, but it looks polished and I appreciate that. Maybe it's just clever design.

You don't even have to log in to see a sweet feed. You haven't clicked a single button and you can scroll up and down and see cool stuff.

Dave: Yeah.

Chris: I think that's smart.

Dave: Yeah. No, I mean I think it's pretty dang cool.

Chris: Yeah.

Dave: My boy Krom is on there on the front page. I love Krom. Supported his Patreon for a long time.

Chris: Did you?

Dave: Yeah. It's cool. I don't know. I think it's cool. It should exist, I guess. But back to the Cloudflare thing, I think my big takeaway from it... This is something ShopTalk listeners have probably picked up on over the years. I have this weird, like, "How are you going to dig out of that thing?" I almost prioritize that question over, like, "When is it due?" or "What's the deadline?" It's always like, "How are you going to dig out of that technology choice?"

I don't know if that's a learned response or just my brain thinking of worst case scenarios, catastrophic scenarios. But this reinforced that belief that you always have to have an evacuation plan from any piece of technology, including Cloudflare.

Chris: Mm-hmm.

Dave: Something as critical as--

Chris: Isn't that part of the advice of this? Yeah. This is one of the quotes here is "Be ready to move away from Cloudflare within 24 hours." But you could substitute that with anything, like, "Don't be so dug into a tech," especially an infrastructure tech, that you could never leave - or something. That's tricky because what their incentive is, is to make proprietary-ish stuff.

Dave: Mm-hmm. Mm-hmm.

Chris: Their workers thing is pretty unique in how it gets run before the request even hits the client. That's pretty unique. But then they have stuff that's a little proprietary and a little not. They have a KV store. That's kind of like Reddis.

Dave: Yeah. You could replace it with something, but yeah.

Chris: Right. Yeah, I don't know. That seems a little amazing to design a product that's so interchangeable. I don't know. We don't all have that luxury. You know?

Dave: Yeah.


Chris: Also, it just feels like a bummer, too. This is where my brain went. Let's say you get your house broken into. The way that your brain works is you're just like, "Mah! Never again!" And all you think about is protecting you and your family forever. You go buy guns. You buy the best security system ever. You get huge locks on your doors. You hire a security guard. You buy a dog with big, vicious teeth. You do everything you can because this is not going to happen to me again.

Hey, good for you. It probably won't. You probably solved that problem. But you probably caused yourself about 50 others. There's a cost to what's just happened to you and your brain and your life and your family and the way that you enjoy it.

Yeah, you're not going to get broken into again, and you're not going to suffer that pain. But you're suffering in a different way because of all these choices that you made. There's a cost to those choices that you made.

There's another cost to be like, "Man, that sucks. That's a bad thing that happened to me. But it's only really happened once and I'm not going to go absolutely wild with all this."

There's a metaphor here between those things. In this case, it is a big deal because it might cost you your whole business. Do you have to turn off your business here?

As it turns out, they were able to move, right?

Dave: Right.

Chris: This bad thing happened and they found a way through it. Now they're out on the other side of it. It's like, I don't know that you have to design the rest of your life around this never happening again.

Dave: Yeah. Yeah, there's a quote from Double Fine Productions. They do video games: Grim, Fandango, Day of the Tentacles, stuff like that, those games.

Chris: Okay.

Dave: They do videos, YouTubes, where they... Psycho Knots, I think they did. Sorry, Day of the Tentacles was Industrial Light and Magic, I think. Anyway, Double Fine is cool.

They stream all their stuff, and they did a little show, a behind the scenes show kind of thing. But one thing they did was a hack day. They have new people trying out to be project managers.

On one project, the PM, it's two PMs, but they're like, "Let's do this, and then maybe we'll do this." The senior developer on the little hack day, two-week hack week project was just like, "When you say 'maybe,' that means I have to code for the situation and not for the situation. I have to code this and not this. So, 'maybes' are killing me," is basically what he said.

I think about that in my extraction plan, my prepper brain. It's like you have to code for Cloudflare and then for not Cloudflare. That's the hard dependency. That's really hard to do. I think there this is sort of, like, there is some freedom in just picking a framework and just driving it until its literal end. I'm Rails until it just literally falls off.

I know y'all were Rails, and you're moving some stuff over to Go now. But I feel like you can pick a technology and then just ride it until its end or defensively code around any possible problem that could ever possibly occur. Then you're going to die in your fortress. [Laughter] I don't know.

Chris: Yeah, that's the thing. Businesses are at different stages. Your brand new startup that you're just working on getting customers I'm afraid doesn't have the luxury of the most incredibly defensive coding procedures ever.

In fact, if that's what you're spending your time on is designing interchangeable infrastructure components before you even know if anybody cares about your thing, well, you're dead in the water then.

Dave: Yeah. Yeah, the better advice... Generally, the better advice is just get up and running as fast as possible. Get customers in the door as soon as you can.

Chris: Yeah, fix crap as it comes up and learn from your experience over time and hire your way out of problems.

Dave: Yeah.

Chris: That's what you're going to do anyway.

Dave: Yeah.

Chris: I think it's funny. Kids want advice or something. "What should I learn first? Help me figure out what to do."

I'm like, "I already know what you're going to do. You're going to do whatever you want."


Chris: "So, here's the advice. Just do whatever you want."

Dave: Yeah.

Chris: You don't care what my advice is anyway.

Dave: It sounds like my son. "You're going to do whatever you want, so just do that."

Chris: [Laughter] Right.


Dave: You know one thing we did with Luro was we went with Auth0 for authentication just because I was like, "I don't want to manage your authentication. I don't want a password leak. I want that to be someone else's job." Right?

Chris: Uh-huh.

Dave: To be honest--

Chris: Good choice? Bad choice?

Dave: Well, Auth0 gave us the old enterprise sale. They did.

Chris: Yeah.

Dave: Because we had customers asking for single sign-on and that becomes this... And you only get five single sign-on integrations with the business plan, and then you have to upgrade. Anyway, I just was like, "Oh, man. This is a lot of work." The prices we got quoted were like anywhere from astronomical to mission to Jupiter. It was just like the prices were wild on that.

And then we had friends at WorkOS, which is a competitor there. They kind of reached out to us, and it was a better product. And we were just like, "Okay, well, maybe we'll switch."

Chris: Okay. Okay.

Dave: But that whole... The LOE, the lift, and level of effort to switch your whole auth provisioning system is immense, man. So, you kind of only get one shot at it. It's not a for funzie task to be like, "Okay. Now everyone has to reset their password," or whatever.

Chris: Oh... They kind of get you once they got you kind of thing? Yeah, in a way.

Dave: Yeah.

Chris: Yeah.

Dave: Or if you guys at CodePen were like, "We're going to take down our GitHub login."

Chris: Mm-hmm.

Dave: Not that it's probably breaking your bank or anything or whatever. But if you were like, "We're going to quit doing that," suddenly, you've got a whole bunch of issues. That becomes--


Chris: Yeah, we did pull one at one time. We pulled Twitter.

Dave: Twitter, yeah.

Chris: It kept not working good.

Dave: Mm-hmm.

Chris: My trust in anything from that company now, it couldn't possibly be lower.

Dave: Yeah.

Chris: We're not going to do that.

Dave: You mean

Chris: Yeah. Yeah. Fair enough. That's what they want to be called. That's fine.

Dave: If you want that stupid name, you can have it. [Laughter]

Chris: Yeah, you can absolutely have it.

Dave: Yeah.

Chris: I already don't like you, so there you go. It didn't matter to us. I don't know if this is... I'm tempted to just straight up say that this is a very smart way to do social auth because we have an absolute crapload of users at CodePen. Just to pat our own back a little bit, we hit a major milestone this week.

Dave: Congrats, man.

Chris: For our size, it was a ridiculous number of users of it, and monthly active users, too. A lot of people log into it. Part of it is because we log-in gated a few things. Like, to scroll past a couple of pages of search, you have to log in and people use that. You have to log in to export to a zip something because it takes some server resources. We're like, "You want to do that?" I think that causes a lot of people to sign up.

Dave: Mm-hmm. Mm-hmm.

Chris: Right? They're like, "I just need to hit this export button."

Dave: I just want the zip. Give me the zip.

Chris: Okay, whatever. Fine.

Dave: Yeah.

Chris: We get a lot of signups. This is the way that it works. We don't use Auth0 or any of the fancy ones. It's just hand-done. It's just makes a request to the social service and then all we get back is what is your email. That's it. We don't get a fancy token. We don't save anything to a database or anything. Ultimately, it authenticates you on the side of the social service and comes back to us with the email address associated with that account that you just successfully logged in with. Then it matches that email against whatever email your CodePen account is. That's it.

It doesn't matter if we lose Twitter. They're like, "I used Twitter to log in and now it's gone. What do I do?" Just use another one or just use the normal login system that we have at CodePen.

Dave: Anything connected to your old email, right? Yeah.

Chris: Any one of the services that uses that same email works. I don't know that that's the right... Actually, I do know just from being a person that browses the Internet. Sometimes you'll go to some service and log in and be like, "Oh, that. You haven't connected that account to your login yet. You picked the wrong one."

Dave: Mm-hmm.

Chris: Code it so there is no wrong one.


Dave: Yeah. Yeah. Yeah, it's funny, right? All those buttons do, those OAuth buttons do, it's basically like, "Yep. To a certain degree of confidence, we feel that this person owns this email address." [Laughter]

Chris: Yeah.

Dave: Yes, that is Dave Rupert's email address.

Chris: Exactly. I'm tempted to tell you that it's smart because we have no trouble with it.

Dave: Yeah.

Chris: We have all these users and we don't get any support. Not none, but very little support or problems that have come with it.

Dave: Yeah.

Chris: I'll officially tell you that's a decent way to do it.

Dave: Get them locked in.

Chris: And have Google because that's the one people actually want to use. That's like 10x everything else.

Dave: You know it's funny. Back to the single service dependence, hard dep question.

Chris: Yeah.

Dave: I want to just make Google my login. Just whatever. Google, Google, Google, Google.

Chris: Yeah.

Dave: But then I worry that Google has all these connections and now it has all this big knowledge graph about the crap I use. Now it's--

Chris: Sure does.

Dave: Now I have a privacy issue because I used the Google button too much. That's what I worry about. I don't know.

Chris: I know. Do you want to make your life harder in order to stop that? Sometimes.

Dave: Right.

Chris: I'm willing to suffer a little pain to stick it to the man a little bit. I don't know.

Dave: You either can build a fortress of solitude, a fortress of isolation, or you just are fully exposed and your life is easy and a bliss. It's just wonderful.

Chris: Yeah.

Dave: Even with Apple. I put my kids on... One day, my son spent $120 on Roblox. Shut that down. Cool. I've saved my family money. Guess what. I now have... Now any time my kids want to buy something on the Internet, they have to come talk to me, and I have to do this whole dance where they scan her face, enter my birthday. I approve it on my phone. Oh, it didn't go to my phone. I have to go find my computer. It goes into my computer.

Chris: Yeah.

Dave: It's either ignorant bliss or only pain. I just wish there was a middle ground.

Chris: [Laughter]

Dave: Is there a fucking middle ground?


Chris: I don't know. I think of the other way of people that want absolutely nothing to do with any big tech stuff. It's a rabbit hole that ends with running Linux on the desktop.

Dave: Yeah. Yeah.

Chris: Yeah. Sorry, team.

Dave: They're like, "I'm using Mint Linux, and it's the best one."


Dave: Oh, man.

Chris: That's fine. No shade. Do whatever you want. And not that my way is the best way. But I'm just happy to log in with Google. I just don't have the bandwidth to care otherwise. And I criticize them all the time, I feel like.

Dave: Mm-hmm.

Chris: I feel like if I really needed to get a job there, I feel like somebody would dig up enough crap that I've said about Google that they'd be like, "Yeah, no."

Dave: [Laughter]

Chris: "Not that guy."

Dave: Or Gemini. Please create a dossier on Chris Coyier's thoughts on Google.

Chris: Yeah. [Laughter] Yeah.

Dave: It's just like, "Fired! Fired! Fired!"

Chris: Yeah, kind of.

Dave: Yeah.

Chris: I do worry about, you know, I was looking up stuff about the Cloudflare stuff and Theo. I'm sure you watch his YouTube sometimes.

Dave: Yeah, yeah, yeah.

Chris: He usually does a good job. He reads blog posts and stuff. He's the face of the next generation of dev tubers, as far as I'm concerned.

Dave: Yeah. Sure. Sure.

Chris: But was happy to just crap on Cloudflare during this thing. I sometimes worry. At my peak CSS-Tricks days, there was definitely pressure to not do that type of thing.

Dave: Mm-hmm.

Chris: You burn that bridge, man, you ain't going to work there. They ain't going to sponsor your crap. You're done.

Dave: No free credits.

Chris: That's it. Yeah.

Dave: No little, "Hey, buddy. Let's help you." Yeah.

Chris: That's it. And good for you because if that's really how you feel and you're willing to sacrifice that, good. I think it lends you some audience credibility there if you're just being your authentic self there. But boy, that's a dangerous rode to travel.

Dave: I mean I think Theo, sponsored by Vercel, made some good points on what--


Chris: Yeah.

Dave: Yeah. Yeah, yeah, yeah.

Chris: We're nice to everybody. Ain't nobody sponsors this crap. I don't think there's any. We haven't had an ad in a minute on this show.

Dave: Let's be mean to somebody. Let's pick somebody and then their competitor will sponsor us. You know? Maybe we could do that. Maybe we could make that happen.

Chris: Yeah. Or we just do pre-negging.

Dave: Yeah. We'll neg somebody, and then their competitor will... Boom!

Chris: Yeah. But they already got it for free, though.

Dave: Life sponsorship. Oh, yeah. I guess maybe we've got to pay. Okay. That's a service we provide. We provide competitor negging.

Chris: There you go.

Dave: For - I don't know - a cool $100,000. I don't know. Just putting numbers out there.

Chris: Yeah, that's a good number.

Dave: Let's just put that number out there. Just floating numbers.


Dave: Any browsers? Browsers?

Chris: Oh, my gosh.

Dave: Hey, Firefox. Mozilla.

Chris: [Laughter]

Dave: Give us a call.

Chris: Oh, my god. That's another one where I feel like I've crapped on them enough times that they wouldn't touch me with a ten-foot pole, I feel like.

Dave: No. Yeah.

Chris: Oh, well.

Dave: Whoops.

Chris: Best of luck, all y'all. You know? Then you've got to wonder. Did they do the math or are they just young and early in their media life that they might look back on something and be like, "Whoops." [Laughter]


Dave: I did not foresee that company that I advocated for going out of business. And now I have dumped on everyone else, so whoops.


Chris: Especially because it's not really journalism. You know? I get reminded by this of my wife all the time that I've never done journalism. Not really.

Journalism has some pretty specific things. You go to school for it, Dave. It's a little bit like science. There are rules that are what it is.

Dave: I think she's confused because I think you just get a podcast.


Chris: Then you're in journalism?

Dave: For free, yeah. You record your microphone and now you're a journalist.

Chris: Yeah. Yeah. That is not true, for everybody listening.


Chris: But it requires, at a bare minimum, a very clear attempt to get the other side's truth.

Dave: Mm-hmm. Mm-hmm.

Chris: Right? And we know that, in this case, Cloudflare hasn't said anything. So, to come to any sort of conclusion here, you haven't done journalism yet.

Dave: Yeah. Yeah, you need to... Not both sides-ism, but you need to investigate. Yeah, you need both.

Chris: Right.

Dave: You need the facts from both angles, and then you triangulate an answer.

Chris: Exactly.

Dave: I think I've said it before, but the thing that always gets me -- and I think I posted it on my blog (and maybe we've already talked about it) -- taking a minute and say, "Ooh, that thing I just said, is that true? Is that something...?" Or "That thing I just wrote, is that true? And can I find data?"

That's where it gets troublesome because if you're like, "Oh, can I find data that backs me up?" now you've exposed yourself to confirmation bias. Any random website on the Internet, you're going to be like, "Yep, that proved my point. It's from" It's like, "Of course, that's true."

There's just... Yeah, you just opened up yourself to a lot of bias if you're like, "I'm going to say my thing and then try to prove it." I think you just need to... There's just this, like, you need to be open to counter-factual evidence and find that, search that out, and then you need to vet the resources. You need to make sure... Then you need to correct yourself. That's a big part of journalism, too, is correcting yourself, saying, "I said it dumb. It is wrong."

Chris: Yep. Yeah, that's the beauty of writing and forcing yourself to think through things actually for real. Anybody that has ever written a book can tell you it seems like I have done the research, I know this topic really well, and then you go to actually put words to it and you're like, "Oh, my god. I don't know anything."

Dave: Yeah.

Chris: You have to start from scratch. You're at first principles. You're like, "Do I even know what a div is, really?"


Dave: Do I?

Chris: What is a div?

Dave: Hmm... What's a div?

Chris: [Laughter]


Dave: I was going to say, I gave that talk for years, I think, about prototyping, right?

Chris: Uh-huh.

Dave: They art of prototyping. "Vague But Exciting," I think I called it. It was centered around a lot of stories, like how do big projects get made and Pixar was kind of a big piece of it. Then some data from my new employer, Microsoft.

But what was interesting, I just read a book called -- let me go to my bookshelf and remember the name of the book exactly -- How Big Things Get Done.

Chris: Uh-huh.

Dave: By Bent Flyvbjerg and Dan Gardner. This book is way cooler because it's actual research, sort of.

Chris: Mm-hmm.

Dave: It's like this guy built this school in Thailand or Nepal, and then did it in Thailand. They rolled out 200-something schools. How do you build 200 schools under budget in time without blowing the scope?

You're not going to believe this, Chris. You know how they do it?

Chris: How do they do it?

Dave: Prototypes.

Chris: [Laughter] Yeah?

Dave: The answer is always there, man. So, I feel vindicated in my personal research that this book was also confirming some of the ideas and coming to the same stories about how Pixar does these big blockbuster movies.

Chris: Mm-hmm.

Dave: They start on notecards. They build out the whole story as cheaply as possible before going to the technical production, which is as expensive as possible. Yeah, so the way you do a big project is you do a prototype. Then you just repeat the process as much as you can.

Chris: You get the feedback on the prototype. That's the thing I'll never forget about Pixar. Although, they seem to be having... I don't know if "lost their way" is fair yet, but they seem to be kind of heading in that direction.

Some of the classics, that stuck in my mind is that they have this process where they take what they have so far, and they sit down people from the company who didn't work on that part of the movie and just be like, "What do you think of this? Just roast it."

Dave: Yeah.

Chris: I think you can feel that in the story. You're watching some bad movie, and you're like, "You should have just asked somebody." I feel like if you showed me this, if you considered this bad movie a prototype," I'd be like, "Oh, the character would never say that right there. It just doesn't feel right."

Dave: Mm-hmm.

Chris: That's what the Pixar people would have got as feedback and be like, "Yeah, you're right. Let me change the dialog a little bit right there." Have them enter the scene a little differently or something. It's that level of polish that comes from the prototype process that makes it seem like obviously that's why their movies are so good.

Dave: Yeah. Then the big piece of the brain trust is they don't actually say, "Go fix that line of dialog. Go fix that." It's most like almost inductive. It's like, "That interaction with those two characters felt really weird and forced. It felt like that guy didn't talk like that. What do you think? You tell me your thoughts on that because I wasn't feeling that."

Chris: Right.

Dave: It's just this kind of like you submit yourself to people who have had prior successes. I think that's just such a cool idea. It's not even... You don't ship it and then go, "Look at it. Look at the banner, Michael." It's like you show it before it goes out and before it goes to people. That's how you get good feedback, and that's how you make a big project get done. Then you just do that process over and over and over a billion times.


Chris: Mm-hmm. Heck yeah, man. Uh... prototyping. You've still got to write that book. It's not going to be for A Book Apart anymore, sorry to say, Dave. [Laughter]

Dave: Unfortunately, no. No, that's... I don't know. I still have... I don't know if I've shared this on the show, but I pitched the book to a publisher and I have a whole book basically outlined and all storyboarded and stuff like that. But I was looking at the outline the other day because it's still in my Notion. I just was like, "It maybe was bad. Maybe that's why it got rejected." [Laughter] Yeah.

But I think it's also got some quality to it that's specific to digital products, like this book I read, which I would recommend How Big Things Get Done is more like industrial scale, government scale projects.

Chris: Mm-hmm.

Dave: I'm more focused on, like, how does a team of 30 people, 30 to 100 people, get something done.

Chris: Even those things are unique challenges. I'm living it. You know? I don't know what. I'm sure, at the end of our huge CodePen 2.0 product, we're doing some stuff right and, surely, some stuff not right. Some of it I know and some of it I don't really know.

Dave: Yeah. Yeah.

Chris: Certainly, if I were to do it again, I'll have learned from that process. I should point out we're in the... It's not really a prototype anymore. When it was a prototype, we did user testing when it was still a Figma. Not like a ton, but it helped guide us a bit to decide what we're going to build. But in our case, it's an evolution of a product that already exists. I think that's a little bit different than a product. A brand new type of dog collar or something that the world hasn't seen yet is a bit different than a 2.0.

Dave: Yeah, yeah.

Chris: But if anybody is interested in testing that's still listening to this show, of course, I'll get you on the list. We'll hang out together on a Zoom, and we'll have look-see because we're shipping little pieces of it still until we get to a place where we're ready for the beta.

Dave: Mm-hmm. Mm-hmm.

Chris: Which will be more self-serve. For the moment, it's kind of guided. You remember those days, Dave.

Dave: Oh, yeah. Yeah. I think it's funny. I think I built up a name for myself for saying, "People have got to talk about their product more," or whatever.

Chris: Yeah.

Dave: Svelte needs to talk about Svelte more - or whatever.

Chris: Uh-huh.

Dave: But that's the thing. You are always just talking about your product. You've got to keep selling the vision.

I will confess. I've seen the new CodePen and I like it. I like it a lot. It's going to unlock some cool new potentialities, I should say.

Chris: Yeah, it should. Part of the struggle has been it's just been so long. We did not slowly evolve it for reasons that are too much to get into here. We're going to conceptually rebuild it.

Dave: Mm-hmm.

Chris: Thus the amount of time that it's going to take to do that is, in my opinion, astronomical. I'm sure some people would tell you that's the thing we've always struggled with. Should we have done it a different way or was it just not possible? There are a lot of businesses out there that can't do it as slowly as we're doing it.

Dave: Right. Right.

Chris: We're lucky to be able to do it as slowly as we can because our 1.0 is fine. [Laughter]

Dave: It's working very well. Yeah.

Chris: Yeah.

Dave: And growing, you said, so that's good. Well, I mean y'all are in a position of privilege in that sense. But I don't know, man. The UX car... [Laughter] I have a whole post about this. I think it's kind of a lie, dude.

You only know how to build the UX car if you know you're building a car from the start. You're like, "Let's build a car." Then all those other modes of transportation also exist and you know how to build all those other modes of transportation.

Chris: Oh, you're talking about the classic, "It's too--" It's a line of stuff at the top.

Dave: Like, "It's a scooter, a skateboard, then a scooter, and then a bicycle, and then a motorcycle, and then a car." Right?

Chris: That's what's touted as the good way to build products because, each step along the way, your users are getting from A to B and doing the thing that they want to do. It's pitted against this thing where first you build the tires, then you build the frame of the car, then you build the windows, and all that. The problem with that is that each step along the way is a useless, half-built car.

Dave: Yeah. You don't have anything that's useful.

Chris: I'm just describing it.

Dave: Yeah. You can also end up with a Homer car at the end, the classic Simpsons Homer car analogy.

Chris: Sure.

Dave: Where it's just a monstrosity of every bad idea baked into a car.

Chris: Mm-hmm.


Dave: But anyway, the way... [Laughter] This is my whole hypothesis. The way cars actually came about, Chris, was a process of new inventions and then miniaturizations and optimizations. The steam engine that's in a car, the engine that's in a car, the gasoline engine was based on a steam engine that was on a ship that was giant and enormous and had big ass boilers and stuff like that.

Chris: Mm-hmm.

Dave: You didn't get the internal combustion engine without the big, room-sized piece of technology or house-sized piece of engine technology.

Chris: Like, are you so far convinced of this that we should stop using that particular graphic to describe what we should be doing because it's kind of BS to begin with?

Dave: I think it happens over longer time scales. I think you just... I don't know, man. I think the idea that you're just going to build across five different modes of transportation and it's going to be useful the whole time, I think that's hard to do unless you know exactly what you're doing and where you're going.

Again, somebody has done the process before, which is something How Big Things Get Made talks about. Don't hire the new company that's never built a railroad. Hire somebody who has built a high-speed rail to do your project or else you end up like California with a train that goes nowhere.

The UX car maybe is wrong. That's my thing. anyway--

Chris: [Laughter] Yeah. All right. Well, we did okay here, Dave. We didn't get to any user questions. To be fair, there is not a huge, huge pile of them at the moment, so feel free to write in. They don't have to be a question either. In the early days, there were a lot of questions.

Dave: Yeah.

Chris: I don't know what it is about our show or whatever, but it's turned into more of, like, "What do you think about X?" Almost like a topic suggestion is equally valuable as a question is.

Dave: Yeah. I like that. Yeah, I wonder why. I wonder what the shift is. Does everyone just know or have all our audience graduated into senior roles and now they don't have anymore questions? Is that--?

Chris: Wow! I hadn't even thought of that.

Dave: Whoa!

Chris: Possibly.

Dave: Whoa! I wonder what's going on there.

Chris: I wonder what is going on there. That's interesting. We'll have to do a Web components show, too, because that's kind of part of your--

Dave: That's my new job.

Chris: New job. I've been using them more.

Dave: I'm elbow deep.


Chris: I just did a blog post on them. Actually, I should show you. I took some of your awesome standalones and found some. I tend to bookmark standalones, too, because I'm kind of attracted to that concept.

Dave: Mm-hmm. Mm-hmm.

Chris: It also feels a little aligned to Brad's global design system thing. It's like a way of chipping away at that, almost, that's more organic. If the whole world just builds standalones and is happy building them and sharing them and making them public, I wonder if that gets us to this cool spot where work doesn't have to be repeated. Remember that was Brad's big thing.

Dave: Yeah.

Chris: It was like there are too many smart people doing the same work over and over. But if there are millions of standalones out there that the cream rises to the top kind of thing. Maybe that's part of the answer.

Dave: I think about how we have all these design systems and then it becomes this bucket of every idea ever, like, whatever. Oh, we need charts and graphs. Oh, that goes into the design system.

I think of Web components specifically because it's not all tied to the same version of React or whatever. And that's just an example. I'm not picking on React. It's not in that one ecosystem.

Your library of add-ons to the design system can just be CodePens. Then it's like, "Oh, you want that one? Copy, paste it, and put it in." [Laughter] You know?

It doesn't have to be this intense, codified system. It can just be like, "Oh, you want a live code thing? Here's a component called live-code." You put code in there and it spits out an iframe.

Chris: Right.

Dave: Does that work for you? If that works for you, do that. Maybe you don't need this whole - whatever - bespoke, Monaco code editor blah-blah-blah. You just use the live code component. If that gets you there, you get there.

Chris: Right.

Dave: Yeah.

Chris: Yeah, and I feel like that's what awesome standalones are kind of like. That's the theory there. There's the classic image comparison one. It's been done a couple of times really nicely. Just grab it and use it.

Do you need to turn a date stamp into three days ago, four hours ago relative time nugget? Don't worry about rewriting that. There is a perfectly nice one that does exactly what you need it to do.

Dave: I used it recently.

Chris: Really?

Dave: Oh, on this little game I'm making. I was like, "Relative time. Done. Go. Next."

Chris: Boom.

Dave: Next problem. [Laughter] You know?

Chris: Yeah.

Dave: Don't think about it.

Chris: Right. Yeah, they tend to be small. I haven't figured out what the perfect recipe is for one because I'm like, okay, they tend to be low in dependencies, but that doesn't mean no dependencies. Lea Verou has a nice md-block, Markdown block. Obviously, that has some dependencies. She didn't write her own Markdown parser.

Dave: Yeah.

Chris: But it feels like a standalone because there's very little design to it. Anybody could use it. It could slide into any project. It doesn't mean no dependencies.

You made the point recently where using a framework dependency is actually not... It's not only not bad, it's good. You should be using one.

Dave: Yeah. Otherwise, we're all going to rewrite the same abstractions over and over and over.

Chris: Right.


Dave: But it is... I have a post I'm kicking up, and maybe this is for the Web component show. But Microsoft has its own Web component library called Fast. Instead of my element extends LitElement. It's my element extends Fast Element.

And so, I've been learning about the differences. What's the deal? Why do we have to invent a whole new component framework - or whatever - element-based class? I'm learning why.

It's like, oh, okay, cool. I see your little architecture decisions that led you to this point, and it's got some cool things in it.

Chris: Mm-hmm.

Dave: My traversal from Fast to Lit is pretty easy. [Laughter] Instead of .property, it's :property like Vue. So, it's pretty easy. Whatever. I'm not dead if I switch between the two, but it is, like, why would somebody go through the effort to make their own thing? I think there are reasons, so I'm learning. I'm learning about why.

Chris: Yep. I almost think a litmus test for a standalone is, like, is border radius used in this Web component? You've already gone too far. It's not a standalone anymore because it's too opinionated about how it looks on the page.

Dave: Yeah, yeah, yeah, yeah, yeah. It should look ugly, I think. Right?

Chris: yeah.

Dave: Is kind of the litmus test, yeah.

Chris: Yeah, pretty much. It should look ugly because the font should just come into it - or whatever. Yeah. Just back off a little bit.

Dave: There is some art to it. I made a confetti cannon, basically turn any clickable surface into a... that shoots confetti.

Chris: Yeah?

Dave: It uses confetti.js. It has a dependency. Why would I write my own particle engine to do that?

Chris: Right. Sure.

Dave: But guess what. It's just in a CodePen. It's like eight lines of code. It's great and you turn anything into a confetti machine. That's great.

Chris: Yeah, it is great.

Dave: That's what I want to see more of is just like, "Oh, you needed to do something? Well, guess what. You just make a little Web component and it does it. Then move on with your life."

David Darnes is making a bunch of code, like little standalones, so he's doing an awesome job. Zach Leatherman has a bunch of standalones doing an awesome job.

Chris: Yeah. David Darnes just published a CodePen one that's really neat. It's called code-pen. [Laughter]

Dave: Yeah.

Chris: David, I might need that back.

Dave: Yeah.


Dave: You have a suit. You are getting sued. Cease and desist.

Chris: No, but that's funny. It's name spaced, of course, under his thing. But it's pretty cool. It's to use our... I don't know. It has a Markdown-like syntax. You know we prefill embeds and also that API to send the code over to CodePen to prefill a Pen.

Dave: Yeah.

Chris: But it makes the ergonomics of that way nicer.

Dave: Mm-hmm. Mm-hmm.

Chris: The way we expect it now is you've got to escape all this and put special classes on it and stuff. His is way more chill. It's like triple backticks. Use the--

Dave: Yeah. It takes any three code blocks and will turn it into an HTML, CSS, JavaScript.

Chris: Yeah, it's nice. It's nicer than we did. [Laughter]

Dave: Yeah.

Chris: It's the kind of thing we probably should have done but it's hard to prioritize that. Seven people, you know, a lot to do in our little thing.

Dave: Well, yeah. You can't. It's hard.

Chris: Yeah.


Dave: I think it's cool. I don't know. That's what's fun about them is you just have an idea, scratch an itch, and then the distribution is really good. Anyway, sorry. We're spoiling the Web component show.

Chris: I know! I know! Distribution is massive. How do you think about it? I want to know.

Dave: Well, just like David Darnes. If he wrote a blog post on how to scrape your three latest code blocks and turned it into a CodePen, I'd be like, "Okay, that's interesting."

He's like, "It's a CodePen element, and you click this button." Now I'm like, "Yeah, I want that. That's great."

I would use it. Whereas before, I'd be like, "I'm never going to remember that." But now it's like, "Okay. I could just add this to my site today."

There's... Gosh. It's so easy. The distribution is very high with Web components in that situation. I can turn my little code blocks into CodePen populator blocks with very minimal effort. Cool, right?

Chris: Yeah. I love it. Yeah, well, we'll get on that soon. Do a little more interesting one. Talk about that distribution stuff more.

I do kind of want to know. It almost needs a NPM or something. It's funny. Do people--? We'll leave it at this open-ended question. How's people's trust level with NPM lately?

Dave: Hmm...

Chris: Is it 100%? Are they just like, "Of course, that's where you distribute things"? Or are people starting to rethink that at all? I don't know.

Dave: Hmm...

Chris: Okay.

Dave: I think Dino's JSR would have some other opinions.

Chris: Well, right. Partially because just the existence of that is like, "Oh, there are options now?"

Dave: I think we should have probably forked on ESM. We should have just put a big, old stick in the sand and said, like, "ESM goes into ESM JS." Anyway. Ah!

Chris: Yeah. Hindsight, I definitely agree with you there. There is an ESM only repo place.

Dave: Mm-hmm. Mm-hmm.

Chris: Yeah, well, that story has even changed now that Node doesn't care so much anymore.

Dave: Right. Right.

Chris: Maybe we should have done that first. [Laughter]

Dave: Done that part first? Yeah.

Chris: Yeah.

Dave: Oh, boy.

Chris: Okay.

Dave: Hindsight. All right. Well, hey, thank you, dear listener, for downloading this in your podcatcher of choice. Be sure to star, heart, favorite it up. That's how people find out about the show.

Follow us on Mastodon at [email protected] and Discord. Chris, do you got anything else you'd like to say?

Chris: Oh, thank you all for listening.