589: CSS Functions, Read It Later, Making Money in Business, and More

Download MP3

A quick bit of union news follow up, CSS function round up, Read It Later inside Feedbin, fun uses for a Stream Deck+, how to turn up the money dial in your own business, and having the audacity to call yourself a publisher.



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 🧡


[Banjo music]

MANTRA: Just Build Websites!

Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show. I'm Dave--in the shed--Rupert, and with me is Chris--in the office--Coyier. Hey, Chris. How are you doing today?

Chris Coyier: I'm doing just fine. Thanks for asking. Uh... Maybe a little follow-up, huh? I just saw... It was kind of a bummer what happened to Bandcamp, huh? We were just talking to Ethan about the--

Dave: Oh, gosh. Yeah.

Chris: About the unions and tech work and stuff, and Bandcamp had a union that got recognized, but then the company sold. Part of our messaging there was, like, "Hey, look. It doesn't hurt your company. It doesn't mean that it's not going to sell."

Sometimes, selling, people think of it as bad because it's like, "Oh, it's got some new owner. It's going to go to crap." You know?

Dave: Mm-hmm.

Chris: But a lot of tech workers think of selling as good because - whatever - their stock vests then and they make money. It's a little bit of a mixed blessing.

But they were evidenced that just having a union doesn't necessarily hurt the ability to sell the company. Although, the new company grabs it and huge layoffs immediately. Your union can't prevent that, unfortunately. Then the eight people that were elected as the union representatives, all eight of them were fired.

Dave: See, that seems sus, right?

Chris: It does seem sus, and they issued a statement, Songtradr did, that was like, "Uh... We didn't now they were the elected people."

You're like, "You had a meeting with all eight of them, so you kind of did." You know?

Dave: Yeah. Yeah. So... Yeah. I mean if a company gets sold, clearly they weren't making money hand over first, so layoffs are probably imminent. It's part of probably--

Chris: Mm-hmm.

Dave: Or maybe it was and there's--

Chris: Focus issue?

Dave: There's a focus issue, like it doesn't align with what the broader company... Epic Games is doing or whatever, right? But this one does just seem like, "We don't want unions. Goodbye, union reps." Like cut off the head of the snake, if you will, or whatever.

Chris: Yeah. It seems like there's so few people left, too. They probably have a hard time getting enough power to get it re-recognized with a new union.

Dave: Right. Does Songtradr or Epic, are they just like, "We'll take a federal lawsuit," an LRB - or whatever. "We'll just absorb that cost in the acquisition or the price of doing business."

It's really curious to me why they would say no. Unless the union made unreasonable demands, but I don't know. It didn't seem like it. I think people are just kind of like, "We just want to keep our job."

Chris: Yeah.

Dave: But maybe in this situation, there had to be layoffs, and they couldn't get around. I have no idea.

Chris: I'm sure the story is nuanced and whatever. It just doesn't look great. We just wanted to follow up because we had mentioned it just two shows ago.

Dave: Right. Well, and it was the day after the Ethan show came out. It was like, "Whoa! We were just talking about that! That is horrific." Kind of wild.


Chris: Um... Okay. In the Discord the other day, I had bookmarked something, and I just finally got around to looking at it the other day. It was a function in CSS.

I bet there's a good 30, a function being it turns into a value or it's used as a value (for the most part), and there's parentheses, there's a name in parentheses, just like in JavaScript. You send it in stuff and it does something useful for you.

Awful lot of them, but the one that was dropped in the Discord was called XYWH.

Dave: Hmm...

Chris: That was the function name. I was like, "That's weird. I have to look into that." It turns out it's not the life-changing kind of thing, but the idea is, at this XY coordinate with this width and height, make a box.

Dave: Hmm...

Chris: It's useful for clip path. That can be a useful way to describe how you want to clip something, especially the width and height. If you want to make a box inside another element, there's also an inset function to push in from the edges. That's kind of cool. But you're pushing in... That doesn't help you with a width and height.

Dave: Mm-hmm.

Chris: Pushing in from the edge, it could be a flexible-sized shape, so it's a little inconsistent in that way. The XYWH has another thing that it can do where it can say round at the end, and then you can pass it in any border-radius value, too. Not only are you making this basic shape, but the basic shape can have a border radius on it, too, which is also not possible within inset, so I was like, "Hey, good job, CSS. Always slipping in little, interesting, cool things it can do."

Dave: This is weird. Yeah, I'm looking at it. So, XY is your start coordinates. Right?

Chris: Yeah.

Dave: Yeah?

Chris: Yeah, yeah, XY, which is not logical, but I don't blame them necessarily because sometimes when you're clipping, you're not really talking about the inline flow direction of the text. Sometimes you want not that.

Dave: Oh...

Chris: It might be nice if there was a logical version of the same thing, but--

Dave: Yeah, it would be BI.

Chris: Yeah.


Dave: BIIWB--

Chris: Right.

Dave: --BS.

Chris: It could be, actually. There's a little bit of precedent for that.

Dave: [Laughter] Anyway, but it would be... Yeah. But then... Okay, and then WH is how big from here do you go, sort of, sort of like SVG rectangle, like, "Start here and then go to here."

Chris: Yeah, start here and then get bigger. Yeah, like a Pen, instructions to move from there.

Dave: Yeah. Interesting.

Chris: But yeah, it's just the width and height of the box that you're representing.

Dave: Yeah.


Chris: Over at my blog, I put a good... I stole it a little bit from the MDN example, but I thought it was interesting. Imagine you have a car, and the car is going around a path.

Dave: Mm-hmm.

Chris: But the path has a hard edge on it, like a 90-degree turn. Well, I took the demo, and I said, "Well, then make the path that is drawn doesn't have to be 100% exactly the same as the path that you animate the object along." So, I made a box that animates it along that path but rounded the edges by like eight pixels.

