652: Talking to Bots, Building Browser Games, and Political LLMs
Remembering the old days before we had bots, teaching kids to talk to bots, how difficult is it to build games in the browser, are we seeing LLMs get more political, what does mainstream media really mean, and have you heard about PouchDB?
Time Jump Links
- 00:26 Old people talking
- 03:44 Talking to bots
- 14:10 Do you have any experience building games in the browser in recent years?
- 23:09 How do newspapers and serious websites keep their sites so well put together?
- 36:42 Do you sometimes feel like you have superpowers when browsing the web?
- 40:51 Are we going to see LLMs get more political?
- 45:29 Mainstream media and photo ops
- 54:02 Have you heard about PouchDB?
Links
- PixiJS: The HTML5 Creation Engine
- Unreal Engine: Powerful Real-Time 3D Creation Tool
- Balatro: A Unique Gaming Experience
- Xbox Adaptive Controller: Accessibility in Gaming
- Designing Content Authoring Experiences by Greg Dunlap on Kickstarter
- Craft CMS: A Flexible Content Management System
- Analysis: ChatGPT’s Political Views Are Shifting Right
- Search Engine Podcast: Insights and Discussions
- PouchDB: A Pocket-Sized Database on GitHub
- Zero Docs: Documentation for Zero
- Replicache: Real-Time Data Synchronization
- Obsidian: Sharpen Your Thinking
Episode Sponsors 🧡
Transcript
[Banjo music]
MANTRA: Just Build Websites!
[hip-hop beat starts]
Dave Rupert: [hip-hop voice] Hey there, Shop-o-maniacs. We're going to rhyme. You're listening to a podcast about Web development and design.
Chris Coyier: Wow.
Dave: [hip-hop voice] I'm DJ Davey Fresh, and with me is Chris Coyier. Hey, Chris.
[hip-hop beat stops]
Chris: Oh, man. Are we doing a rap battle? Am I--?
Dave: We could rap battle.
Chris: I'll be Drake.
Dave: Yeah. Oh, okay. Cool.
Chris: You know? And you lose - or whatever. Yeah. [Laughter]
Dave: And I'll be Kendrick Lamar. No, I could not even hold a candle to Mr. Kendrick Lamar.
Chris: Yeah.
Dave: He's very good at the rapping and the diss tracking.
Chris: [Laughter] Yeah, you're going to make a token called A-minor.
Dave: A-minor. That's pretty good - pretty good lick.
Chris: I'm late to it, but I'm like, "Dang, that is a poppin' song. Good job."
Dave: Yeah.
Chris: You know when you're old, you don't know anything anymore. I don't know.
Dave: No. If it's not on Bluey, how are you going to figure it out? [Laughter]
Chris: Yeah. Yeah. It's actually been a long time where I'm like, "What is the incoming?" How do you know it's famous? When you're young—
I promise this will be a short section. I hate it when old people talk about being old.
Dave: Old people talking.
Chris: But it just seemed easy. It seemed like - I don't know - there are magazines. There's MTV.
Dave: Mm-hmm.
Chris: That's it, maybe.
Dave: Yeah. Yeah.
Chris: How do you know who is famous now? Is it because Spotify streams you this stuff? What are you reading and seeing? What's entering your eyeballs and ears such that you know famousness is happening?
Dave: It's the algorithm, man. You know? It's whatever the algorithm is showing you, I think.
People will be like, "Do you know that guy? Oh, he's from TikTok." My daughter will be like, "Oh, she's from YouTube," on these movies and stuff like that.
Chris: Mm-hmm.
Dave: I'm like, "Huh?!" No idea but she's locked in. She knows who they are.
Chris: TikTok makes perfect sense to me. Yeah, whatever. You see 18 TikToks of the same person, you're like, "I guess they're famous."
Dave: Yeah, like the bee lady.
Chris: But then you almost need confirmation. I guess you have to have friends. Ah, it's complicated.
Dave: Yeah, well, but what's weird is we grew up on a model. Old people talking. Sorry. If you're under 20, go ahead and fast-forward. [Laughter]
We grew up on a model, the clear channel model, basically, where Nirvana wants to become famous. Guess how much it costs to get your song on the radio? Like $250,000. [Laughter]
Chris: Wasn't that...? That was illegal, right?
Dave: That was big money back then. That was like a huge house money, like a mansion money back in the day. But you think about that, it's just like, oh, all these famous people we know from back in the day were actually just bankrolled, like VC funded, into becoming famous and cutting albums. I can't say the music industry is super different. But yeah, you had to stay up until midnight and catch the really raw stuff.
Chris: Yeah!
Dave: What was the...? Matt Pinhead, or whatever.
Chris: Yes!
Dave: Pinterest.
[Laughter]
Chris: I liked the Headbangers Ball stuff.
Dave: Yeah, Headbangers Ball. All of that, yeah. You had to kind of get into the nitty-gritty stuff.
Chris: Indeed.
Dave: Yeah.
Chris: All right. Well, you know what I did this week? I just put in a bunch of questions.
Dave: I love questions.
Chris: People send in questions and topics at ShopTalkShow.com, of course. Let's just get to as many of them as we can. It's kind of fun. I can't guarantee how absolutely fresh these are. I do go through the list pretty regularly and trim out stuff that doesn't matter - and stuff. But there's good stuff that there hasn't been a perfect episode for that might be a year old.
Dave: Mm-hmm.
Chris: So, if that's you, sorry about that.
Dave: Yeah. [Laughter] I'm trying to think of, like, "What do you guys think about Chrome 89?" Ugh...
Chris: [Laughter] Yeah.
Dave: [Laughter]
Chris: There is one. We do get little one-liners once in a while. Somebody wrote in, "What version of Node are we running, y'all?"
Dave: Oh... Well...
Chris: I'm like, it almost seems like an AI bot. What do you care?
Dave: Yeah.
Chris: I don't know. The one that the project is on. I don't know.
Dave: I had this interaction on Bluesky the other day - yesterday - where I swear to the Lord Christ himself that I am talking to a bot. It was just like text area trim, and it was like, "You can't use that in Firefox, so maybe next month or year." I'm like, "Text box trim is really progressively enhanceable." But it was just kind of like the standard, "You can't use new thing because of Firefox," reply.
Chris: I heard a similar story of somebody who was fighting with a bot about browser support, and they really had to be really forceful to let them use new things.
Dave: Yeah.
Chris: Which is curious to me because we all know that these things are not sentient. They are trained on stuff, and there's secret algorithmic stuff happening when prompts are being generated and shipped to these LLMs and stuff. I bet there's some baked in stuff that's doing that that you're fighting against.
Dave: Yeah.
Chris: I bet there's unseen stuff that's trying because I think probably most people actually don't want to accidentally use too new of stuff, so they're saving 80% of their customer base and pissing off 20% and calling it good.
Dave: Yeah. If you're a real human and you were talking to me, I apologize, but the counter to "It's progressively enhanceable" was "Well, maybe if you use CJK languages, but I speak English," or whatever. I'm like, "I speak a CJK language (Japanese), and I don't understand the point." [Laughter] You know what I mean? About text box trim specifically. Maybe it does work great for characters, like square characters, kanji.
Chris: Yeah. Again, they're not sentient. They're phishing for a way to fight you. It's so strange.
Dave: Yeah. Yeah.
Chris: That's why I think it's funny sometimes when you see behind the scenes a little bit or you see, as part of the prompt. I think I see this in Cursor when I use it sometimes. It's like, "Try to do a good answer," or "Be accommodatable," or something. You see that placed in the prompt. You're like, "Okay, we have to tell our machines to be nice. That's cool."
Dave: Yeah.
Chris: Good.
Dave: They probably get a lot. They're probably fed a lot of, like, terse inputs.
Chris: Oh, yeah. You're talking to a robot. You can get gnarly. I always loved that I absolutely hate Siri in all ways that you can possibly hate a technology product. It's just unbelievably bad.
It just nosedived after the AI stuff. I can't even be like, "Navigate to the nearest Safeway grocery store." It'll be like, "Playing Safehouse on Spotify."
Dave: [Laughter] Yeah.
Chris: It's unbelievable!
Dave: It's so bad.
Chris: It cannot do even basic tasks. Yeah, yeah. But I did always like when you swear to it and stuff. They're like, "That is not acceptable." It tried to--
Dave: Yeah.
Chris: It was a little mommy style on that, and I thought that was cool. Good for you. Don't take no abuse, Siri.
Dave: The first update in like ten years to Siri was just like a faceplant (in my experience). Just like, "We've been working ten years on this. Advancements, huge advancements in AI. And here are some fake news headlines." [Laughter]
Chris: It's surprising to me because Apple doesn't have to impress anybody. I get it when it's certain companies that need to just put AI on stuff because they're gunning for their series B or something-something. They have to just be on this train or fear of being left behind - or something. But Apple is not part of that game. They're at the top. They don't need to impress nobody other than customers.
Dave: Yeah, yeah.
Chris: So, what's the deal?
Dave: Yeah. Yeah, it's just weird. Panda Express has a new AI robot ordering system.
Chris: Do they?
Dave: I go back and forth on whether I love it or hate it because it is a robot. It couldn't be less insincere, I guess, is what I want. [Laughter] It's about the most F-U technology in the world, like, "We're just going to make a robot take your order." You know? But I compare that to--
Chris: Through the drive-thru or through an app?
Dave: In the drive-thru, yeah.
Chris: The drive-thru.
Dave: In the drive-thru. So, you pull up to the little screen.
Chris: Yeah.
Dave: One foot by one foot screen, and then you say, "I want orange chicken and Chow Mein." Then it goes, "Got it. Anything else you'd like to add? Would you like to try an eggroll?" Something like that, right?
Chris: Right.
Dave: You just say, "No. No. Skip." And they go, "I'll be $7," or whatever it is. You drive up, and then you talk to a real human to give your money and take your food.
Chris: Do you verify what's on the screen before you move on?
Dave: Yeah, yeah, yeah.
Chris: Yeah. Okay.
Dave: You just check it. But my daughter tried it, and my daughter is digital native, but she's not that good at talking to robots. She doesn't know how to order food in a way that a robot would expect the answer to show up.
Chris: Yeah.
Dave: Does that make sense?
Chris: I've met the type. Even adults, too, where they just don't have that sense of, like, you need to wait. You need to have a quick little pause right here because you spoke too early.
Dave: Mm-hmm.
Chris: Little things like that.
Dave: Mm-hmm. Yeah.
Chris: Yeah. Okay, so your daughter. Then what? It gets mad at your daughter or what?
Dave: Well, it starts adding because she repeats herself because it didn't get it. Then it starts adding multiple things. [Laughter] You're just like, "Oy! Okay."
Do I like this more than a mumble-y teenager? Because I've had in-person interactions where it's just like, "What do you want?"
Chris: Yeah.
Dave: I want to take part in the miracle of commerce, please.
[Laughter]
Chris: Yeah.
Dave: They're like, "Okay. Well..." You know?
Chris: Yeah. Right.
Dave: It's like, "Sorry, man. It could be I'm hard of hearing."
Chris: Part of fast food is built on the back of consistency.
Dave: That's it!
Chris: That's why I go to McDonald's in Paris because my flight just landed. I don't want to figure out local crap. I need to put food in my body, and the Big Mac -- or I guess it's a Royal with cheese. Isn't that the deal?
Dave: More and more, I feel like I'm not going to - whatever - retail stores or whatever for, like, the service. What I'm going there for is I'm paying for the smile.
Chris: Hmm...
Dave: I'm paying for the, like, "Hey, here's your day," "Hey, how are you doing?" You know?
Starbucks, actually, to their credit, I think have figured this out and mastered that. It's just that interaction. I don't know. I'm spoiled in the South. I realize that.
Chris: Yeah.
Dave: I've almost gotten into fights in Atlanta at an airport before just because [laughter]--
Chris: Oh, my gosh.
Dave: The culture was different. And New York in the deli line for the bagel. They just have no patience for you. Anyway... [Laughter]
Chris: Yeah. I almost expect that there.
Dave: It's cultural.
Chris: Yeah. I've got to mail some CodePen swag out to somebody today, and there's a FedEx basically downstairs from me. And they're so mean.
Dave: Yeah?
Chris: I'm going to drive my ass all across town because the ladies over at the UPS Store are nicer.
Dave: Oh, see.
Chris: I like them more. [Laughter]
Dave: Paying for the smile. Pay for the smile! That's... anyway... that's my--
Chris: I'm going to try that at Panda Express. It's been a long time. Years and years I've been. I like it. It just doesn't come up in my life for some reason. But I was on a road trip with my daughter. Not a long one. We just went to Portland and back last weekend, and we stopped at one in some random town, and it was great.
Dave: Yeah.
Chris: I was like, "Good job, Panda Express."
Dave: Yeah.
Chris: And they were like, "Oh, the Chow Mein will be a minute. We're making a fresh batch." Then we got it. It was just hot and fresh. It was delicious.
Dave: Yeah.
Chris: It was excellent.
Dave: My daughter, it's her favorite meal.
Chris: Yeah.
Dave: You know you're eating it weekly, about, and man, I maxed out big time just full.
[Laughter]
Chris: I might get there.
Dave: Probably two months of eating it once a week was enough for a lifetime. I think I'm done for the rest of my life, basically.
Chris: Sure. Okay. It's nice to have a thing. Our weekly is this local pho place. I don't know if you... I always thought I was a ramen guy because you know all the care they put into the broth and it's got this deep, rich flavor and, of course, ramen noodles are delicious, and I love that you can get the cheep stuff. But going out for fancy ramen, I've had excellent ramen in Austin, so you've got it.
Dave: Mm-hmm. Mm-hmm.
Chris: You've got it around. But then it's also so rich. Sometimes you leave ramen and you're just like, "Oh, my God. Blah." But I don't find that the case with pho.
Dave: If you take ramen home, it turns into a gelatin. Did you know that?
Chris: That's not happening. Yeah, gross.
Dave: It's just rowdy, man.
Chris: Yeah. Very fatty.
Dave: When you start... You're like, "Oh, I put that in my body. Whoops!"
Chris: Yeah! [Laughter]
Dave: [Laughter] Anyway--
Chris: Whoops, indeed. Yeah.
Dave: Oh, I put the whole thing in my body. [Laughter] That's unfortunate.
Chris: I've switched, man. There is this pho place by us that is so good.
Dave: Dude, fresh and zesty.
Chris: Now the whole family, we roll in; they know what we want. It's not that we never switch it up, but we are absolute regulars there, and I love it.
Dave: Fresh and zesty. Get some tofu spring rolls.
Chris: Can't get that to go either, though. It's just not the same.
Dave: No.
Chris: I want a hot bowl of soup.
Dave: It's going to spill in your car, 100%. [Laughter]
Chris: Well, there's that, too. Yeah.
Dave: I think all pho containers have the same flaw (in my experience).
Chris: The same phlaw.
Dave: Phlaw that the lids don't seal (in my limited experience).
Chris: Indeed.
Dave: Oh, man. Okay.
Chris: All right.
Dave: Okay. Websites.
Chris: Well, we're 14 minutes in. Probably 15 with the intro.
Dave: We were here to talk about websites. All right.
Chris: We are, so let's start by not talking about websites.
Dave: Yeah. Aspiring Game Developer writes in (a browser game developer), "Do you have any experience building games in the browser? In recent years, I've only used some light physics on my site for fun, like using Matter.js to throw HTML elements around for fun."
Chris: Cool.
Dave: "Building a full-on game with accessibility considerations and browser limitations in mind seems like a challenging task."
Chris: You've built some games. Games is just... Well, what does games mean? There are a whole bunch. I have a CodePen collection that I've named "games," and it's a whole bunch of games.
CodePen is limiting in that it's just the core browser technologies, really. We don't offer any specific data storage or back-end technologies or anything. And some of them are really, really fun.
I'm thinking of Cup and Pup - or something. It was like a David Desandro game that I really, really liked that was very clever. That's just one example.
There are tons of amazing ones. There's one where you click to build towers, and you have to click in a certain order to build this perfect tower. Just a beautiful game. That's happening in the browser.
But are those what you mean, Aspiring Browser Game Developer, or do you mean - I don't know - Sonic the Hedgehog 4 - or whatever? I don't know. Isn't there a difference? You know more about this world than I do.
Dave: Yeah, I mean if you're just drawing to Canvas, you can do that. I think we made that game. We played it at a ShopTalk live in Pittsburgh for the Val Head conference we went to.
Chris: What did we play?
Dave: We played that Global Defense game I made where you went pew-pew-pew.
Chris: Oh, yeah.
Dave: And everyone rotates their phones. And it was all connected to Web Sockets. It was fun, but it was all Canvas-based. And so, out of the gate, Canvas is probably the least accessible unless you build your UI in something that is accessible like HTML or whatever.
Chris: Oh, interesting. By accessible here, you mean the same way that websites are accessible, right? Like people being able to play it to understand what's on the screen and all that. Yeah.
Dave: Yeah, and I mean you know there are different levels of that, too. How responsive do you want to be? Make it work with a keyboard, arrow keys, or WASD keys? That's chill. I think that's a form of accessibility. Do you need an on-screen game pad input? Uh-oh. It's getting a little bit harder to do that.
Chris: Hmm...
Dave: If you're making a game, if you want to make Mario in HTML or in JavaScript, I'd probably recommend using a library like PixiJS.
Chris: Okay.
Dave: PixiJS, I've built... Was it Pixi or something like Pixi? I built a game. It was actually for Microsoft but then it got canned, the project, unfortunately. But it was... And I was using that. It's cool.
I think you have to be really performance conscience because if you're making a game and it's for schools, it has to work on a Chromebook, so you have to think about am I just throttling this computer.
Chris: Yeah. Yep.
Dave: That's stuff you have to think about. You can actually use Unity or Unreal, and they can spit out Web games using Wasm.
Chris: Really?
Dave: It basically has a little Wasm bundle that runs the game in browser.
Chris: Have you been feeling that you see that more and more there's, like, "Oh, look at this cool game. Oh, here! Look! You can just play it right in the browser"?
Dave: Yeah, Itch.io is full of them. Is Itch.io still around? I know they got sued by somebody.
Chris: I was just thinking of it because we have a games channel in Discord and someone shared one the other day. They were like, "I'm really into this game." Maybe it's the one Collinsworth is playing: Show Gun, Showdown - something.
Dave: Oh, yeah. Yeah. I actually didn't click on that yet because I am busy, but. [Laughter] The last game Josh told me to play was Balatro, and that just about took a month of my life. [Laughter]
Chris: Dude, I'm just a month too late on you, but it's ruining my life, Dave. I can't stop.
Dave: [Laughter] I can't stop either.
Chris: It's unbelievable. It's so good. Could you make that in the browser? I don't think that runs in the browser, does it?
Dave: No.
Chris: I don't think so.
Dave: But you could make a version of it. But then you have to think about... Let's say Balatro. You drag the cards to play them, basically.
Chris: Yeah.
Dave: Or you tap them to raise them.
Chris: Yeah, there's a lot of dragging happening.
Dave: Then you drag to sell, select, or buy. That drag interaction, somebody with limited mobility is not going to be able to do that. You have to think about your interaction models. How could they do that?
One thing I would probably consider if you're rolling it yourself is maybe look into the game pad API. Then somebody who, with limited mobility, could plug in their little Microsoft adaptive controller, Xbox adaptive controller thing.
Chris: Yeah.
Dave: And maybe use the game.
Chris: I think they did handle that. I mean that's interesting, why you're saying that.
I have an Apple TV. That's what I use to do streaming stuff. Then once in a while, when I download an app from my phone, it just shows up on the Apple TV because it's a universal app or something. Balatro is one that did that.
Dave: [Gasp]
Chris: And so, I go click on it. I'm like, "Ooh, that would be fun to play on Apple TV." Then the first screen that comes up--and this is pretty normal for Apple TV games--is a splash screen that says you need to have a game controller connected.
Dave: Mm-hmm. Mm-hmm.
Chris: Some games allow you to just use the remote. But obviously it's a lot more fun if you have an actual controller. So, they've done it somehow.
Dave: Yeah.
Chris: You must just arrow around to select the cards and then press the different input buttons to do different things.
You know I see people talk about the keyboard keys that do different stuff in Balatro. I'm like, "I don't even know what you're talking about. I just swipey-swipey on my phone."
Dave: [Laughter] Yeah.
Chris: Anyway, we just talked about that a whole bunch, but that is interesting. It is very pixel-y. Doesn't that factor into this a whole bunch? Are you trying to make a game that has that aesthetic, or are you trying to make it more vector-y?
Dave: Mm-hmm.
Chris: Are you trying to make it more 3D-y? I would think just the aesthetic guides a lot of choice-making.
Dave: Yeah. Yeah, I think it's sort of like what's your tech stack. If you want to run a shader, for example, vanilla Web tech is maybe not your thing exactly. You could make one and put it into Canvas. Canvas is super-powerful. But at that point, you're maybe better off with a native technology that then you pour it (via Wasm) into something.
Chris: Mm-hmm.
Dave: That's where I'd say, you know, I'm looking at the Pixi.js UI library and they have some components like switcher, button, checkbox, fancy button - whatever that is, input list, scroller, slider. It sounds silly, but you kind of do want to have some primitives probably that handle these different modalities you want. If it's your first game and you're really passionate about accessibility, I would use a framework. If you're just wanting to make little demos and stuff like that, do whatever you want. That's for you. But if you want broad-broad adoption, you probably need to invest in tooling or figure out how to do it. Hopefully, that's a good answer for you.
Chris: Yeah. I'd say go for it, too. They put in the title "Aspiring Browser Game Developer," so there's probably a real intention to be in the browser.
Dave: Mm-hmm. Yeah.
Chris: Which is cool.
Dave: Yeah.
Chris: Good for you. Yeah.
Dave: I mean the nice thing about browser games is, well, there's good and bad. Browser games, people can hack it. They can script in the console and hack it. I think anything with a leader board or something like that, you probably do sort of need to go to native Web tech or some sort of wrapper - or whatever. We probably need something. You know what I mean? But again, you can still write in Web tech and then wrap it and then send it, you know, ship it. That's an option.
Chris: That's an option. Fun. Good luck. Just make a trivia game in HTML.
Dave: Yeah. Make a bingo game. [Laughter] Very minimal stakes. Lower the stakes. Lower the scope and lower the stakes.
Chris: Yeah.
Dave: Yeah.
Chris: Yeah, and get them out. Make it fun. That's the hard part.
Dave: Just make it.
Chris: The CMS -- another kind of pseudo anonymous one here -- CMS Wrangler writes in. "I work at an agency. We make bespoke sites for clients. CMS is almost always required. We teach them how to use it and then, boof, off they go. But give it a month and their content is a mess. They put random old H2s and 3s, and stuff is wrapped in weird tags and whatever." Yeah.
He says, "Gradually, at first, but then I've witnessed entire articles be written in H2 tag." That's amazing.
You ever see that site that didn't close any H2s? It's like a sewing site or something.
Dave: [Laughter] Yeah.
Chris: You could scroll it forever and it just gets absurdly humongous.
Dave: It keeps getting bigger and bigger and stuff.
Chris: Yeah.
Dave: Yeah.
Chris: "How do newspapers and serious websites keep their sites so well put together? Do they have Web experts monitoring everything before it gets published, or do they just have smart systems to catch more edge cases like automatically stripping out empty paragraphs, for example? Or perhaps their onboarding is just really good." Yadda-yadda. What's the deal? How do you keep a CMS clean? A very interesting question. I like it. I like it.
I don't know, Dave. What was the closest thing you guys were working at building something for a publication? You're a publication.
Dave: We did... Well, we worked on the Wired website.
Chris: Huge!
Dave: Like the current version that exists. That one, we did less of the implementation, though. It was more kind of the theme work.
Chris: Mm-hmm.
Dave: Then we handed that off to somebody who implemented it, a talented team who implemented it.
We worked on this site called The DO Lectures, which was kind of like Ted Talks, like videos and stuff like that. I think it scaled pretty well. It was around for a while. Now I don't think... If the website is online, it's certainly not our stuff anymore.
I think there are two things. I think you have to assume the person writing is your enemy. [Laughter]
Chris: [Laughter]
Dave: And so, that's step one.
Chris: Okay.
Dave: Threat model detected, okay? Threat detected: authors who have unfettered access to a WYSIWYG. That is the worst thing.
Chris: That's a nice one. I like that. That's good.
Dave: Whatever you can do to kill every button except bold, underline, and strikethrough (and italics, maybe), you should do. You know what I mean?
Chris: Okay.
Dave: You should just rip all those out. They don't need those. Blockquote, yeah, let's give them blockquote. But strip all those buttons out. They don't need all those buttons.
Chris: I like that. Cool.
Dave: If you can get them to write in Markdown, that's probably even better. But that learning curve is actually oddly huge for authors, I've learned. [Laughter] People who write have a really big gap between Markdown.
Chris: Yeah. The thing I always think about with Markdown is I think it's fine. That could be successful. One of its biggest strengths is that basically -- this sounds almost ... to say it -- you don't have to use P-tags.
Dave: Mm-hmm.
Chris: That's the biggest thing. I don't know. You can't expect people to write. Nobody will do that.
Dave: Yeah, yeah.
Chris: Yeah.
Dave: That's where it starts messing up is the P-tags. [Laughter] Then span tags get involved and things like that when the WYSIWYG kicks in.
Chris: Yeah, okay, so what is the computer science concept there? Be really stringent about--
Dave: Limiting scope. Yeah. Be liberal.
Chris: Like if you put a button element in there, it's literally going to strip it. Sorry.
Dave: Yeah, be conservative in what you do. That's I think the actual computer science principle there. Liberal in what you accept. You accept any amount of words, but you are conservative in what you do. I think that's step one.
I think step two is education, but no one is going to read it. So, maybe don't spend a whole bunch of time in there.
Step three, what I'd say about this is newspapers, big ones--New York Times, Washington Post, things like that, The Verge, our favorite website, The Verge--
Chris: The best.
Dave: --they have volume. They're posting 40, 60 times a day.
Chris: Do they really?
Dave: Yeah.
Chris: Yeah, I definitely don't get their RSS feed. It's too much.
Dave: It's way too much. It's like 40, 60 articles a day. They, by volume and by number of eyeballs that hit it, have solved all bugs faster - if that makes sense. Extremely long URL breaking the article frame container because no one put anchor wordbreak all - or whatever - on there, I think they've solved those problems through attrition, more or less. You have to consider that.
There are places. We knew... Who did I have, Kristin on, from The Verge working at Vox and working on the course platform.
Chris: Mm-hmm.
Dave: I think Vox has since moved off. Vox Media, is that what it was called? The whole thing have moved off and gone to WordPress - or something - if I recall correctly. That was kind of a dramatic move.
Chris: Oh, gosh. Did they? Yeah, what did they have, Chorus - or something - that was their own thing.
Dave: Yeah, Chorus. And Mandy Brown worked on that for a long time, and Jason Santa Maria, I think.
Chris: Hmm... It is kind of a big lesson, you know. If anybody says, "Oh, we have our own custom CMS," you go, "Oh, that sucks." [Laughter]
Dave: [Laughter] Well...
Chris: Not that WordPress is some amazing thing, but it is dangerous to run your own CMS also.
Dave: I think a custom CMS is awesome. But I think this idea it's going to solve all problems is way off the mark. I think you need to say maybe customized regular thing is better for you. I think you have to weigh that pretty heavily.
Chris: Well, I have stuff to say about that because I think it's really related to the question at hand.
Dave: Yeah. Go ahead.
Chris: How do you protect against problems?
Dave: You are probably the biggest publisher I know personally, so I'd be curious.
Chris: Well, I do have some because it's pretty small fry, anything I've ever done. I've never worked for a super major publication, but I do find it absolutely fascinating and it is one of those, like, jobs. Like, "Man, another... That was another path for me." Not that all paths are closed to me now, but I really like the idea of working on publication systems.
Actually, just pause one second. I'm going to grab this.
I just got this in the mail yesterday. I think I backed the Kickstarter or something. I'll hold it up for Dave. it's called "Designing Content Authoring Experiences."
Dave: Ooh... Ooh, that's a neat book.
Chris: Greg Dunlap. Yeah.
Dave: Oh, wow.
Chris: Just hot off the presses. Really cool. I have not read it yet, but I already know I'm going to love it because just that topic is so fun for me to think about. Yes, I love designing content authoring experiences. I like doing both. I like doing the writing and making sure that the experience of where and how that content is being produced is done.
I like both sides of it. I like the technical side, and I like the non-technical side and the people side and all this stuff. Really cool, a fresh book about that.
But this is one of the questions, like, "How can we prevent bad crap from being created in this?" is like, "Yeah, sure. Of course, there should be humans in the process." That's probably the most important thing is that there is somebody looking at it, like, "Oh, I made some content. Can somebody else have a look at it before it goes out?"
Perhaps somebody whose job it is to make sure content goes out cleanly. Just that alone is, like, cool. Done.
Even The Verge, with many, many articles a day. They probably have a bunch of people doing this. But you might be able to just even have one whose job it is just the content cleanness. You know make sure that stuff goes out. And it can be automated.
Dave: But the person authoring does not have a publish button, too. They have to say, "Hey, editor. I finished."
Chris: Probably not....
Dave: You know what I mean? It has to be signed off.
Chris: Yeah, so the CMS has to support that kind of concept. In WordPress land, it's like you're an author not an editor - or something.
Dave: Mm-hmm. Mm-hmm.
Chris: You can adjust how those roles operate. Relatively important.
In the CSS-Tricks days--and very minor; again, this is just baby stuff--I didn't hit publish. I wrote. Jeff hit publish. You know?
Dave: Oh, wow. Yeah.
Chris: He was the editor, so he had a final look.
Dave: That's, I mean--
Chris: And there's stuff built into the CMS as well, or it can be. Before you hit publish, you could wire up that publish button to make sure that it has tags. Are there no tags on the article? Well, then you can't hit the publish button yet.
Dave: Mm-hmm.
Chris: That will clean that type of thing up. There's also more baked in processes. You drag and drop an image into the article. Great. That's a great content authoring experience. That's how images should work while you're authoring because I think that matches people's mental flow.
I'm writing a post. I don't want to stop and crop an image and think about what size it is and worry if I made the WebP version and all that. You drag and drop and it should just be where you want to put it. I think that's the best experience. But whatever automation is in place then there should create the WebP version--
Dave: Mm-hmm.
Chris: --and create the whole scrset and size syntax and just deal with all that crap for you. That's making sure the content, when you hit publish, isn't crap.
How many horror stories have you heard somebody is like, "Ah, there's a 52 megabyte jpeg on the homepage of the Ferrari Scuderia F1 website - or something.
Dave: Yeah. Always.
Chris: Embarrassing accident.
Dave: Yeah.
Chris: Yeah, always. Just constantly. But you can CMS your way out of that.
Now, here's another one I think of that's just classic is that, in a lot of CMSs, there's a title and then this other block which is just, ew, everything else (by default). Ideally, that can be customized.
What happens in the title? Can you put a span tag in the title? Maybe, maybe not. Probably not. Probably it'll either get stripped or escaped because that's built into the technology of the CMS. It's trying to prevent you from doing stupid crap in the title. It just wants text up there. It's like a type. It's text. Use it.
Dave: Mm-hmm.
Chris: That's the CMS protecting you from doing dumb crap there. Now think of what else could you do then? The more that you can keep out of that one below it, the everything box, "Write the rest of the owl down there." [Laughter]
Dave: Yeah, the danger box. We'll call it danger box from now on. It's called the danger box.
Chris: Yeah, the danger box.
Dave: Yeah.
Chris: Unfortunately, that's where a lot of the content authoring happens. But I feel like, as much as you can pluck out of that the better shape you're going to be. That's what Craft CMS excels at, for example.
Set up your content types first. Think about that first. What are all the stuff?
You can augment it at any time but do that. Can you put your images? If there's a gallery, can you make that a separate authoring experience? Write your excerpts separately. Do as much separately as you can.
Dave: Yeah. If you're writing HTML into the danger box, you are in the danger zone, officially--
Chris: Right.
Dave: --because unless it's a short code that you are generating HTML from or WordPress block or whatever, writing HTML is a danger zone because, guess what, you put a width in there.
Chris: A great rule. Just literally never do it.
Dave: In ten years, that never works.
Chris: Oh, it will not.
Dave: Or the colors. Oh, bloop. You changed the theme. It doesn't work anymore. Writing HTML in the danger box is bad.
Chris: In my opinion, that should be out of the question immediately. There should never. Not even in an edge case should there be HTML written into the danger box. Never.
Dave: Yeah. Never.
Chris: There should always be at least one abstraction between that. If your thing can't do it, then editorially you need to be like, "I understand what your need is. We're going to have to do without, and we're going to have to make it a little task for us at some point to support that thing that you want to do. Maybe we can even circle back and improve that article in time."
But don't just be like, "Well, we've got to do it." "Oh, we don't have a thing for columns? I'm just going to put in div style equals display flex. Gap one rem. Just chuck it in."
No. No. No.
Dave: No. No, no, no, no. No!
Chris: Do not do that.
Dave: I mean you could do... what better art direction, my thing, have a head block where you write CSS and it goes into the head. You basically have--
Why that works is it's like containment. You've contained all your overrides in one place. And so, that's something to think about.
Chris: Mm-hmm. What I also like about that, though, is it's isolated to CSS.
Dave: Yeah.
Chris: That you're applying to that one-off page, not HTML. Don't do both.
Dave: Yeah. Yeah.
Chris: Okay. That was good, though. That felt good to talk about, like, how do you protect the CMS? We should almost turn that into a blog post at some point.
Dave: Okay.
Chris: The protective things you can do for authoring.
Dave: Defensive CMS.
Chris: There you go.
Dave: Defensive CMS. All right.
Chris: Coming soon to A Book Apart.
Dave: Yeah.
Chris: This one is for you, Dave, this next one.
Dave: Hey! Chrome Dave Tools. Chrome Dave Tools writes in, "Do you sometimes feel like you have superpowers browsing the Web, like you can read between the lines when doing everyday stuff like shopping, booking tickets, etc.? You can smell why a form is not submitting, and you can even peek through the console if you're not quite certain. You can tweak stuff to bypass a modal that's not dismissing properly. I suppose all professionals experience this like a chef going to a restaurant, mechanics working on their own cars, but I'm using the Web for absolutely everything and it feels like we all have x-ray vision."
Chris: Hmm...
Dave: I mean, yeah.
Chris: Classic. Of course.
Dave: Yeah. It had to have been the other day but, like a true Clark Kent, I did not reveal my superpowers. [Laughter]
Chris: Yeah. Okay.
Dave: It was just like my wife or somebody... my son, maybe... was just like, "Oh, why is this not working?!" I just was like, "Don't open Web inspector." [Laughter] I don't need to know that. I don't need to know why it's not working.
But usually, yeah, it's funny. I had this situation. I bought a car, Chris. I bought a Jeep. Jeeps are cool.
Chris: Did you?
Dave: Yeah.
Chris: Can the top come off? That kind of Jeep?
Dave: Oh, yeah! Oh, yeah!
Chris: Oh, gawd.
Dave: Party down!
Chris: You list in Austin. You might as well. I'm so jealous. Ugh!
Dave: Yeah, it's sunny like 9,000 days a year here, so I'm going to Jeep around, beep-beep in my Jeep.
I'm actually leasing it, so it goes away in four years - or whatever. So, I got a bank. A bank sent me a thing, you know.
Chris: Uh-huh.
Dave: "Sign up for our bank." I go to the bank. I sign in. I'm like, "I'm not going to remember to pay this every month, so I'm going to set up automatic bill pay." Right?
Bill pay doesn't work. Crash!
Chris: Oh... Yeah.
Dave: Guess what.
Chris: What?
Dave: Error on line 9,000 of react.react - or whatever. And it was just like, "Okay, cool. Somebody broke it and then left for Christmas." [Laughter] Very clearly.
I come back, and it could have been a situation where I didn't have a payment in the system, so I wasn't officially enrolled or whatever. Maybe something like that. But anyway, I had to come back the next month and set up my automatic bill pay.
But it was just that thing where it's just like I was like, "Why is this not working? This is stupid. Who messed up?" It was somebody broke the bank website and left for Christmas vacation. It is what it is.
Chris: Wow!
Dave: You'd think they'd want money. You'd think banks just generally are interested in money, but you know. Not this time.
Chris: Yeah, I would think that.
Dave: Not this time.
Chris: Yeah. I don't know. My classic is buttons have a habit of being disabled when I don't want them to be. [Laughter]
Dave: Yeah.
Chris: I always go into dev tools, and I'm like, "Now you're not." [Laughter]
Dave: Yeah.
Chris: It doesn't always work because obviously sometimes buttons are disabled for a reason. I am such a jerk about it at work.
Dave: Mm-hmm.
Chris: Oh, my God. If we disable a button, I demand that there is something in the UI that explains why it's disabled, and it cannot be a title attribute on the thing. It needs to be in there, readable, why. It's like my number one UX thing.
Dave: Melanie Sumner has a good A11yTalk on that, accessibility talk.
Chris: Listen to Melanie.
Dave: A disabled button shouldn't exist unless there is something explaining why it's disabled. It's how it needs to work.
Chris: Nobody is going to be mad about that. They're going to be like, "Oh, look! It's gray. Oh, look! Here's some text saying why it's gray."
Dave: Yeah.
Chris: Almost a day doesn't go by where I'm like, "Why is that gray? What's the deal?" Just tell me!
Dave: Tell me.
Chris: What the hell! Designers are so precious about their little stuff.
Dave: [Laughter]
Chris: I'm so over it. Just say why with words.
Dave: Disabled buttons are weird.
Chris: Okay. Well, that's fun. Thanks for writing in, Chrome Dave Tools.
Dave: Yeah.
Chris: Jon Ellwood... Joooooooon writes in, "I saw--" This is an example of a slightly old one. Sorry, everybody.
Dave: [Laughter]
Chris: "I saw OpenAI had a deal with Vogue and other magazines they own to use them as content." OpenAI said, "Okay, here's some money. Now you can use our entire historical catalog to train your LLMs," or whatever.
It's funny because you're like, "Why do they get money and I don't?"
Dave: Mm-hmm.
Chris: I had a website. You don't have to pay me. You know? Remember when Mullenweg/Automattic was like, "Oh, yeah. We'll take a check, too."
Dave: Yeah.
Chris: "Yeah. Use everything that everybody else has written to train your LLMs." If you're big, you get a check. And if you're small, you don't. That's the kind of thing that just makes my blood fricken' boil.
Dave: It's very numb lawyers-based, you know.
Chris: Yeah!
Dave: If numb lawyer is greater than four, you know. [Laughter]
Chris: It's just so in plain sight.
Dave: Yeah.
Chris: You're like, "What is going on here?" Okay. But anyway, do y'all think it means that we're going to start to see AI models that, for example, are left or right leaning (as publications tend to be and have every right to be)?
For example, Fox AI. Is there a Fox AI that could be just super right leaning? I think we're already seeing this, of course. What's more interesting to me, almost, is that LLMs tend... If they're good, they tend to be trained on an absolute crap load of stuff, way more than all these magazines combined could offer. It needs to be trained on a corpus of text that is way just absolutely astronomically enormous. The leaning is more like a leaning of humanity.
Dave: Mm-hmm.
Chris: Of all published works, which still has leanings to it, especially notable in the generative AI of images.
Dave: Mm-hmm.
Chris: I'm sure we've seen those news stories, right? If you ask it, "Show me... Draw me a picture of a CEO," guess what color they're going to be.
Dave: Mm-hmm.
Chris: They've gotten better at that. Remember when--? I think Google overcompensated at one point. If you're like, "Draw me a picture of - I don't know - a Caucasian CEO, it would just draw you a black one anyway."
Dave: Yeah. [Laughter]
Chris: It was like, "Too bad."
Dave: Nope, we're not even engaging. [Laughter] The only way to win is to not play, kind of.
Yeah, there was an article actually from Gizmodo about ChatGPT's political views are shifting right, a new analysis finds. I am not going to vouch for this finding or study or whatever, but it's a Nature.com-published study, so I don't know.
I think it's possible. If the left leaning corpus lawyers up and says, "You can't use our stuff," and they have to retrain on not paywalled stuff, well, guess what. There's maybe that shifts it right one tick or whatever.
Chris: Hmm...
Dave: I do think the corpus is probably large enough that it is not going to do that. Would I trust something like x.com's Grok? Probably not. You know what I mean?
[Laughter]
Chris: Hmm... I'm going to go beyond "probably" for me into all the way absolutely not, never once.
Dave: I'm just going to not do that, so I think there are maybe some subtle prompt shifting or something like that that people are doing, especially in response to the new Administration. But yeah, I don't know.
It's sort of like it would be interesting. This article coming out to, like, the shift has happened and it's one month after Donald Trump's second presidency.
Chris: Mm-hmm.
Dave: That seems like... How could it shift that quickly? Does that make sense? Maybe it's been shifting. Maybe - whatever - 2024 was a big year for conservative writing.
Chris: Yeah. The article headlines. It's also like five paragraphs long. It doesn't look like very deep reporting on this particular subject.
Dave: I think it's possible you're going to have left and right, politically left and politically right LLMs. But I don't know how that happens or what it would take to make one.
Chris: I have one that I have to get off my chest here because I have this image saved on my desktop and I can't keep looking at it, and I have no intention of making this a heavily politicized podcast, but I'm a human being, so politics affect me, too.
Dave: Mm-hmm.
Chris: I would love to delete this image, so I'm going to use ShopTalk Show as my vehicle to get rid of it. [Laughter]
I was with a guy. I don't know him that well - or whatever - but he started talking about crap. He talked about how mad he was at the mainstream media. That word stuck in my head. People use that one a lot, right?
I was like, "I wonder what people think when they think mainstream media." What brands come to mind? Does that mean the New York Times? Does it mean the Washington Post? Does it mean CNN?
I was like, "Hmm... He doesn't seem like a New York Times kind of guy. I bet he means something like CNN." I don't even know enough about CNN to like or dislike them. But I was just like, "I'm just going to go to their website."
I just went to cnn.com. There's a bunch of crap on there. Lots of Trump news because you can't avoid it.
Dave: Mm-hmm.
Chris: He's just doing lots of crap at the beginning of his administration. One of the articles that was sitting there -- this was like last week -- says, "Trump takes action to ban transgender women from women's sports." I didn't know anything about this. Apparently, Trump really wants to do that.
I know that there's been generally essentially a war against transgender people. Really pisses me off.
Dave: Mm-hmm.
Chris: There's my political opinion. Don't like that. Sorry. That's who I am as a person. That is not cool. Just live and let live. What the F.
Okay. Anyway, so at the beginning of this article there is a photograph. It's one of these - whatever. It looked like AI to me because it just looked weird-looking. But I traced it back as well as I could, and the guy is a legit photographer for Getty Images.
It appears to be real. Although, it was really hard to really verify the guy's identity. This guy, he's on social media, but he only ever posts in this exact format. I'm like, "Even you could be a bot," or whatever.
Here's the photo. Trump is in the fricken' middle. He's signing it with a piece of paper. And he is absolutely surrounded by young girls and women.
Dave: Mm-hmm.
Chris: There are a few, maybe 30s, women sprinkled in there here and there. Just surrounded, and a lot of them just have big smiles on their faces to be there. The reason I kept staring at it is I'm like, "Who are you? Who are these little girls that are just giddy over the fact that the President is just making sure that there'll never be a transgender person that never play in their sports." I don't think you're old enough to think that way.
Dave: Yeah. Yeah.
Chris: It's just so bizarre. What is your story? How did you get there? Who paid for your bus ticket? Are your parents in the background? What is happening here? Are they all just from D.C.? I just would love to know the story of this.
I want to send it to P.J. Vogt at Search Engine. Do you listen to that show? PJ is great.
Dave: Yeah. Who brought their kids there?
Chris: Yeah.
Dave: Kids are all in soccer gear and stuff, right? And so, it's just like... I mean, a President celebrating women's sports is not controversial. [Laughter] That's great. And I wonder if they build it to that as the kids, you know. But then it's... And it's more--
Chris: Oh, maybe, like, "What's the real story there?" Nah because he's signing with a marker. The marker is saying, "This is an executive order. We have won the thing." Even though it has no real power over what any individual sports league does.
Dave: Yeah. Yeah. Tuesday is shmuesday. [Laughter]
Chris: Yeah. But I was thinking of the guy, the friend I was with, who was like, "I hate the mainstream media." Then, of course, he asked me. He was like, "Well, what do you think about all this gender stuff? You have a daughter." Kind of phishing, almost, it felt like to me.
Dave: Mm-hmm.
Chris: I don't know this, and I was clear about my views. But I was like, "So, you hate the mainstream media. Yet, you're talking point is, essentially, we've got to get this going on this conversation about transgender people in sports." I'm like, "You were fed that. This is not a problem that comes up in day-to-day life. This is not some scourge on the country. It's just not."
Dave: Yeah. Yeah.
Chris: It's just bait crap that's just being fed to you, and you're the one being like, "Eh, the mainstream media"? That was put inside your body.
Dave: Yeah. Yeah.
Chris: I just got mad about it, and I want to know how this photo was taken, who these people are, what their lives are going to be like, what they actually think. I just have a thousand questions about it. But this is not... I just want to delete the photo from my desktop. Thank you, everyone, for listening to me so I can do that. [Laughter]
Dave: The whole mainstream media thing bothers me because it's like, "Okay. You don't like mainstream media. Who do you like?" A billionaire news corp. Fox News? Interesting.
Chris: [Laughter] Yeah.
Dave: They also seem potentially mainstream or profiting from that. Let me know.
But then... Or it's like, "Do you get your news from a guy wearing sunglasses in a car?" Oh, please don't do that. [Laughter] That's my number one thing I'm trying to impress into my kids.
Chris: Right. Well, you know what it actually is. It's single paragraphs of text on Facebook. That's the real news.
Dave: That's... yeah, well, yeah, that's real news.
Chris: That's you digging deep there.
Dave: I mean my wife and I very frequently go, "Oh, man, I read that. I read about that. Well, I didn't read it. I just read the headline." [Laughter] That's how... [Laughter] My wife and I very regularly do that.
Chris: At least you admit it to each other. I'm guilty of that. I say I read RSS a lot, and I do, but I read a lot more headlines than I do the entire article. I tell you what.
Dave: Good at headlines.
Chris: Yeah.
Dave: Yes and just inferring all of the context in there. I wonder if that's the poison, dude. Headlines are an antipattern.
Chris: Yeah.
Dave: Headlines are driving us apart.
Chris: Driving us apart. Fair enough.
Dave: Because really you can put whatever bullshit in the headline and people will fill in the rest. Back to the CMS question. [Laughter]
Chris: Right. Right. That's why I don't blame... I think it was relatively progressive when it became a really common thing to see. I think the Washington Post does it. I think Business Insider does it. There's always a headline. Then there are three bullet points after it because they know we're going to get the headline, but I'd love it if you would get a little bit more. And this is the way of saying, like, "Okay, here are the most important things about this article," like the three bullet point thing. I don't hate it, honestly, if it gets people learning a little bit more about it, including myself.
Dave: Oh, yeah. I need bullet points. But I feel like I could write a blog post called "Web components are bad," and I'd be really curious. People will just fill in all of the reasons why.
I could say, "I was wrong. Web components are bad," or something like that, and people will fill in the reasons about why it is before they even click on the article.
Chris: Mm-hmm.
Dave: It would be really cool to try to capture that and just be like, "I'm just kidding. I don't think they are." But I'm curious. If you came up with reasons why they were bad (just seeing the headline), what did you think and feel? Why did we feel that bias creep up when this article headline showed up?
Hmm... Maybe I'll do that. Maybe I'll troll the Internet with a post. I'll do it.
Chris: Yeah. Yeah. I mean that is... If anything has become your style, Dave, it is that type of thing.
Dave: [Laughter] Yeah, well--
Chris: Experimental blog post. Even technologically sometimes, like your headline recently about I've been gaslighting you with ... on your website. [Laughter]
Dave: Website, yeah.
Chris: Yeah.
Dave: And MDX and Web components. And MDX sucks, by the way, big time.
[Laughter]
Dave: That's my full take. Yeah. I also have thoughts on chips was a good one. That was a big one.
Chris: Yeah?
Dave: Yeah. It started off with a lot of people are talking about chips. [Laughter]
Chris: Well, and you happen to have a secret thing with your blog posts that not everybody knows because it's one of the rules.
Dave: Oh, yeah> I've got a couple of those. Yeah.
Chris: You're very subversive with your blogging.
Dave: You've got to be. You've got to make it fun. Keep people on their toes.
Chris: Keep it weird. Yep. All right. Do you want to read this next one? Do we have time for it? Yeah, let's do a quicky.
Dave: We got it. We got it. Let's go speed round. All right. Yeah, we've got Ihor. "Hi, Chris and Dave. I was listening to the episode about the second brain conversation about IndexDB. Not to enable Dave's. I need to build a side project syndrome. But have you heard about PouchDB? It's a no SQL database built on top of IndexDB and it's compatible with CouchDB and can sync with it. It's a great project, especially if you're building a Web application that can work offline and store data locally and sync with the backend seamlessly when it comes back online. Definitely deserves a mention and attention from the Web community."
Chris: That's the second time it's come up for me.
Dave: Really?
Chris: Second time, just kind of recently, because I think I was talking about - I don't know - there's... What I love about this project is it's ancient, too. Go to pouchdb.com. It has this real old-school--
Dave: Yeah. it's got Rails era. [Laughter]
Chris: It looks like it could be the Moo Tools or something.
Dave: Yeah. Yeah.
Chris: But it's been around forever. That to me, especially when it comes to data stuff, is a real positive to me. I'm like, "Oh, yeah. This thing probably works." You know? [Laughter]
But the syncing is its killer thing, I think. At least that's what draws the attention to me because I think it's hard. Syncing is a difficult thing to do. If you can totally outsource your database syncing to a thing that just does that, that's highly appealing to me.
Image you're going to write a notes app. You're going to go to bolt.new - or whatever - and type in "I want a notes app, and I want it to look like this and use these technologies." Now you have the notes app of your dream that's using the coolest, hottest block editor, firebase auth, and whatever else crap it has.
But then you're like, "Okay. Where do I put the data, though?" This could be the answer for that kind of thing.
Now, you have lots of choices. But I think a notes app is one of ones that I think in my mind is like, "Of course, it has to work offline. Duh, right?" You can't just be like, "Oh, no. You can't write something down on your phone. You're not connected to the Internet." that would be absolutely unacceptable.
If you're going to rock the lo-fi, the local first approach, which is the hot way to think lately, yeah, just have a DB locally. Be saving data to that local database. And when it can, it should sync to the cloud. PouchDB can be your friend there, and I think that just rules.
Dave: Yeah, so PouchDB has come up in my searches. It looks awesome. I think the association to CouchDB was actually kind of maybe a negative. And only because I think I've used CouchDB in my past and was bitten by it.
Chris: Hmm... Yeah. Fair enough.
Dave: Back before it was a part of Apache - or whatever. I think there's just this... But that's on me. That's not CouchDB's fault or PouchDB, for that matter.
Yeah, I don't know. I know Nolan Lawson, he's on the website or whatever. Or he's on the commit history of PouchDB.
Chris: Is he?
Dave: Yeah, so I trust Nolan quite a bit.
Chris: For sure.
Dave: But yeah. I mean I think it's a very good tool. I just don't know enough about it. It's not immediately clear why it's better but it's definitely something to look at. I don't know.
Chris: To me, it's just that syncing thing. There are plenty of things that are like, "Yeah, this is a technology to store your data. You put the data in and you can get it out." None of them say, "And this is how you sync it."
Dave: Yeah.
Chris: That's the stand-out thing.
Dave: Scott Tolinski turned me onto this thing called Zero by Rocicorp, rocicorp.dev, and it's this weird... Basically, it's the same thing. It's like a local database sort of thing, sort of a... What are we going to call this? What's that called? It's not the Prisma, but it's called... It's not Dribbble. Drizzle Syntax, or whatever. It's kind of like that. You go and fetch things and grab related things.
A pretty easy syntax to reason about. I don't know. It looks pretty close to what I'd want. And it has this whole local replication.
Chris: What is it called?
Dave: Zero. I'll give you a link in the old show notes here. Yeah, I don't know what Rocicorp does besides this. I think they have some tooling. Yeah, quality Web developer tools. Replicache: oh, that's a big one. So, they know how to cache things.
Chris: Oh, yeah! I've seen this.
Dave: That's a big fricken' deal.
Chris: That's cool. Now I see. It does look nice. Of course, you get this whole new tribe of developers to try it if the code you put on your homepage includes JSX.
Dave: Hmm... Yeah. The secret. The fast lane to popularity.
Um... Don't use a Web component, though. Man, Web components are awful. New blog post.
Yeah. No, I mean Replicache is kind of this... You know that's... I think that's sort of what is working on the whole Zero thing. Yeah, what's cool about it is Scott had this demo or, I think, their standard demo. They're just pulling down reems of user records. You just get this whole big sheet of records, and you can scroll through them. It's all instant because it's all been localized.
Chris: Oh, really?
Dave: You hit refresh and, boom, it's back on instantly.
Chris: Hmm...
Dave: That's really compelling.
Chris: That's compelling.
Dave: I don't know. I'd like to maybe try my hand. I'm still... I made a goal to switch to Obsidian this year. I love Notion, but I think I'm done.
Chris: Yeah.
Dave: I'm trying to switch.
Chris: Okay.
Dave: But I still have this idea that I can't shake. I want this. I want inputs, which are just basically a folder but random strings of things, right? Just a database of ideas, right? Notes, organized notes or something like that. Then I want outputs, which are mostly just Kanban boards. Then I want to be able to do the GitHub to-do style thing where I turn this into a to-do. Now I have a to-do app inside this little thing. I click the boob icon and make a to-do. Those are the three features I want, and I think I can make it. And it needs to be like Markdown folder-based would be cool or actual writing to disk would be cool. Again, that makes it more complicated, so maybe I have five features that I want.
Chris: Mm-hmm. I admit this does look cool. I'll have to show it to my coworker here Robert. One of his things is that he feels like it's almost like a new era of computing is browsers and devices and stuff have gotten better that we're going to cross a bit of a threshold (or perhaps we already have) where we have to think a little differently about the local capabilities of those things to the point where it's like, "Let's say you have users and they have lots of data on your app. But what is lots? Is it eight megabytes of data?" If it is, you should just download all of it and just have it.
Dave: Yeah.
Chris: Then you don't even have to dink around with it. You have it locally, so instantaneous speed instead of this default way of thinking where you're like, "I'll do one little, tiny, query to get the next little, tiny thing that I need for it."
Dave: Fetch request. Fetch request. Fetch request.
Chris: Yeah.
Dave: Yeah. Yeah. No, I mean... Yeah, I think we could be more eager.
iTunes doesn't go, "Oh, man. We've got to really [laughter] think about fetch each title one by one," or whatever. We just have it all, all right here. Boom.
Chris: Yeah. All right, Dave. Good times.
Dave: All right.
Chris: We'll see you.
Dave: Powering down. Thank you, dear listener, for sending in questions. We actually love that, so appreciate y'all doing that. Be sure to stay out of the danger zone, the danger box. Don't live in the danger box. You heard us.
Speaking of danger boxes, don't do the bad social media. Do the good ones. We're on Bluesky now and Mastodon, so join us there for at least four tweets a month, posts a month.
Chris: [Laughter]
Dave: Then join us. If you want more than that, go into the D-d-d-d-discord, patreon.com/shoptalkshow. Chris, do you got anything else you'd like to say?
Chris: Hmm... ShopTalkShow.com. Support your local transgender person.