Dave: Mm-hmm.

Chris: That way when the car is going along this what looks like a square path, when it hits an edge, it still turns. There's still a turning animation on the car because it's following the border-radius rather than instantly turning from, say, heading upwards to heading right.

It's a little hard to describe, I guess, with audio. But you can imagine following a nice, curved path as a little more aesthetically pleasing to watch than another one.

Dave: Mm-hmm. Yeah. Interesting.

Chris: Yeah.

Dave: Interesting. That could be cool for a little effect, just to make a little circle blip around - or something like that. That would be kind of cool. Yeah... Interesting.


Chris: Kind of cool, kind of cool. Here's another one. Round. Didn't know that was a thing, but I saw a Pen from Jane Ori, and she was saying that it's not in Chrome. It's in everything but Chrome.

Dave: Everything but Chrome.

Chris: Everything but Chrome.

Dave: What a wild world we live in. [Laughter]

Chris: Yep. I know. It's weird. And one of the ideas is that you can round it to an interval of your choosing.

Dave: Hmm...

Chris: So, it doesn't just round 1.08273 to 1. You can round it up or down, or you can say, "Round it to the nearest 25 pixels," or 100 pixels or 50 pixels, which I can imagine being kind of a useful thing. It was pretty easy to cook up a demo where dragging something around would kind of snap into a predefined slot.

Dave: Mm-hmm.

Chris: I imagine, for people building those kind of Trello board kind of things or that kind of thing could be useful.

Dave: Oh, yeah. Yeah. Card machine, yeah.

Chris: Right. Yeah, yeah, yeah, or games or whatever. You can replicate that kind of thing in JavaScript a little bit but putting that down a level. Shift left. Get it onto the primitives. It looks pretty good.

Dave: Yeah.

Chris: Pretty good. So, round in CSS is pretty good.

Dave: I didn't even know that was being talked about. That's kind of cool.

Chris: I know. Stuff just arrives now. Yeah, it's pretty wild.

Dave: Yeah. Wow.


Chris: I saw one from Bramus (at Google) Van Damme.

Dave: Mm-hmm. Mm-hmm.

Chris: He posted about a function--I'm just on a CSS functions kick--called Light-Dark. If you define a color scheme at the root of your document and you say, "Light and dark," which is saying, "Hey, I'm a website. I've got light and dark modes." It means that if the system... It doesn't actually help you change colors that well on a website, but it is saying, "When the website is in dark mode, then stuff like inputs, checkboxes, and scrollbars will turn dark."

Dave: Mm-hmm. Mm-hmm.

Chris: Because you're saying, "I support that mode. I'm doing other things to support that mode." Well, that's neat.

But this new Light-Dark function actually helps you change colors when in those modes, so you can give Light-Dark. It has to be colors, and there can only be two of them. It's the color that applies in light mode, the color that applies in dark mode. How useful is that?

Now you can say, "Oh, text color is light in light mode and dark in dark mode," or vice versa.

Dave: I saw this one. This one sort of melted my brain a bit. I think it's cool. I backed out of using color scheme Light-Dark.

Chris: Yeah. Yeah, it caused me some problems. I'll tell you what.

Dave: Because Safari is weird. But maybe this is the fix because the thing with Safari was links were an unusable purple, but I could do color scheme Light-Dark and just be like, "Link color better purple," or something. I don't know. I backed out of Safari because it was weird.

Chris: It means... It essentially means you don't have to write the rather long--

Dave: @prefers media color scheme dark change a variable.

Chris: Yes.

Dave: Okay.

Chris: You just don't have to do that, so it wasn't impossible to do otherwise. It's just a lot. It reads nicer to me. Less crap in the way.

Dave: Okay. Question. Question.

Chris: Yeah.


Dave: It's a question for me. Should we stop at Light-Dark? Or should we have sepia or custom colors? There are forced colors as well, but that's kind of an accessibility tool, so maybe we punt on that for a second. I don't know. Is Light-Dark enough, or do we need more?

Chris: I think when you're designing the system of CSS, you need more. I don't think that's CSS's job is to say, "There should only ever be two themes on a website." That's too much for CSS, the language, to say.

Dave: Too heavy handed. Yeah.

Chris: Yeah, it's too heavy handed. But that's not to say that best practices don't say otherwise. You know? Maybe websites should generally only have two modes. I could see anything being argued here, and I don't have a particularly strong opinion on it. I can tell you I'm not rushing out to do any modes.

Dave: [Laughter] I'm barely getting the mode I got.

Chris: Yeah.


Dave: Oh, brother. I barely got one mode, so you're asking a lot of ol' Dave Rupert.


Chris: You're god-dang right. That was too much.

Our new version of CodePen has light and dark, and it was a fricken' journey. I found a little bug with it yesterday. I put a PR in. I know nobody else can see this. We're still kind of pre-alpha here. But it looks good. But I tell you it was a nontrivial thing to get in there. But I did want the system in place because it does seem to me, for an app-like thing that people spend a bunch of time in, that having the ability to do themes is a good idea.

Dave: Well, I just looked at your post, and it looks like there's a schemed color, right?

Chris: Well, exactly. They're not trying to be heavy-handed about this. They're saying this is a stepping stone property towards a more robust theme function. Bramus goes into this in more detail in the blog post. You should read that.

The idea is that it can take any number of themes and then the values don't have to be colored either. So, for example, perhaps you have a theme. This was also talked about in the Discord, wasn't it? iPhone has this mode that's like old people mode or something. I forget what it's called.


Dave: Yeah. Chris Enns, our editor--

Chris: Yeah.

Dave: --the best editor, pointed out you can set your phone into accessibility mode, but it's kind of big, large buttons for people with mobility, old folks. Yeah.

Chris: It's like phone, photos, mail.

Dave: Yeah.

Chris: It's like you get... I think there are six apps on it. It even hides all the apps, and they're huge buttons that just open those up.

Dave: It's great. I love it. I love it.

Chris: Yeah. Then you open the camera--

Dave: ...wanted to use it.

Chris: The camera just has a button to take a picture. That's it.

Dave: Oh, good. That's great.

Chris: There are no controls. Yeah, it's amazing.

Dave: That's awesome. Chris was using it as a shaming function for his teenagers. If they use apps they're not supposed to, you just put them in that mode. I think that's great.

I think it's cool. Yeah, so maybe that's... Are you saying maybe there's another mode where that exists? Should websites have this mode? I don't know.

Chris: Yeah. Yeah but imagine you did. You could make one of those modes that then you need more than color to change.

Dave: Right.

Chris: That's the point of this future coming function. What was it called again? Schema value?

Dave: Scheme color or schemed value.

Chris: Schemed value, notably not color. That way you could say, "Hey, if you're in that scheme, then the padding is four rems. But if you're in any other, it's one rem." You'd need that, whereas this Light-Dark function does not mess with anything but color.

Dave: Interesting.

Chris: Pretty cool.

Dave: Yeah. Yeah, so there's an idea of custom color schemes. Okay, yeah. Well, I'm now curious, more curious.

Chris: [Laughter]

Dave: I saw Light-Dark, and I didn't read the post because I was like, "Meh, I'm not using color scheme Light-Dark." But now I might reevaluate that, especially if ol' Safari adds this property. It'd be a lot easier to deal with.


Chris: I had a speed... I didn't read the article thing the other day with your blog.

Dave: Oh, yeah?

Chris: Yeah, I saw the title, "Read later in Feedbin." And instead of reading what you had to say, "I go, there's a read later button in Feedbin?" I didn't read what you had to say. I immediately just went to Feedbin and looked at the settings and stuff, like, "Oh, hot damn. There is a little read later." I didn't even know that was a thing.

Dave: I did not know, and it's cool because it kind of changed my life because, right now, I blogged about it, but I have 15 tabs open.

Chris: Mm-hmm. Yep.

Dave: Just persistent, and I know I'm going to read them, but I can't read them this week. Next week is much better.

Chris: Yeah. Yeah.

Dave: Like Aaron Kissane's wonderful series on Facebook, Meta--

Chris: Myanmar, yeah.

Dave: And Myanmar and Burma. I want to read this. I don't want it to fall off my radar. But they're pretty long posts. It takes about 20 minutes to get through one, so I'm going to take my time here to read this and absorb it, but I can't do it now, so I just keep the tab open.

Anyway, read later has a little bookmarklet you can use. Boop. Push it up and save it. Pretty cool.

Chris: It does, so my point was that I just jumped right to it. Then I was like, "Oh, it's a bookmarklet though. Eh, I hate bookmarklets." I love bookmarklets, but A) they don't even work in Arc. B) they don't work on any site with a CSP, et cetera.

Dave: Yeah, yeah.

Chris: So, I was like, "Hmm..." But Arc was the biggest problem, so I immediately Google "turn bookmarklet into Chrome extension," or something, and find exactly later then I did read your post and you found the exact same thing that I found.


Dave: Yeah, this guy, Peter Legierski, has a little convert Chrome bookmarklet to Chrome extension, or convert bookmarklet to Chrome extension. I assume it's trustworthy and I didn't just give my bookmark password to him - or something. But it's fine.

Chris: Yeah, but now you're going to send to Feedbin as a browser extension, which should be useful in any browser, but especially in Arc where you literally can't use bookmarklets.

Dave: Yeah!

Chris: That's cool. Then the other thing is that if you want to do this on mobile, all you've got to do is install Feedbin as an app, which as much of a Feedbin lover as I am, I never installed the app because I think it's almost good. The competition is a little stiffer on iOS. There are some really good RSS apps that sync with Feedbin, so I was like, "Oh, I might as well just use one of those." I like Reader. That's my favorite one.

Dave: Yeah, I'm using Reader on iOS, but not desktop. I use just the Web app. But Reader just has this one feature where you finish an article and you give it a little extra swipe, and it goes to the next article. You know what I mean?

Chris: Exactly! That's the main thing and Feedbin doesn't have that. It instantly swipes. There's no animation between the new articles. I know that's so petty and small, but I need that in my reader. But I installed the Feedbin app.

Dave: That's the only way to get through a thousand articles on a Sunday.

Chris: Exactly. You know need to swipe, not press the little button.

Dave: Yeah.

Chris: And I need to see it animate. So, a hot tip. But if you install the app, you don't have to use it. But because it's installed, then you get the "send to Feedbin" action in iOS.

Dave: Mm-hmm.

Chris: And then rock-n-roll.

Dave: That is the critical piece. I have Feedbin installed, and then I just did the delete from home screen thing.

Chris: Oh, I didn't even do that. You can do that?

Dave: Yeah.

Chris: I just tucked it in a folder.

Dave: That's fair. That's fair. So, yeah, I just send it to Feedbin. No problem.

That's the situation I ended up on a lot. I'd be on social media, and there'd be a cool article breakout, you know, five different posts. It's like, "Oh, I'm on my phone." [Laughter] "I need my computer to read this one because it's about code," or something.

Chris: Yeah.

Dave: So, I just was like, "I need this." Anyway, I'm glad it exists. Feedbin is cool. Pays for itself again.

Chris: Yeah, that's a good feature. I should have just assumed that that existed. Obviously, they want you to read stuff. If Feedbin is willing to accept your email newsletters and turn them into read later things, a read later bookmarklet is a lot smaller of a feature than that.

Dave: Yeah, well, and a lot of the times, too, it's like, "Oh, I wish I had this article so I could star it and share it with my secret social network that we have." But then could I also--? Now I have this blog. I can remember it. I'll subscribe to it later.

There are just so many functions going on. I want all my reading sort of channeled through Feedbin right now.

Here's another. There was a big, hot drama.

[Law & Order sound effect, dun-dun]

Dave: Thing from Marc Andreessen, The Techno-Optimist Manifesto. I'm not advocating for it, but I am curious to read this just because it was such a central piece of hot drama, but I just have the tab sitting around. I'd rather shoot it over to Feedbin. Wouldn't that be cool?


Chris: It would be. It would be. You know we had Manton Reece on the other day, too, of, and it makes me feel like I wish those things could get together a little bit. Now, Manton has the bookmark feature, and that allows you to highlight and save stuff.

Dave: Mm-hmm. Mm-hmm.

Chris: Yeah, I kind of want that world together, too. Notion does a good job of that. You can highlight code and not only just mark it, but you can comment on that little piece. It does make me wish that some of that was there. Those of us who are subscribing to each other's likes and stuff, it makes me wish that I could share it with my highlights and commentary right in there.

Dave: Mm-hmm. Mm-hmm.

Chris: I know that's what my blog is for, but the blog is for, like, I really mean it. [Laughter] It's a little higher effort.

Dave: Less casual. Yeah.

Chris: Yeah.

Dave: Like Jeremy Keith, Kottke, they all do really good link blogging. I wish I was that good, but I'm not. But I would like to add some context on why I thought something was good because it's probably weird. The stuff I like is just so fricken' random.

Chris: Yeah.

Dave: Or it's just 20 Verge articles in a row - or whatever. Anyway, I wish you could just sprinkle a little bit of context there and just be like, "This is what I thought. Here are my notes on that one, if anyone sees it."

Chris: Yeah. Uh... I know. Whatever. Obligatory Google Reader reference because that's what that did.

Dave: Oh... Google Reader.

Chris: Great. What else is happening in tech, huh?


Dave: Well, I was going to give you another... I got actually maybe two cool things here.

Chris: Ooh...

Dave: Back to RSS stuff, Safari 17 came out.

Chris: Yeah.

Dave: Mobile Safari, specifically, and it's weird it's not on desktop. Jen, let's talk; figure it out. But mobile Safari now has listen to page, so you can open up the little puzzle piece menu on the bottom (or the tab bar) and it'll give you an option for listen to page. And you can play the page, and even set it to 2x listen back, and it'll read pages to you.

I use this feature a lot. I use a Chrome plugin called Read Aloud. I used Edge's native read-aloud feature for a while.

It'll read the page to me from my phone, so that's kind of cool. I don't know if you've been midway through an article and then it's like, "Hey, will you go to Target - or whatever - and get this?" You're like, "Ah... Okay." [Laughter] But now you can just make Siri read you a page in your car. Pretty cool. I was just going to say--

Chris: Always been a fan of that.

Siri: Okay. I'm not....

Chris: Read me this thing.

Dave: Oh, sorry. Siri, I'm not talking to you.


Dave: Lady. I don't have that feature enabled, so I don't know how that happened. Anyway... [Laughter]

Chris: Yeah, neither do I. Let me try. Actually, I'm not going to say it. I feel like I've watched enough YouTubes about Apple. They never say it in YouTubes. They put it on the screen, which is probably not the most accessible thing, but I guess it happens enough that you know what they mean. They say, "I'm going to say this phrase that... Oh, I'm not going to say it. I'll just put it on the screen." And they're saying, "Hey, Siri."

Dave: Yeah. Yeah.

Chris: Anyway.

Dave: Anyway, reading pages, having websites read you pages is the bomb, and I have taken it to another level, Chris. Are you ready?

Chris: Yeah. Yeah.

Dave: I'm going to show you something here on our video cameras.

Chris: You know what I bet you did? You made it do it faster. Right? Did you 1.5 it?

Dave: I go fast. I go fast.

Chris: Yeah.

Dave: You can make Siri go faster.

Chris: Oh, you don't even need... You didn't even need to write it. It's built in.

Dave: Yeah. It's a little weird, though. You have to drill in. I had to listen to a page first and then I got access to the speed, so anyway I use this Chrome extension called Read Aloud. Right?

I listen to videos at 2x. I do all this stuff. I spend a lot of my time listening to things at very fast speeds. Then, simultaneously, I've been doing streaming and stuff like that, so I bought a Stream Deck. Right?


Chris: Yeah, Stream Deck. You've had that for a minute, though, the Elgato thing with the buttons, yeah.

Dave: Yeah, it's got buttons. It's got little dials. I've got the one with dials. It's fancy, right?

Chris: Yeah.

Dave: Well, I'm going to show you on this what I done did to it.

Chris: Okay, I'm looking.

Dave: You see this here? Let me get it to focus. Come on... Focus.

Chris: Oh, I didn't know it came in white.

Dave: Oh, here we go. Okay, so I have this read button here.

Chris: Yes.

Dave: Right here.

Chris: [Gasp] I see it. I got it. Yeah.

Dave: Now, on my Stream Deck, I can make... I'm going to turn off this stuff. Okay.

Chris: You're just on any website with an article, and you just hit that button and it works?

Dave: I can hit this button, and it triggers a control-shift-P, and it'll activate my read aloud extension and read a whole entire webpage to me.

Chris: Ah... That's awesome!

Dave: Then I got this little dial here for playback rate, and I twist the dial, and I can speed up videos or audios as I watch them. [Laughter]

Chris: Oh, my God!

Dave: I could just crank it up to ten and listen superfast.

Chris: Yeah, so you have a dedicated volume knob, which I want.

Dave: Dedicated volume. You get dedicated volume. I've got a playback rate knob. I've got a read knob. I've got a timer. But then this one is just to turn on 2x, just straight on and off.

Chris: Okay. Yeah.

Dave: Just like, "Hey, let's just do it." Then we've got this here. So, these are some cool accessibility ones. So, I have this one that just hits tab. It triggers a tab key, and so I can just zoom, zip through a webpage and see all of its focus states straight through. I could just speed-run a webpage. It's pretty cool.

Chris: Oh, it's a knob that you tab to. So, as you're spinning the knob, it's going tab, tab, tab, tab, tab, tab, tab.

Dave: Yep. Then if I go back, it's going like shift-tab, shift-tab, shift-tab.

Chris: Oh, my gosh.

Dave: So, it's kind of cool. Then I have these things that hook, these three buttons that hook into Microsoft Accessibility Insights. So, the first one is this one. Let me see here. Yeah, so this will run an accessibility test from Microsoft Accessibility Insights right on your site, so it'll highlight broken elements, like elements with accessibility errors.

Chris: Okay.

Dave: This one will go find your ARIA landmarks and highlight those. Then this one will highlight your heading order and show you, like big, like write out in H3 next to the H3, so you can know you have a good document source order and stuff like that.

Chris: Wow.

Dave: Anyway, it's been fun. I've been modding, I guess, customizing my Stream Deck to do these cool things I kind of do generally, but now I have physical, tactical buttons to do this job.

Chris: Yeah.

Dave: It's weird and cool.

Chris: I remember when it came out. I bought one, too. I'm looking for it because I don't leave it hooked up. But I was like, "Oh, I'll just get the little one," so mine just has six buttons.

Dave: But you could still do a lot with six buttons.

Chris: No, yeah, it's cool. But I want the knobs.

Dave: The knobs is good. Yeah.

Chris: I was just looking the other day. Remember, I brought that up in Discord. I want a dedicated volume control because I'm sick of grabbing my mouse and going up to the little menu bar and using it. I guess I have the little buttons on my keyboard, too, but I don't know. It's not as satisfying as just grabbing something and going up, down.

Dave: No, the volume knob is pretty stellar. I won't lie. It's the TV problem. Your phone calls are quiet, so you turn that up. Or that video is quite. That podcast is quiet. Then the next one is super loud, so then you're always messing with it.

Chris: Mm-hmm.

Dave: Or I'll turn on music, and it's like I want music, I just don't want that much, so let me turn it all down. You know?

Chris: The number one reason I bought it was for the Zoom leave meeting.

Dave: Mm-hmm. Mm-hmm. Just like a peace-out button.

Chris: A dedicated, "I'm done."

Dave: Yeah.

Chris: Just because that's always so awkward to be like, "Okay. We're done with this meeting now." And then everybody is... You can literally watch people's eyeballs use their mouse trying to find the little close button. [Laughter] It's so awkward.

Dave: Yeah.

Chris: I don't even want to see it. I just want to hit the button and, "I'm out!"

Dave: No, that's good. Yeah.

Chris: Yeah, so my Stream Deck did that. Even then, only half the time I remembered to even use it, and it was the only button. But now you've got me convinced there are lots of good actions just for day-to-day stuff, too.

Dave: Yeah. For this one, at least, a whole Figma thing. I don't use Figma. I'm more in the dev mode side of things. But if you wanted keys for switching things or whatever, there are plugins for that. I don't know. I'm just kind of in this idea of, like, "What hotkeys, what keyboard shortcuts do I use that would be more fun as a button?" Like copy URL, command-shift-C or whatever in Arc - or whatever I use. What is it? Command-shift-S? Yeah, anyway, command-shift-C. That's the copy URL button.

Chris: That gets the URL.

Dave: Yeah.

Chris: That's the best shortcut ever.

Dave: Wouldn't it be cool to just copy URL. Okay, cool. Let me go paste it somewhere.

Chris: Yeah. I remember one time in CodePen we had a copy URL button. It's still there in the share button. Now I'll never remove it because I took analytics on it and be like, "Which one of these buttons is clicked the most?" and that one was just so high.

Dave: just massive. Okay. Yes.

Chris: Yeah. A one-click action to just grab the URL of the place that you are. People appreciate it. I always found it so silly. I'm like, "I don't know. Just go grab it from the URL bar. Why do we need a special UI just for that?" But the keyboard shortcut in Arc that works on any site has just proven that to be very, very excellent.

Dave: Nah, when I go to another browser and it doesn't have it, it's stupid. It makes me mad.

Chris: It's stupid. Yeah.

Dave: Yeah.

Chris: You're in an email, and then you assume that the link is on your clipboard because you pressed that keyboard command while you were in Safari or something and it doesn't grab it.

Dave: Mm-hmm.

Chris: You're like, "What's wrong?! Do I need to restart?"

Dave: What happened? Who messed up?

Chris: Annoying.

Dave: Yeah.


Chris: We had a fellow write in. I'm going to make him anonymous, I think, just for fun.

Dave: Okay.

Chris: Mostly because I can't remember if they asked for that or not.

Dave: We did get a couple, "Don't say my name." Yeah. [Laughter]

Chris: Yeah. Anyway, it's pretty personal anyway, but the idea was they've been at this 15 years or something, right? They had a personal website. The personal website, I looked at it. I was like, "This is a cut above. It's good. It's pretty good."

They do freelance stuff. They make websites. Their portfolio had stuff in it that did not look embarrassing. I was like, "Good for you."

But they were basically just saying, "I'm not doing that great. I thought, after all these years in tech, you're supposed to be making money." They're just like, "I am just not there. I am just not there. Not doing as good for my family as I want to. It's not a disaster, but I thought, after this much time learning this much tech knowing this much stuff about tech, I should be doing a lot better than I am."

I was like, "Brother, I do not know how to answer that off the tip of my head, but I will have a think on it." What would you do if you clearly know what's up, you've got JavaScript frameworks under your belt, you have design sense, you've done client work for all these years, you're a personable perfectly good tech writing person, how can you be like, "All right, I need to turn up the dial on my bucks"?

Dave: I mean you could sell blood.


Dave: That's not a good answer, Dave! Come on.

Chris: Yeah, plasma is way better.

Dave: Plasma is where the money is at. No, I mean I don't have an answer.

First of all, I guess my first answer would be this is the weirdest fucking year in tech I've ever seen, so please don't judge any of your performance based on this last year. It's been so weird. That would be statement number one. It might not be you in that sense.

All right, statement two, did they say they were doing it alone? They're kind of doing it on their own? That was the vibe I got. Right? I can't remember.

Chris: It did seem a little lone-wolf. Yep.

Dave: Lone-wolf. I would say it might be time to get out of that. I think there's a lot of fun and freedom in doing it yourself, but it's a lot of overhead and you're in charge of making every single dollar that comes through the door, and that's hard work. And so, I would just say it might be time to think about either scaling up the business to where it's not just you working, and so you can hire somebody else who doubles your productivity or whatever. Or it would be to find somewhere that can pay you for these skills that you've accrued doing lone-wolf work.

I think that's a hard thing. I know from running my own business, it's like when you're in charge of every penny coming through the door, it's exhausting. Or some years, you're going to have great years, and some years you're going to have not-so-great years, so you've got to-

Somebody who knows how to budget is going to be like, "Well, you just plan for the not-so-great years." It's like, "No, buddy. It's way different this time."

I would say running your own shop adds so much overhead to doing Web business that I would maybe consider not doing it or getting a stable job and then doing that in your spare time to earn extra income (if that's enticing to you). That's what I would say. I don't know. Did you have thoughts, Chris?


Chris: All that stuff. I would say, improve what you measure - kind of thing - in that you should get numbers right in your face. What are you making right now? Do you know exactly what is on a monthly basis, if not weekly basis? Definitely a yearly basis, the last five years. Write it down. You already know that number is not good enough, so what number is good enough?

Dave: Mm-hmm.

Chris: Then what's the delta there? How much more money do you need to make? I think that's a perfectly good way to do this.

Then be like... Let's say you made $170,000 last year - or something. It depends on where you live. It probably sounds like an astronomical amount of money to some people and not enough to live on some streets in San Francisco. Whatever. That's just the way it is.

You're like, "It's got to get over $200,000." There's a little gap there kind of thing. That number feels like you can turn a dial with your pricing and hours worked and stuff and be like, "I've just got to hustle a little harder, charge a little bit more money, and I think I can bridge that gap," and maybe that's it.

If you're like, "I need to double this," then you're going to have to be like, "All right. I don't know if I have enough clients to do that. Maybe the next client I get, I literally can double my rate on, though. Maybe I need to hustle around and sell myself and have a number in mind that I'm not going to do the job unless it's so much bigger of a job than the last ones I've been doing that it's a no until that number is high," or something. "Got to make my big swing here."

Or if you're real good, can you imagine a very different life? Can you pick a thing and just gun for it, just really try to get in there? Find some high-position contributor jobs or maybe management? Maybe you can make the case that you basically have been managing projects for so long that that is part of your skillset and you could get in on that and see if a salary somewhere is better than you're doing now and go for the switch. I don't know. Maybe.


Dave: Yeah. I mean you could also pull up LinkedIn and find everyone you've ever worked with and see if they're working at a company or in a situation that you might want to work in. That's a good place to go, too.

I agree with what you're saying, Chris. Do you need $10,000 or $20,000 more to pay off the car, or do you need $50,000, $100,000 to keep the house? Those are two different situations.

Chris: Yeah.

Dave: You may have to pause. I don't know. You may have to just change it up.

It could be a hiring coach kind of situation or headhunter situation. I know people who just kind of get buddies with headhunters, then they just send them offers every once in a while.

Chris: That's not a bad idea.

Dave: Sort of like having a realtor where it's like, "If you see a cool house on a lake, please send me a link." [Laughter]

Chris: Right.

Dave: If you have realtor friends, you're like, "If you see a house on a lake and they're under $100,000, please send it to me."

Chris: Yeah.

Dave: Yeah. It might be good to do that. I'm not saying that work is necessarily going to be super great all the time, but I know a lot of people have jobs that do that.

Chris: Yeah, maybe. I expect there's something like that going on, too. You know what change is and how to do it.

Dave: Yeah.

Chris: The fact that you haven't means that there are some other things that are grounding you towards not changing.

Dave: Yeah. Yeah.

Chris: If somebody said, "Hey, I'll give you $200,000, but you've got to get proficient in Rust real quick," and you're just like, "Ugh. I just don't want to," then you're not wanting to is a more powerful force than your "I want $200,000."

Dave: Yep. No, I mean I know a guy who has a good job, and he's thinking about going to work at Twitter (or because they're offering a lot. I can't say I wouldn't make that same choice.

Chris: Different forces.

Dave: Different people, different strokes, but it's just like... What is it? Different strokes for different folks?


Dave: Is that safe for work? I don't know.

Chris: Yeah, it sounds racy.

Dave: Yeah, but anyway, I think you just have... What would be your--? Where do you want to be? There's a lot that goes into that, right? Those are questions I ask myself, too. Do I want to maintain IC work or manager work, or what work? Those are questions I ask myself. I have a fortune cookie here that says... Let's see here. See if it focuses on it. "You could prosper in the field of entertainment," so there you go. Maybe you need a fortune cookie.

Chris: Wow! Yeah.

Dave: I'm like, "I have a podcast, fortune cookie, so chill." [Laughter] Anyway, yeah. It's such a tough question without knowing all of your specifics.

Chris: It is. It's fun to think about, though, because there are other classics, too.

I'll tell you what. Don't write a book. That's not going to work. Bad margins on that.

But what else do you got? I think part of this thing has some specific expertise in some specific areas. It looks pretty well-rounded to me, but with some... T-shaped.

Dave: Mm-hmm.

Chris: What's the tip of the T? How niche is that? Maybe productize it or be real specific about, like, let's say it's assembly or something - just as a placeholder technology.

Dave: Mm-hmm.

Chris: Could you register some domain called Assembly Heroes, or something, and make that a different play on, like, "Do you need a super genius in this specific technology? We're for hire. We know we're expensive, but we're the best when it comes to assembly."

Dave: Yeah! Yeah. No, I mean there's somebody... If it's a skill that's in demand, it's just like... You could probably... Maybe the market is out, but it's like, "No bullshit Web flow sites." That's what you cook in the kitchen. You're not doing a lot. You're like Gordon Ramsey. You only serve five things in the restaurant. But you just know how to do it. You do it good. You do it fast, but you don't do it cheap. You just play up that you're just good and expensive and just set the tone for the engagement.

Chris: That's good. Yeah, there are lots of ways to make money or productize a course. Those tend to still be doing okay, despite the economy, or whatever you want to call the industry.

Dave: Yeah.

Chris: If you take that specific expertise.

Dave: I think it's hard to build a business on it. But I think having a course is great.

Chris: Yeah, especially if it's just a delta between what you're doing now and a number where you're trying to get.


Dave: I will always say blog. [Laughter] Not because blogging makes money. It probably makes negative money. But in my experience, it makes you a known quantity. People know who you are, or they can attach a URL to a face or a brand. They know what you think and how you think because you've published a post.

If you're posting 700 articles about WP Posts and all its problems, people are going to find you when they have a WP Post problem, and then they're going to know who you are. I would say I rarely think you'll ever regret blogging your problems and being a known quantity in our industry like that.

There's YouTube and all that stuff. You could get into that. But I think more so, it's just like being the search result when people look for stuff or the search result that people link to from Stack Overflow. It helps.

Chris: Yeah. Obviously a huge fan of that, period. It's just that it's an abstract path towards money and requires upfront investment, and so you want to tread lightly.

Dave: Yeah, yeah.

Chris: But do it.

Dave: I just feel like, yeah, it's not like, "I blog. I get money." It's more... nonlinear. Yeah.

Chris: Yeah. Yeah, a big fan, though, especially for getting a job and all that kind of stuff. I just feel like it's such an obvious leg up. It's like, "Yes, do that."

Even the word blog, though, it feels loaded, kind of. You know? You can do it and just don't call it blogging. [Laughter] You're just writing.

Dave: Garden, digital gardening.

Chris: There. You're gardening.


Dave: Yeah, writing. Robin Rendle -- good ol' Robin -- he called it publishing the other day. Did you read that post?

Chris: I didn't, but I made that same case to somebody just the other day that if you are going to take it, especially if you're taking it any more seriously than a personal blog, you should call it a publication.

Dave: Right.

Chris: But anyway, what did he say?

Dave: I wish I could find it, but I think it was in his V13. Um... Maybe not. Maybe it was somewhere else? I'll try to find a link to it.

Robin was just kind of like, "Hey, I think I've never called myself a publisher. But that's what I do. I publish blog posts. I publish internal documents about design systems. I publish... I'm writing a book. I like publishing."

I just thought that was a very cool way to put it. For me, it's the same. I like to publish thoughts and stuff online. Videos sometimes. Podcast, obviously.

There's a thrill in publishing and it never gets old. I think, yeah, I thought it was just very cool.

I hadn't ever thought of myself as a publisher or something like that for a long time - or ever, really.

Chris: Yeah. Yeah. I mean I think it gets there because you have some social media strategy that you've thought about, right? You're producing social media cards, and you have social media accounts that they go to. If anybody adds a newsletter to that story, you're in publishing now.

Dave: Yeah.

Chris: That's what publishers do. [Laughter]

Dave: Isn't that weird?

Chris: They think about all that stuff. Yeah, yeah.

Dave: But on a very small shit scale, I do publishing.

Chris: Well, you do.

Dave: Yeah.

Chris: Whether or not you've codified it, you also are like, "You know how I talk on there? I'm going to be consistent about how I talk on there. I'm not going to write a post in first person once and third person the other time." That's a dumb example, but I'm not going to write posts that one of them is praising my air fryer and the next one is yelling at a cloud. Generally, over time, it smooths out how you talk.

Dave: Smoothed out, yeah. Yeah.

Chris: That's a content strategy, in a way.

Dave: Mm-hmm.

Chris: Yeah, another thing that publishers do. The fact that you didn't write it down or make it public or have a guide that you share with other people, that's because you're small but it's still part of what a publication is as a package.

Dave: No, I think it's what you're going to talk about and what you're not going to talk about. Right? I don't know.

Chris: Right, and how you're going to talk about it and the structure when you do talk about it.

Dave: Yeah, do you cuss, do you not cuss? When do you cuss?

Chris: Yeah.

Dave: Are you loud? Are you punchy? Are you gritty? Are you putting a middle finger to the capitalist machine?

Chris: Yep. How do you do intros? Do you do sub-heads or not do sub-heads? Do you link out to stuff in any particular format? Do you have a featured image? There are just a million things to think about. It can be a little overwhelming when you're starting it from scratch.

Dave: Yeah. My strategy is start with nothing and just put words on a piece of paper. Then iterate. Do ten of those and then figure it out.

Chris: Yeah.


Dave: What do you want to improve? But yeah, I don't know. Yeah, I think there's no... For me, that helps you. I can say it's led to work. People know who I am. When I go into a company, there are people who are like, "Oh, I know who you are from the podcast," or "I know who you are from the blog." That's cool.

Chris: It is pretty cool. You've made the decision as a company, Luro, too, that you put at least some publishing behind Luro as well, or those posts live right on the Luro app.

Dave: Yeah, we kind of have a bunch of Luro app blog posts, kind of more corporate stuff. Written a couple of those. Then big, not thought-leading, but maybe. It's more like, "Here is how we are thinking about a problem, and here is how we're solving that in our application." I feel like that's what we do there, and it makes sense to be on the corporate blog.

We do post YouTube videos. I do a Twitch stream every week. I'm publishing. I'm doing content. It's weird.

Chris: It just so happens that it's gotten so easy. Tech has made it so easy over the years that we're just kind of accidentally doing it. [Laughter]

It used to be so hard. You needed so much equipment and stuff. Not everybody is producing video. It used to be the job for TV studios alone.


Dave: Oh, my gosh. When we started this podcast, we had an RMTP server or something, SMTP that would broadcast the podcast to an audio element in an M3U file that would stream into an audio.

Chris: Oh, you mean this show? Yeah.

Dave: This podcast.

Chris: Yeah, we totally did that.

Dave: We had live call-in. You could hit a button and dial in from Trello or some crap. It was over the top. It was fine. But man, have we progressed. Now we're doing this in Riverside, and we could shoot this out to YouTube or Twitch or whatever if we wanted to. But we just log into a website now and hit one button and it's done. And then we hand it off to Chris Enns to make it magical.

Chris: [Laughter] It's cool. Yeah. WordPress's little tagline was "Democratize publishing," or something. I think it largely succeeded in that, but it's only part of a much larger story about all publishing.

Dave: Nah. I mean, shoot. WordPress should acquire one of these little companies.


Dave: Riverside or Zencastr, they should buy it. This is how you do it, man. I don't know. I don't know. I don't want to figure out how to get two people on a Twitch stream. How do you get two people on Twitch? I'm using Riverside. [Laughter]

Chris: I feel like if my five-year-old daughter Ruby was like, "What should I get into?" I'd be like, "You should get into video." Not right now. I'm just meaning, like it feels like the future is--

Dave: You just install iMovie on her iPad and say, "Get to work!"

Chris: Yeah.

Dave: [Laughter]

Chris: Yeah, kind of. Like, "Get good at this," not that being a video editor is some miraculous career or anything, but it is kind of cool and it feels like the future is there, heavily. If you have those kinds of skills early, then you level up into related higher-power careers later. It just seems like... What was that old Dustin Hoffman movie? "Plastics, kid."

Dave: "Plastics, kid."

Chris: The new one is, "Video." [Laughter]


Dave: Yeah. [Laughter] My son wanted to... He was like, "I want to down Blendr," because he wants to make hats that go into Roblox that he sells - or whatever. Big plans. Love him. He's only going to spend eight minutes on it and then not do it.

But 3D work is like that to me, too. The way movies are going and metaverse, Apple Vision Goggles and stuff like that, having 3D model skills seems like a slam dunk-a-roo. If you can do that efficiently and make cool art in 3D, I think it'd be awesome.

My friend runs a desk company. Guess what they need? 3D modelers to put desks on the website.

Chris: Is that right?

Dave: Yeah.

Chris: Cool.

Dave: I mean everyone needs a 3D modeler, man.

Chris: Yeah. You never know with kids. I just remember when I was a kid. My mom would accuse me of that. I'd jump around too many because I did because she had all the evidence in the world. "I want this toy," and then I'm like, "Vroom-vroom. Buy me another one."

Dave: Right.

Chris: But then, eventually, you don't. You know?

Dave: Mm-hmm.

Chris: I remember when I got the first guitar. This is absolutely in that category. I play it to this day.

Dave: Right. Right.

Chris: So, wrong about that one. Eventually, they stick.

Dave: Did I tell you my strategy to get my kids to play the guitar? They're slowly showing interest, but I was like, "Maybe I need to do what my stepdad did and forbid me to play his guitar." [Laughter]

Chris: Oh...

Dave: So, I put a guitar in the house. It's a nice one.

Chris: Yeah.

Dave: A Stratocaster. You know it's nice. It has an amp that goes pretty loud. Right?

Chris: Yeah.

Dave: But one rule is, "Don't touch dad's guitar."

Chris: [Laughter]

Dave: And that's probably the best way to get them to learn how to play guitar. [Laughter]

Chris: Oh, my God. That is classic. That's what you're actually doing right now?

Dave: I'm considering it. I'm really... It's really up there in my thought process, like, "This is dad's. Don't touch it." [Laughter]

Chris: Yeah. Yeah, it might work. It might work. My stepdad had a Corvette that was absolutely forbade to do. But that was a little more obvious, you know. And I had proven that occasionally I would make mistakes in that vein, so I don't necessarily blame him, in a way.

Dave: Proficient at car wrecks. Yeah.

Chris: Yeah.


Chris: But, unfortunately, it did the opposite for me. I'm like, "Oh, well, screw that thing. Then I don't care about it."

Dave: I don't need a fancy car. Yeah, that's fair. That's fair. No, I'm considering. I don't know. We'll see. I wonder. I think it would work on one kid and not work on the other. That's what I honestly thing. One of my kids, my daughter, tell her no, that's your first mistake.


Dave: That was the first mistake you made. You have eight seconds to fix it or else she's going to remember.

Chris: Hilarious. Oh, my gosh. All right, man.

Dave: Yep.

Chris: Good times.

Dave: We should wrap her up. Yeah, this was fun. 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, [email protected]. Then join us in the D-d-d-d-discord because that's where the party is at,

Chris, do you got anything else you'd like to say?

Chris: Oh, I don't know...