Normal view

There are new articles available, click to refresh the page.
Before yesterdayChris Coyier

How You Get the Mentos into the Diet Coke

16 June 2026 at 21:18
A bottle of Diet Coke placed on a wooden stump in a grassy area with a blue sky and distant playground visible in the background.

Did you think this was gonna be some grand metaphor blog post?

Nope.


You probably know: if you put Mentos in Diet Coke, it makes the carbonation go crazy and fizz shoots out of the bottle. It’s a “science” experiment akin to baking soda & vinegar volcano, freezing a banana in liquid hydrogen and shattering it, or playing with a bit of mercury in your hands. No? Just me?

Anyway. What do you picture in your mind when you think of getting that tube of Mentos into the Diet Coke bottle? I bet you don’t even really think of anything at all. You just do it or whatever. You put them in there.

Allow me to tell you, it’s not going to go good. In my experience children just cup them in their hands and try to funnel them in.

A hand holding several white candy pieces above a bottle of Diet Coke on a countertop.

Kid or adult, you’ll get half of them in a best. Then you freak out when the fizz starts come up and drop the rest, probably knocking over the bottle.

Maybe you’re like, bro, it’s a tube already, you just open one end and squoosh them out.

A hand holding a roll of Mentos candy positioned above a bottle of cola, ready for a popular soda and candy experiment.

I don’t blame you for trying, but it’s no dice. Big Mint™ has that paper wrapped on there too tight.

I’ve seen adults try to use basic kitchen gadgetry to try to luge them down in there, which is also just too failure prone. I’ve also seen YouTube videos with extraordinarily complex inventions to do this, crafted from wood and levers and tubes and whatnot. Too much.

Listen, this activity is already wasteful enough, we might as well do it right.

My idea is to drill a hole into each Mento and string them from a bit of wire.

A wooden workbench with a cordless drill, a box of drill bits, a roll of electrical tape, a pack of Mentos, and earbuds, set against a marble surface.

Probably just best to watch my sick video proving that my idea rules.

I used this online video editor thingy Kapwing to blur the faces (obviously, from the watermark). It’s not like ultra mission critical, I just prefer that. Looks like it missed a few frames. So it’s both impressive and not terribly reliable for one-shots.

💾

The Raven Tattoo

12 June 2026 at 16:49
A man lounging by a pool, holding a decorated pineapple drink with colorful umbrellas, surrounded by beverage cans on a table.

I’ve long been envious of my friends with sweet sleeve tattoos. It’s a cool place for a tattoo. You get to see it yourself a lot. Some of it sticks out from a rolled-up shirt-sleeve which is fun and mysterious. You’ve got a decent amount of real estate to work with. You get to showcase it with a sweet sleeveless shirt at the pool.

I brainstormed about it for a while.

I used Notion like some kind of nerd.

A page of tattoo design concepts featuring notes and sketches of various elements, including interlocking circles and references to personal themes like family and interests.

Note that I already have a circle tattoo on my left shoulder (see image at top of blog post). I was thinking that my new right-arm tattoo would kinda synergize with that or whatever. The original idea of the circle is that it represents line and shape (e.g. basic elements of design) and that perhaps someday I would extend it with other basic elements and principals of design. Like if I did a solid red circle on my other arm, I’d get color and balance conceptually out of that.

So my original thinking was to do something very geometric on the right arm. Maybe a bunch of interlocking circles or the like.

A close-up of a person's arm featuring a tattoo of overlapping circles in a minimalist design.
I don’t love this, but the overall concept of geometric circles I do kinda like. Plus it opens up future extension possibilities, like filling the circles with interesting things (e.g. Hobbes tail)

I took all these ideas and went over to Monolith tattoos here in Bend. I had the most uninspiring conversation ever with a tattoo “artist”. It was like 10 minutes, they glanced over what I brought in, barely caring, and then pushed really hard to get a date for the tattooing on the books. I agreed to it at first, then heard literally nothing about sketches or collaborative design, just reminders the date was coming up. That is not what I had in mind at all. I wanted to work with an artist crafting a final design with their skills and style with what I wanted to put on my body. I’d be happy to pay for that time, not just hours under the gun.

Apparently that’s just not how it works.

But I got a lead on this other guy Sean Wright who had his own shop: Sigil Tattoo.

Sign for Sigil Tattoo displayed on a wooden wall with a clear sky in the background.
This is gone now! Sean is moving to Heirloom Tattoo.

Seans work isn’t particularly geometric. When I talked to him about that, he kinda brushed away the idea, because he’s very into the idea of the tattoo being a successful project and that sorta requires leaning into the artists style.

Looking at his past work, I was impressed by the floral, bone, and bird stuff:

A woman with tattoos on her shoulder and arm, showcasing floral designs and detailed artwork.

Even aside from my own theme ideas, definitely something I wanted is a very well done tattoo. Likely clearly a piece of art. Sean is definitely a guy for that.

Knowing birds were on the table: Ravens! I love Ravens. Smart and clever birds. They tend to do mischievous things, which end up being for the benefit of all. For instance, the classic story of the raven, that telling via Northern Exposure, my favorite show. There is a strong connection to Alaska which I also like.

Sean was down with a Raven. He said he likes the idea of a “main character” of a tattoo and then supporting elements to flesh it out. So Raven is the main character, then we could tie it over to my other arm via a portal-looking nest in the same position and size as the existing circle. Cool idea.

Sean sketched it out and placed the sketches over photos of my arm in an iPad app.

A person with a tattoo uses their finger to draw on a digital tablet displaying an illustration of a bird's wing. Nearby, a stylus and a wooden coaster are visible on a dark surface.

At the first session, the design gets printed out in this transferrable purple ink which can stick to my arm, so Sean can get the overall positioning and concept right. I think we did the purple ink the second session too, then didn’t need it anymore. It was 5 or 6 sessions overall.

Close-up of a person's upper arm with a purple outline of a bird tattoo design in progress.

On my drive over to that first session, I literally had to stop my car for a Raven in the middle of the road looking at me. True story.

Then we got to it!

A person in a sleeveless shirt taking a selfie in a bathroom mirror, showcasing a colorful tattoo on their arm with various designs. The bathroom sink and toiletries are visible in the foreground.

Does it hurt, you ask?

Frick yeah it hurts. Especially anything near the inner or outer elbow. It’s managable though. And by manageable I mean you just deal with it because it’s worth it. You can’t take anything. After the session is over, the healing really isn’t bad. Sean uses a 2nd skin style large sticker things that stay on for 3 days, then that’s about all you have to do.

As the sessions went on, we hopped up to the top.

Close-up of a man's tattoo on his shoulder featuring a detailed image of a bird, possibly a raven, with a blurred background showing an indoor tattoo studio.
Close-up of a man's tattoo featuring a detailed black crow on his shoulder, with the man partially visible in the frame.
A person showing a tattoo of a crow on their upper arm while taking a selfie in a tattoo studio.
A man taking a selfie in a tattoo studio, showcasing a large crow tattoo on his arm. In the background, another tattoo artist is seen working.

Eventually getting the Raven totally fleshed out.

Close-up of a man's arm showcasing a detailed tattoo of a raven and a sun, taken in a well-lit room with clothing in the background.
A man with a bald head and beard showing off a detailed tattoo on his right arm, which features a bird and a sunset. He is taking a selfie in a brightly lit room with tattoo equipment in the background.

Then we moved on to the nest.

A close-up view of a tattoo on a man's upper arm, featuring a black raven surrounded by intricate branch-like designs and a circular motif resembling the sun.
A person holding a smartphone while taking a selfie in a bathroom mirror, showing a detailed tattoo of a raven with intricate designs on the arm.

Then onto fleshed out the space with more nest stuff.

A close-up view of a person's tattoo on their arm, featuring intricate designs and colorful patterns.
A person showing off a large tattoo of a bird's wing on their arm while taking a selfie in a tattoo studio.

And now it’s done!

A man taking a selfie in a bathroom mirror, showing off a detailed tattoo of bird wings on his left arm.

I’d like to get some better/proper photos of it soon. So if I do that, I’ll post ’em here. There are some cool details like a little white ink in the Raven’s eye and stuff that isn’t captured well here. Plus this wasn’t fully healed yet.

All in all, the job was 5-6 sessions approximately 5-6 hours each. Done over the course of ~3 months. Each session being ~$1,000.

Sprinter Van Phone Mount + Better CarPlay-Compatible Cable Situation

5 June 2026 at 22:49

This is the stock look of my 2021 Sprinter van front console area:

If it’s not obvious, there’s no great place for a phone.

You’ve got the cup holders. Those are actually sorta workable, except for this boss battle: wired-only CarPlay. Wired CarPlay is not ideal, but that’s all this van has. I expect upgrading the whole system would be super expensive or potentially not even possible. Wired isn’t that bad. Wired CarPlay means more immediate response from actions and heck, it charges the phone too.

The problem is where that wire needs to go.

Up on the dashboard, there is this little cabinet thing with a door that opens up toward the windshield.

A close-up view of a car's interior storage compartment featuring a smartphone placed on a textured surface, with visible USB charging ports and a storage lid partially open.

The ports are inside that cabinet, one of them being the one that has to be used for CarPlay. I’m sure the engineering thought is: plug it in, put your phone in the cabinet, shut the cabinet.

And that’s kinda fine. I don’t like fiddling with my phone while driving and CarPlay means I don’t really need to. But it’s still inconvenient. I often forget my phone up there when getting out of the van. If I do need to fiddle with my phone while parked or because something just absolutely has to be done on-device, it’s extra obnoxious to get my hands on it.

Step 1) Get the Cord out of the Cabinet

The answer is this little guy. A 3D printed part from NEXUS.

Black plastic tool designed for securing or holding items in place.

This slides into the cabinet and now the cabinet door doesn’t full close, it closes onto this, leaving little slits to bring the cords out from.

Interior view of a car's center console with an open compartment showing USB and audio ports, alongside several charging cables.

Step 2) Make the Weird Cubby Hole a Ball Mount

We’re ultimately going to move the phone to a mount, and then the question is where and how to mount it. Fortunately NEXUS is on the case again with a 1″ Ball Cubby Adapter.

A black joystick controller base with a rounded top, featuring the brand name 'NEXUS' embossed on the side.

That weird looking thing has nothing at all to do with your butt! It’s a clever device that fits perfectly into the useless weird cubby on the dashboard and provides this general purpose mount.

Interior view of a modern car dashboard featuring a steering wheel, digital display, air vents, and various control buttons.

3) The Phone Mount

NEXUS doesn’t make a phone mount. I think on purpose? The Winnebago Revel has all these RAM® Mounts all over. I had never heard of all this RAM® stuff before. They make a bunch of mounts and stuff. To me, it all feels like a little step up from the home 3D printing feel of NEXUS. Not quite industrial, not quite hobbiest.

I was happy to stay in the kinda happy path ecosystem, so I bought the RAM® Mount with the ball.

Black mounting bracket with a socket and ball joint for secure attachment, designed for versatile use.

4) The Ball Connector

Astute readers will notice… now we have two balls. And, we have two ball mounts! Those two ball mounts won’t actually connect to each other. The magic of the ball mount is that you get this 360-degree(ish) adjustability. I don’t really need that much movability, but I’ll take it. The final bit here is to get the connector to get the two balls together.

Close-up of a black plastic knob used for securing or adjusting equipment, featuring the brand name 'RAM' embossed on the surface.

Everything Together: A Nice Phone Mount!

And it doesn’t occupy any other useful space on the dashboard. Love it.

Interior view of a vehicle with a Mercedes-Benz steering wheel, a smartphone mounted on the dashboard, and a black leather seat.

Order list:

NEXUS 1 Inch Ball Cubby Adapter$44.95
NEXUS Cord Console$39.95
RAM® Quick-Grip™ XL Phone Holder with Ball$28.49
RAM® Double Socket Arm$18.49
Total$131.88

Kinda pricey for a phone mount. But I think it’s worth it. Its a slightly tricky situation and this solution is (1) long term in that it will fit any future phone (2) opens up the idea for mounting other things with ball mounts (3) allows for more cables out of the dashboard cabinet to come out smoothly.

There are other options! There are other/cheaper ones that clip onto the cubby mount that look OK. There are ones that mount into the cup holder nicely. Honestly this one is super minimal and clever.

And Now For My Debut as a Van Life Influencer

I’m not good at this, which is basically why I just blogged it instead of like TikTok’d it or whatever.

💾

The New Van

4 June 2026 at 14:39

I got something I’ve wanted for years and years! A camper van! I’m a camper van guy now!

It’s a Mercedes-Benz Sprinter, and even more technically a Winnebago Revel.

I scoured Craigslist, Facebook Marketplace, and RV-specific sites for a long time drooling over these things. I’ve rented a half dozen of them on Ourdoorsy over the years. I’ve borrowed friends. So I feel like I knew what I wanted and I knew the specific price range I could go, so it took a little while to find it.

Ultimately one that came up on Craigslist led back to one sitting on the lot at a local spot called Just Used Cars.

2020 Mercedes-Benz Winnebago Revel 44E camper van in a parking area.

I liked the size of it. Just a normal length, not “extended”. Plenty of height to stand up in. I like that it’s an actual Sprinter base because of it’s nice poise/stance compared to other van bases. Also it’s 4WD and has good ground clearance which. That wasn’t a requirement for me, but this will make me trust it driving in the winter and up to Mt. Bachelor and such, which will be really nice. Although funnily enough, I’ve already gotten it stuck once out in Pacific City at the beach — even in 4WD Low and using the traction boards on the roof. Sand is rough.

I like the tan color as well. Maybe I’ll get some cool decal or have an artist paint the side or something someday.

I wasn’t specifically looking for a Winnebago Revel, but that’s just how those roll, and honestly, the Winnebago name sounds nice to me. Long history making campers, obviously.

The interest rate on this thing was horrible. It’s 8 or 9% or something. It doesn’t really matter, as my plan is to pay it off in the next few months. My thinking is that it will do great things for my credit score this way. We’ll see. I co-signed for a “normal” new car just recently, and that rate was 3%, which seems fine/good.



I started writing a bunch more little stories about the van. I’ve been using it and thinking about it and working on it a ton, so there is a bunch to say. But I think I’ll break those out into smaller blog posts as I go!

One quick one: after I bought it, the dealership called and told me the previous owner wanted to talk to me. I approved them giving him my phone number, we chatted, and he came over to see the van. I was able to return to him some things that belonged to him tucked away into crannies all over the van. He was a nice guy who just really really wanted the new owner to understand it. All the little details about how it worked and where you can put things and quirks and whatnot. We spent a few hours going over things. I really appreciated that, and it shows how attached some people can get to these homes-on-wheels.

Social RSS (?)

1 June 2026 at 15:20

What’s up with this?

I’d like to see an explicitly social-forward RSS reader. Like it’s encouraged to highlight passages and leave short comments. Your buds see yours, you see your buds.

Chris Coyier (@chriscoyier.net) 2026-03-10T14:30:12.200Z

The spirit, of course, is “I want my Google Reader back.”

I should be careful though: I imagine if we really did have it back exactly as it was, it would probably not be as cool as we remember. That was a long-ass time ago and web software just wasn’t as nice as it is now. But: it really did have social features in it! I could leave comments and see comments from my friends. (How “friends” worked back then, I scarcely remember.)

I’m not alone in wanting this. Here’s what I’ve seen so far.

There is Skyreader, and it looks like Tim Disney is still actively working on it:

New release of @skyreader.app is now live with support for Channels that let you set up filtered views of your feeds and saved articles. Helps you catch up on quick reads or check in on sites that infrequently post.(apparently I have 104 long reads, rip my reading list)

Tim Disney (@disnetdev.com) 2026-04-13T14:40:52.800Z

In my mind (and perhaps not reality?) Skyreader solves a “cold start” problem where signing up for a new social site is a lonely bummer because you don’t have any friends. Well, if all my Bluesky friends were automatically my friends on Skyreader, wouldn’t that be, like, good?

My problem is… I don’t… get it.

  • Maybe there aren’t really “friends” on Skyreader? If there are, I can’t really find a list of them. If there aren’t, I guess this isn’t what I’m looking for. Or is it just assumed they are the same as Bluesky friends? I dunno, I think I have a lot to learn about this AT Proto stuff.
  • What happens when I share an article? Does it share on my Bluesky? It doesn’t look like it. Who sees my shared articles then? My friends, if there are such a thing? Other people who explicitly subscribe? How would anyone figure out how to do that?
  • It looks like I can share and I can highlight stuff specifically in what I share. Who sees the highlight? I imagine they need to use Skyreader to see that highlight? Or does it republish as RSS somehow?
  • No comments… right? That’s weird to me for a social feed reader. What I think of when I think social feed reader is 90% writing and reading my friends comments.
  • The UI is confusing to me. I don’t love the expanding list format that jumps around a lot.

The main reason I can’t “really use it,” though, is that it doesn’t sync with Feedbin. I understand that’s a niche concern, but I need one canonical feed source, so everything I’m subscribed to is in one place, and how much I’ve read is also canonical. That might be antithetical to AT Proto? I have no idea.

Indieweb has their own version of all this, but it’s seriously no joke getting involved. From one of the reader sites, Togther:

What You Need

#1 Your own website

On the IndieWeb your website is your identity. It doesn’t need to be advanced, it doesn’t need to be pretty, it just needs to be yours.

#2 IndieAuth

IndieAuth is a technology to allow you to sign into services using only your website.

#3 A MicroSub Server

MicroSub is where the real magic happens. There are 2 parts; the server and the client. Together is the client, but it needs a server to go along with it. The server does a lot of tricky work such as fetching & parsing feeds as well as keeping track of what you have read and how you have everything organized. If you don’t already have a MicroSub server then check out Aperture.

#4 MicroPub (optional)

MicroPub is an optional but very cool piece of the puzzle. If your own website has MicroPub functionality then you can use Together not just to read content, but also to reply and create your own content. You can like, repost and reply to stuff you are following, you can even write full on blog posts from inside Together.

I mean, I’m not above some nerd hackin’, but this is 100% not ever going to be a place with a critical mass of my friends just chillin’ and sharing/commenting on blog posts. Way too hard.

The closest thing I’ve seen is CommonRSS by Brad Coffield which was build in a direct response to my original Bluesky post.

A couple days ago @chriscoyier.net mentioned wanting a more social forward RSS reader. I'm a longtime fan so here we are.Chris, if you see this, I hope you like it! I'd love to round it out with a permanent archive and other cool stuff. www.commonrss.com#solodev #buildinpublic

Brad Coffield (@studio303.bsky.social) 2026-03-12T23:29:55.731Z

I originally had a gut reaction to the vibe coding nature of it. Like I don’t wanna use this thing you slopped together over a weekend, you gotta get more serious about it first. Which I admit is just a gut reaction and not a fair assessment of the software. Brad does seem quite sincere about making it a thing. But at the same time, it feels like it’s been months without updates, which is a bad sign for super brand new software.

In testing it lately…

  • It looks great, love the design — but it feels quite slow across the board.
  • The Feedbin sync (yay!) didn’t work at first, but appears to be working now.
  • It now claims to have 2-way syncing (yay!) but that doesn’t work for me. The articles I read aren’t read in feedbin. The stars don’t sync.
  • It’s got the cold-start social problem: there isn’t anyone to follow. The discover page only lists Brad, and clicking the follow button from him doesn’t work.

It feels like it’s close, but it needs to work better. The commenting feature (again, like my main thing for wanting this) requires you to highlight some of the post first, then you can comment, but the comment won’t save.

Screenshot of a user interface with a text box for notes, showcasing a message about a group walk and an error related to JSON input.

CommonRSS feels like a solid concept, but it’s both got the cold-start thing in terms of the social network, but also the cold-start thing in terms of a business. My guess is it’s hard for Brad to muster a ton of enthusiasm to work on the project all day every day with low users.


I’m thinking the main problem is that there just isn’t much of a business to be built around RSS. It can build boutique one-person companies with a passion for it, but even then, difficult.

On top of that, maybe there just isn’t much appetite for the social part? There are a number of arguably already-decently-successful boutique RSS apps, so why haven’t they done it? Why hasn’t Feedbin done anything terribly social? Why not Feedly? Remember FlipBoard’s kind weird taking on RSS? Now they have an equally weird spinoff. My guess is it’s just too hard of work for too little payoff.

Did your editor font go default serif on WordPress 7.0?

27 May 2026 at 14:39

Mine did. Like this:

Text asking if the editor font changed to default serif in WordPress 7.0
so meta.

I guess WordPress 7.0 assumes you are using a theme.json file these days. I’m not doing that yet on any of the sites I work on. If you want to embrace that future, you could add a theme.json file to the root of your theme, and put some typography basics only in there:

{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "720px"
    },
    "typography": {
      "fontFamilies": [
        {
          "fontFamily": "system-ui, sans-serif",
          "name": "System Font",
          "slug": "system-font"
        }
      ]
    }
  },
  "styles": {
    "typography": {
      "fontFamily": "var(--wp--preset--font-family--system-font)",
      "lineHeight": "1.75"
    }
  }
}

That will be much nicer than no styles at all.

Or if you don’t want to mess with that you can go to the upper-right three-dot menu (“Option”), choose Preferences then go to the Appearance tab and make sure Use theme styles is unchecked.

Settings interface showing 'Appearance' options with toggles for 'Top toolbar', 'Distraction free', 'Spotlight mode', and 'Use theme styles' marked with an arrow.

I think it’s sorta neat that you could use the same typography setup for both the front-end and back of your site this way, and if you use theme.json for the front, might as well use it for the back. But I also personally don’t mind if the back-end is entirely default styles. It’s a reminder that you’re in a CMS, and content is data, not WYSIWYG.

When Sites Need to Walk Away

28 April 2026 at 16:58

The Internet Archive has a new book: VANISHING CULTURE. (Digital copy is free.)

According to a Pew Research Center report, 26% of pages from 2013-2023 are no longer accessible. But that’s not the whole story. In a new study published in Internet Archive’s book, VANISHING CULTURE, data scientists working with the Wayback Machine have found: 16% have been restored through the Wayback Machine. 56% are preserved before they disappear.

A quarter of pages from the last slightly-more-than-a-decade gone. I guess that’s about what I would have guessed. I don’t love it, but it seems like the level of URL rot that just happens on the web. Maybe even feels a little low? 😬. Kinda cool the Internet Archive saves about half of it.

Infographic illustrating the preservation of URLs in the Wayback Machine, showing 74% alive, 26% dead URLs, and categorizing dead URLs as 10% vanished, 18% endangered, 16% restored, and 56% preserved.

This resonated a little extra this week as a local mountain biking trail resource said they were closing:

Image featuring the BendTrails logo and announcement about stepping away from BendTrails on May 31st, 2026, with a brief message about reaching a natural stopping point after ten years.

When I see stuff like this, my brain thinks: OK fine, thanks for letting us know. But, like, you’re not going to just turn off the site, right?! No, they are:

Will The BendTrails Website Be Taken Offline?

We’re open to the possibility of a community group, business, or individual acquiring BendTrails’ assets and keeping the site online — but if that doesn’t happen, the site will be going dark on June 1st.

They want something like 80-90 grand for it. Which is fine. They worked on it for a long time and did a great job. I imagine it incurred costs, likely above and beyond what sponsors covered. Maybe they’ll get it, maybe they won’t.

I just can’t wrap my mind around “going dark”. It’s a WordPress site. Bluehost can host that for $3.99 a month ($9.99/month after three years). Not to trivialize money but that seems pretty doable and preferable to just shutting the thing off.

Maybe it’s a mental space thing though. I’ve had to walk away from projects by drawing pretty hard lines. If the website is still online, maybe it will still occupy mental space that they just can’t afford. You probably know I’m a fan of WordPress, but I’ll admit WordPress adds some additional mental overhead. There would be some prep like turning off any interactive features. Then somebody has to be in charge of updates forever, because WordPress is PHP and MySQL and such which will be subject to potential vulnerabilities forever.

A fella I know put together Bend Bike Rides in the wake of this. A burgeoning replacement. I don’t know the tech stack but I know the guy well enough I’m quite sure it’s not WordPress. Looks like static output (if JavaScript-y). If he needs to walk away from this site someday, there is options like Netlify’s “free forever” plan that feels a lot more likely to be able to be left forever with no mental overhead.

I’m just thinking about what the options are and what feels right when people need to walk away from a site. It’s nice the Internet Archive saves them, most of the time. But is that good enough? Maybe we just shouldn’t worry about it because they will take care of it? If we don’t think that’s good enough, what then? Should there be better tooling for static-izing a site and putting it somewhere inexpensive to live as a viewable time capsule?

For WordPress sites, there is a premium version of legacy. $38,000 will keep the lights on essentially forever. Many scoff, but I think it’s cool. I may not have pulled the trigger if it was my money, but I did happily use the service for my friend in kind.

Honestly I hope CodePen is an option for some situations and that we can evolve to make it an even better option over time. We’ve got deployment. It’s not free, but it’s not heavily limited either. The trick is getting a site to be entirely static, and I feel like there could/should be better tools for converting sites into this state.

AI & Alignment

25 April 2026 at 16:47

Raw coding speed isn’t the bottleneck. Alignment is the bottleneck.

That seems to be a zeitgeist-y theme lately. If you’re using AI to code, maybe you’re feeling it. You can code more and faster. And clearly a boatload of other developers are doing that too. But software doesn’t seem to be exploding in quantity or quality broadly. Maybe it’s a little? But if AI is 10✕ing our coding, we’re certainly not seeing software get 10✕ better.

Which is maybe why Andrew Murphy is saying: If you thought the speed of writing code was your problem – you have bigger problems.

Your developers are producing PRs faster than ever. Great. Wonderful. Gold star. Someone get the confetti cannon. Now those PRs hit the review queue, and your reviewers haven’t tripled. Nobody tripled the reviewers. Nobody even thought about the reviewers, because the reviewers weren’t in the vendor’s slide deck.

Or maybe you don’t even get to the “too many PRs” problem because nobody even knows quite what to build. Because you need team alignment to figure that out. You need research. You need stakeholder buy-in. You need a damn plan. And AI isn’t, for the most part, helping with those things. And those things are hard.

Or maybe you are just ripping PRs and your code is evolving rapidly. AI doesn’t help you know… is this the right thing to do? Is it working? Does anybody care? That probably should have been part of the plan, and again, that’s the hard part.

Maybe this is an industry-wide topic right now not just because it’s hitting the community feeling frequency just right, but because there is academic research supporting it. I can’t pretend to understand all that, but I appreciate it’s being looked at with mathematic rigor.

We’re also seeing tooling react to this situation. I think it’s fair to say that AI is increasing the productivity of individuals. But Maggie Appleton pulls out the classic saying: but 9 women can’t have a baby in 1 month. Fasters individuals don’t make a fast company, unless they are perfectly aligned. Maggie showing off new GitHub software that is designed to acknowledge and help with alignment issues. I tend to agree that software itself can evolve to help. Just the fact that AI, in “planning mode” isn’t sharing that plan with a team, is weird, and an easy target to make better.

I also think getting a bunch of humans in alignment is just a thing that takes time. It should be a bottleneck. I’ll forever think of Dave’s “Slow, like brisket.” Some things becomes good because they are done slowly, and it’s OK if software is one of them.

It’s an assumed truth that Safari is better for battery life — without data to support it.

24 April 2026 at 13:55

This pseudo-truth just bugs me.

I hear it all the the time. People saying they choose Safari as a browser because it’s better for their battery. But there isn’t any data (that I know of) that proves that Safari is more efficient at battery usage than any other browser.

I applaud Matt Birchler who did real testing on this (2024). He scripted a 20 minute loop that watched YouTube videos, scrolled Mastodon, scrolled websites, and typed in Google Docs. He ran it in Chrome vs Safari for 3 hours each 6 times. The data actually showed Chrome was a little bit better.

You can choose Safari because you like how it feels, or it’s support of certain features, or heck even because it’s the default browser on Apple stuff and sometimes it feels good to just go with the grain. But the battery life argument just doesn’t hold water.

Maybe it did at one time!

Remember when we used to care about CSS selector performance, then people like Steve Souders, Nicole Sullivan, Ben Frain, Harry Roberts, etc did testing and proved it mostly just doesn’t matter?

Remember when inline CSS was always bad, then it turned out to become a recommended performance enhancement sometimes?

Remember when we all put scripts at the bottom of the <body>, then we got the defer attribute and it turns out its often better to leave them in the head now?

Remember when FOUT as bad (layout shift!) then it was good again (users don’t like seeing nothing!)?

Sometimes we gotta just update our thinking. I’m sure I’ve got loads of outdates factoids in my head that need a reboot.

Stories from Alaska Folk Fest 2026

20 April 2026 at 14:15

[Folk Fest] is not an intellectual experience, it’s an emotional experience.

Bob Banghart

Visiting Alaska gives me the feeling that people are chasing after when they travel: a little taste of what it’s like to be a part of another world. To live another version of life. Not just looking at it or fantasizing about it (which are fun too), but getting to live it for a little while.

I’m lucky enough to have visited Juneau a number of times. My friend Justin Shoman lives there. President of the radio. His deep connection with the community makes the trip more fun than it might be otherwise, as I get to sidecar all that community goodness.


Last year, I came up for the 50th annual Folk Fest, and it was a no-brainer to come back for the 51st.

The 50th was such a milestone that documentarian Paige Sparks took the opportunity to make a literal movie about it, “50 Years of Folk Fest”.

On YouTube…

I caught a screening of it at KTOO and got to briefly meet Paige, who did a wonderful job. The documentary was a brisk 50 minutes and managed to explain the history without being boring, like how the original bylaws of the organization require the event to be free. It spotlighted some long-timers with zinger quotes, like the one at the top of this blog post, then focused on some of the new faces of folk fest, like Taylor Dallas and Annie Bartholomew, giving it modern relevance and freshness.

A great thread in the documentary featured an awkward fella struggling with his own musical abilities and belonging. He blossomed into performing a really lovely original folk song that couldn’t have fit in anywhere better than Folk Fest.

OH, I’M ALSO IN IT. There is a quick moment from an old-time jam at Amalga Distillery where you can see the back of my head. I loved that jam dearly last year and was sad that Amalga didn’t do it this year. They had make-your-own peanut butter and jam sandwiches (get it). C’mon that could have been a whole thing.


A sign displaying the text 'ADDITIONAL DISPLAYS THROUGHOUT TERMINAL' set against a textured background.

When I landed in Juneau and walked out of security, I was relieved to see that my favorite plaque is still there. Thanks, plaque. I can’t wait to check out those additional displays throughout the terminal.

I had some anxiety arriving. I didn’t get there until Thursday, DAYS LATE, so I had some FOMO — like I had already missed amazing opportunities.

That feeling wore off quickly. I b-lined it to Devil’s Club, where I had tons of great jams last year. There was a great jam going on as I got there with Chaz from Ketchikan/Dude Mtn, Evan from Astoria/The Strongbacks, Rosemary from Fairbanks/Writing, and several others. Comradery was immediate.


My friends Amy, Roger, Dave, Dennis, and Laura were there, all from various cities in Oregon. I think it was a first for most of them. I haven’t talked to them since leaving, but Amy was dreaming of getting two hotel suites next year instead of just one.

One morning, I jammed with them in their hotel suite. It was a weird jam in the key of E, with the fiddles in calico tuning, which is fairly unusual for Old Time. I was on guitar and loving it.

A group of four musicians playing instruments together indoors, with a scenic view of mountains and water visible through a large window.

Heidi from Fairbanks is there, whom I love because of her unabashed love of banjos. The more banjos the better in her world (there are plenty of situations where people like to keep it to one banjo). She’s also very good, so I learn a lot.


Cover of the book 'Of Bears and Ballots' by Heather Lende, featuring a bright yellow background with illustrations of bears and a voting booth, accompanied by a quote from Bill McKibben.

The book I read during the trip was an Alaska book I’ve been waiting to savor: Of Bears and Ballots. It delivers. It’s Heather Lende, of If You Lived Here, I’d Know Your Name fame. I’ve read a lot of Alaska books, but nobody evokes the feeling you get there like Heather, even as a mere visitor like me.

I also picked up The Tao of Raven, which I’ve only just started, but it starts with a lavishly wordy version of the fable where the Raven frees the sun, which I’m fond of. I have a version of the raven story that I typeset and letter-pressed myself, and my mom watercolored over, in my guest bathroom at home.


Speaking of my banjo, I checked it on Alaska Airlines on the way up. I love my banjo, and it’s nice, but I’m not precious about it and don’t love schlepping things through airports.

Some people gasp at the thought of checking an instrument. Well, here are some more points for them. The peg for my 5th string must have loosened and straightened out, causing a buzz as it went over the little mini nut on that string. That’s not an acceptable state to leave the banjo in for Folk Fest, so I had Justin swing by a shop to grab some wood glue, then did emergency surgery on it. I yanked out the peg with a channel lock, rotated it back correctly, then glued it up and hammered it back in. Not pretty, but it’s held up just fine since then.


A bar that doesn’t seem to officially participate in Folk Fest (but is at the heart of it anyway) is The Triangle. It ends up being kind of a home base or where to go sit in lieu of any better idea. It’s a place that ends up generating memories for me. A drunk local buying us shots for listening to his life story. Two mandolin players trading fascinating chord transition licks. A beautiful woman frantically trying to find her friends, only to be calmly distracted by the historical photos on the wall. I promised to tell her what I know of them when she comes back, but alas.


One of the many cool things KTOO does, in addition to the studio-audience shows, documentary screening, and all that, is to put every main stage performance on the radio. Every second of it! Plus they stream it so people around the world can listen.

Driving around, or if we happen to be at Justin’s spot, we’d usually have it on. One thing we caught that way was Sea of Heartbreak (feat. Katy Harris, Caroline Oakley, Reeb Willms, Ava Honey, Pharis Romero). Kind of a supergroup of old-time ladies. I only know exactly who it is now, because it was so good on the air, I looked it up on the official website.


One day, sitting at the Alaskan, I was chatting with the bartender, Morgan, who used to run the place. It seems people, bartenders especially, live in this palpable daze of excitement and exhaustion during Folk Fest.

Silhouettes of two people on a sandy beach with a calm water body and mountains in the background.

The next day, after a nice beach walk “up the road”, as they say, at Eagle Beach, we stopped into Squirez, a cozy little bar that overlooks Auke Bay. It was Morgan bartending again. There was an awful lot of bartender overlap like that. Just the night before, the day bartender at The Alaskan was working the door bar in the evening at The Crystal Saloon. Morgan is extra fun, though, as she travels a lot to interesting places and seems to be doing interesting things with her life, like starting a new gig at Uncruise. She also works at the Lucky Lady, although I didn’t see her there. At Squirez, she did a little rave about what’s so great about Folk Fest. It’s the end of winter (this was a rough one up there), and it’s before the cruise ships come. So it’s a week that feels like a special treat just for the locals. A beautiful gift.

Morgan was on the same flight out on Tuesday morning as I was. It was nice to high five out along with another friend (a board member of KTOO) I met at the corndog brunch who had a daughter the same age as Ruby running around. That made me miss Ruby and think of my hope that Ruby and I get to share a love of music and community events one day.


One particularly fun live show was Raisin’ Holy Hell at The Crystal Saloon. There were a bunch of rowdy old-timers in the band (some faces I recognized from the documentary) who really got after it and made a ruckus of a show. They played classics like Angeline the Baker and Stickin’ to the Union, mixed with Sublime covers and modern shit like that to switch it up. They had a drummer and a solid bass player holding it all together and making it more than worthy of the killer night slot it had. The whole audience was super into it, and I was having a great time.

Crowd at a live music event with people dancing and enjoying the performance; a person is crowd surfing above the audience.
Literal crowd surfing at the Raisin’ Holy Hell show.

This feels weird to write, but one of the things that fed into the fun and the feeling of living a different life for a moment is that I’m essentially single now and approaching the point I’d be ready to date (long story, private). Chatting with single strangers can have that hey, is this… something? feeling that can be exciting if a little emotionally dangerous.

In my real life, I’m a dad and a co-founder of a busy tech company, and I wouldn’t have it any other way. But once in a while, I can LARP as a freewheelin’ banjo-playin’ Alaskan.


A group of four men in plaid shirts sitting on stage, engaged in discussion, with a woman observing from the audience in a cozy venue adorned with posters and soft lighting.

Another day, I popped into The Alaskan only to be perfectly on time to catch The Strongbacks, a sea-shanty group of five dudes that I quite like, hosting a “vocal jam”. I was surprised at how many sea shanty enthusiasts showed up. Half the people in the audience were mouthing along to the songs.

An Irish session in the back of the bar didn’t stop playing for them, which made me furious. I considered saying something, but ultimately chose not to, as somehow nobody else seemed to care. Not even the bartender? Perhaps, as this wasn’t an official show and the jam had just as much right to make sound, asking them to stop would have been an injustice in its own right. Whatever, I’m still mad about it. The beauty of unamplified harmonizing voices should always take precedence over a mediocre Irish session. Just move!


There is so much going on at Folk Fest, you’re definitely going to miss more than you do, even if you shortlist stuff you’re especially interested in.

Here’s my list of things I would have liked to do but just… didn’t get to:

  • Lodestone library was hosting jams, and I peeked in and saw it, but I didn’t stop to jam, and should have.
  • There is a new brewery in town, Harbor Mountain, that hosted stuff, but I never made it in there, even just to try a beer.
  • I like the group Wool Pullers, who had a couple of shows, and I missed them both.
  • I really wanted to see the band High Costa Living featuring the exuberant powerhouse that is Collette Costa, but the line at the door for that show at The Red Dog Saloon was just insane (hundreds long?) seemingly the entire night.
  • I missed the rad metal band Bards of Mendenhall
  • I missed The Red Hots (I should have gone to the live studio audience show at KTOO).
  • I didn’t go to any dances. I’m dead scared of making a fool of myself at a dance, but I also want to get over it and do it.
  • I didn’t do any workshops.
  • I didn’t catch Caleb & Reeb, who had a LOT of shows. I saw them around a ton but didn’t seem them play, other than Reebs Sea of Heartbreak thing. I’ve still never even met Caleb, who’s a bit of a hero to me. A little intimidating.
  • I missed the Canadian tuxedo party.
  • I missed the cosmic truckstop brunch thing.

That’s a big list. And yet: no regrets.


Bocca al Lupo hosts a Corndog Bruch at 11am on Saturday. I missed it last year so I was glad to catch it this year.

Arriving at 10:40am, there were already a few dozen people in line ahead of us. They passed out paper fliers detailing the gourmet corndogs that would be available. You were supposed to pass the paper back, but you could tell nobody wanted to actually be the one holding the paper. Way too much responsibility for a hungover Saturday morning.

I had the elote and the honeybutter, both extraordinary, but I eyed up pickle-style with envy.

The cashier was drinking a Bush NA. It sounded good at the time, so I ordered one. She had brought it from home.


The band playing at the corndog brunch was The Heists, the last name of the lead couple, fleshed out by a great fiddler and bassist.

Importantly: they replaced words in the songs with corndogs and corndog puns. Will the circle be a corndog and the like. I would have liked to be consulted on this endeavor, as I like to think I could have gotten the corndog integration density even higher.

I recognized [Andrew] Heist from previous visits as I think he played in the band Taking Care of Bluegrass, which I’d seen a couple times, and saw again on this trip, but he didn’t seem to be in anymore. Possibly because he was in EVERY OTHER BAND. I saw them together again in The Boyfriend Girlfriend Bluegrass Band at the Alaskan. I saw him play with Raisin’ Holy Hell at The Crystal Saloon. I saw them in some very endearing moments in the documentary. I saw them play the main stage. I saw him out jamming. It’s a good thing they kick ass.

A lively band performing on stage in a cozy venue filled with music memorabilia. The musicians are playing various instruments, including a banjo and guitars, while the audience enjoys the performance.
The Boyfriend Girlfriend Bluegrass Band at the Alaskan

There were so many times I was doubled over with laughter on this trip. Maybe that, all things considered, was the best part. I’ve come to think that laughing is my #1 bucket filler. One night at dinner, there was an appetizer called “Bread and Bones” (which turned out to be a bone marrow thing), but we weren’t sure, so we just made silly guesses about what it might be, and I haven’t laughed that hard in a long time.


A black crow carrying scraps of food in its beak, walking on a concrete surface.
A bus passing by Amalga gruesomely hit a pigeon. This Raven went full nature on it, ripping off it’s head and flying away with it.

One day, sitting at Amalga (and I have absolutely no memory of how this came up), we opened up the Claude app on my phone and vibe-coded different trivia-style games. It competently crafted an “alive or dead” game with random celebrities, and we kept adding features and making variations. The new bar game is making your own.


Justin is seeing someone. It was lovely to meet her. We spent a lot of time all together as a group of three (plus dogs!). She was kind, endearing, funny, and up for anything. I’m glad to have made another friend.

I think three can be a magic number. There are more personalities and things going on to play off of. I need to remember this more specifically for friend trips: 3-5 is a good number range.


Last year, for the 50th, the weather was shit. It was cold and rainy the entire time. That’s how it always is. I’m sure months of dark, wet weather generally have mental consequences for the Alaskan natives, but it doesn’t seem to affect people’s moods during Folk Fest. There was a bit in the documentary about where they are clear on the matter: it just doesn’t matter. Put on your coat.

That was put to the test this year in an interesting way. While there were still big piles of snow everywhere, it was kinda nice out. Twice! Blue skies; warm sun. I was curious whether people would take to the streets, with outside jams, impromptu parties, and such. There was a little. I saw a couple of jams move chairs outside or play on the concrete outside the Sealaska Heritage Museum. It was kinda fun, but it wasn’t like this transformative thing for the festival. It was fun, but again, the weather just doesn’t seem to matter much.

Three adults smiling in front of snowy mountains on a sunny day, with buildings in the background.
Amy, me, Laura on one of those super nice days.

One of those nice days I popped into Devil’s Club to find the jam was Irish. Which is fine, but I’m not skilled enough in Irish to contribute much and there is usually enough going on I don’t need to force it. There was another fella sitting there, I noticed, who had a fiddle case, and we got to talking and turned out he played old time like me. So we found a little stoop over by Deckhand Dave’s, he flipped over an old, dirty bucket, and we played old-time duets for a couple of hours. Didn’t even catch his name.


I only went to the main stage once this year. The very last night. There’s just so much to do, it’s not even weird to miss most of the main stage stuff. One way to engage with Folk Fest is to hang out at the main stage primarily, and I’m sure a ton of people do that, but the musician types are always seeking out gigs and jams, and the younger crowd (and people that just don’t care that much about folk music) take the opportunity to enjoy all the great human energy downtown. Bar hopping and seeing the many non-folk shows and such.

A man with a beard playing the banjo on stage, wearing a red plaid shirt and a cap, with a microphone in front of him and audience members visible in the foreground.
Riley Baugus

I’m so glad I went to that last night, though. RO Shapiro had a powerful voice, sang beautiful songs alone on stage, and reminded us how important it is to support musicians. He had a wonderful song about how they all pass the same $20 bill around. I was stoked to see Riley Baugus, a banjo hero of mine. He was charming and funny and interesting in a way I definitely did not think he would be, and he managed to keep the huge audience captivated entirely alone with a banjo. He was there with The Red Hots, who I unfortunately missed.

Willie Carlisle closed it up, playing with a couple of multi-instrumentalists (one of whom I got to jam a little with, incredibly). Willie is a monster with a huge voice, huge personality, and huge opinions. He’s got a kind of old timey way of speaking and choosing words. He felt like a modern embodiment of folk, blending instruments and styles that are quite different while carrying a consistent air of quality. He opened with a monster vocal-only The Balad of Penny Evans, a Steve Goodman song about Penny who’s husband dies in Vietnam and is none too happy about that. A song called Crittertown brought out a surprise friend in a giant possum costume to wander the audience (gave me big Northern Exposure feels). My favorite was Big Butt Billy, an extra-folky guitar number about a kinda gender-neutral waiter at a diner with an ass so incredible Willie breaks down into exasperated spoken word in the middle of the song, finding different wild-eyed words to praise the ass.

A live performance scene with three musicians on stage, featuring a crowd of engaged audience members in a dimly lit venue.

A live music performance featuring three female singers on stage, surrounded by colorful decorations and posters. Audience members seated at tables, enjoying the show in a cozy venue.
Big Sissy at The Alaskan

One day in the afternoon, I was sitting in The Alaskan having a pint and waiting for Justin to get off work. There was a band setting up I’d never heard of: Big Sissy. Sisters from Connecticut. They played well and harmonized beautifully. I remember a First Aid Kit cover perfectly done.

Fifteen minutes after their set was over, we had walked over to Griz Bar, and they all walked in. I got a chance to say hi and thank them for their amazing and unexpected set. It was a warm moment.

Another day sitting on a stool at Griz Bar, there was a woman playing guitar really well and singing a Tom Waits cover. Rosemary was sitting, putting in little fiddle fills. They came over to the bar, and I got to buy them a drink, and the world felt warm again for another moment. She then played another Tom Waits cover.

Yet another day at Griz, Dude Mountain was playing an acoustic set. It was packed, even in the drizzle. There was a large man dressed up as a kind of cartoon wizard. He didn’t look like he left the house much, honestly, but he was out now, and he brought his cat, which kinda crawled around on his shoulders. Then someone brought like a dozen Domino’s pizzas and passed them out for free.


I’d say food isn’t particularly notable in Juneau. I had a steak dinner at SALT one night. The service was good. We laughed our asses off at stupid jokes. The steak was good, but everything else was fairly poor, honestly. They put this huge dollop of horseradish on my plate, camouflaged next to the au gratin potatoes, and I accidentally ate the entire thing. It was a real mouth problem for a minute there. My bad, I guess, but like, isn’t this a plating UX issue?

I had a Pickle Rick at The Hanger. The Cubano at Devil’s Club. The Taco Bell replica Crunchwrap Supreme at the Imperial (regrettable but necessary). Pizza at the Island Pub over on Douglas was good, but gave me heartburn that was hard to kick.

One night, we had a decent Indian spread at Spice. The vibes are a little sleepy; they didn’t seem to book any musicians this year, and the naan was a bit dry.

The Mexican food at Mar y Sol is fine, but they are a dry restaurant, and no margs with Mexican is rough. Amy and crew had dinner there, and I got a text from her that they started a jam there, and honestly, that was really fun. Kinda brought Folk Fest to another area of town that doesn’t normally get it.

A group of five musicians playing instruments around a table in a cozy room decorated with various artworks and string lights. The musicians are engaged in a lively jam session.
Mar y Sol jam

The noon latte at Coppa was a 10.

What you want out of a culinary experience in Juneau is to go out to Sand Bar in the valley and get the fried halibut. It’s literally all they do. The halibut comes from fishermen literally in Juneau. Even as a totally non-fish guy, I love it. I was sad to miss it this year.


A black and white notebook featuring a square face design with two eyes, positioned next to a wooden figure resembling the same face. In the background, there is a decorative bird sculpture and various books visible in a glass display case.
Alaska Robotics showcasing a Jon Klassen “Square” character. I actually saw Jon Klasssen read once, in Alaska, many years ago during the Comic Con in Juneau.

On my last full day there, I wanted to do some gift shopping. I called it Power Shopping because it was something I wanted to do, but wasn’t super in the mood for it, so the plan was hot’n’fast. I ended up getting:

  • A book from Sealaska Heritige Store. They had a Trickster basketball that was freakin’ art, but I just couldn’t justify traveling with it
  • Some postcards and a book from Kindred Post
  • A comic book at art supplies from Alaska Robotics (which had an incredible display of paintings of hikes in Juneau)
  • T-Shirts from Treetop
  • Obligatory shirts from Devil’s Club and The Alaskan

While Folk Fest officially ends on Sunday, and I imagine a lot of folks need to take off on Sunday or Monday, I scheduled my flight out on Tuesday on purpose because Monday is reserved for an all-day jam at The Imperial. The Imperial is right at the heart of downtown Juneau, but doesn’t seem to be an active participant in Folk Fest. Until Monday, when it’s absolutely taken over.

All the stragglers show up there and all the musical styles represent. I listened to an alt-old-time jam singing Reeltime Travelers, a classic old-time jam, a country jam, and a monster cajun jam. It took me a while to get the nerve up to get my banjo and get in on it (my confidence ebbs and flows). Honestly, a couple of beers always helps, which I don’t love, but it is what it is.

I ended up playing with Heidi again for a while, bookending the trip nicely, and then another group of lovely folks before feeling good about retiring the banjo for the trip.

✌️

Help Me Understand How To Get Jetpack Search to Search a Custom Post Type

5 April 2026 at 15:53

UPDATE: I’m just gonna put the answer at the top of this blog post to help anyone finding this. Do these things:

  1. Ensure the CPT is registered with:
"public" => true,
"publicly_queryable" => true,
"exclude_from_search" => false,
  1. Ensure the CPT is allowed in the REST API:
function allow_my_post_types($allowed_post_types) {
  $allowed_post_types[] = "YOUR_CPT_SLUG";
  return $allowed_post_types;
}
add_filter("rest_api_allowed_post_types", "allow_my_post_types");
  1. Ensure you’re not filtering it out inadvertently in a jetpack_instant_search_options hook.
  2. Ensure you’re not filtering it out inadvertently in the Jetpack Search “Customize” settings

Once all that is in place, doing a manual sync is in order at https://wordpress.com/settings/manage-connection/{YOUR_DOMAIN}

And now the original post…

I’ve got a Custom Post Type in WordPress. It’s called docs because it’s for documentation pages.

register_post_type("docs", [
    "labels" => [
        "name" => __("Docs"),
        "singular_name" => __("Docs Page"),
        "add_new" => __("Add Docs Page"),
        "add_new_item" => __("Add New Docs Page"),
        "edit_item" => __("Edit Docs Page"),
    ],
    "public" => true,
    "publicly_queryable" => true,
    'exclude_from_search' => false,
    "has_archive" => true,
    "rewrite" => ["slug" => "docs"],
    "show_in_rest" => true,
    "hierarchical" => true,
    "supports" => [
        "title",
        "editor",
        "thumbnail",
        "excerpt",
        "page-attributes",
        "revisions",
    ],
]);

This is for the CodePen 2.0 Docs.

The Classic Docs are just “Pages” in WordPress, and that works fine, but I thought I’d do the correct WordPress thing and make a unique kind of content a Custom Post Type. This works quite nicely, except that they don’t turn up at all in Jetpack Search.

I like Jetpack Search. It works well. It’s got a nice UI. You basically turn it on and forget about it. I put it on CSS-Tricks, and they still use it there. I put it on the Frontend Masters blog. It’s here on this blog. It’s a paid product, and I pay for it and use it because it’s good. I don’t begrudge core WordPress for not having better search, because raw MySQL search just isn’t very good. Jetpack Search uses Elasticsearch, a product better-suited for full-blown site search. That’s not a server requirement they could reasonably bake into core.

But the fact that it just doesn’t index Custom Post Types is baffling to me. I suspect it’s just something I’m doing wrong.

I can tell it doesn’t work with basic tests. For example, I’ve got a page called “Inline Block Processing” but if you search for “Inline Block Processing” it returns zero results.

In the Customizing Jetpack Search area, I’m specifically telling Jetpack Search not to exclude “Docs”. That very much feels like it will include it.

Screenshot of the CodePen blog search interface, displaying a search result for the term 'block' with highlighted entries, filtering options, and excluded post types settings.

I’ve tried manually reindexing a couple of times, both from SSHing into Pressable and using WP-CLI to reindex, and from the “Manage Connections” page on WordPress.com. No dice.

I contacted Jetpack Support, and they said:

Jetpack Search handles Custom Post Types individually, so it may be that the slug for your post type isn’t yet included in the Jetpack Search index.
 
We have a list of slugs we index here:
 
https://github.com/Automattic/jetpack/blob/trunk/projects/packages/sync/src/modules/class-search.php#L691
 
If the slug isn’t on the list, please submit an issue here so that our dev team can add it:

Where they sent me on GitHub was a bit confusing. It’s the end of a variable called private static $unindexed_postmeta, which doesn’t seem quite right, as that seems like, ya know, post metadata that shouldn’t be indexed, which isn’t what’s going on here. But it’s also right before a variable called private static $taxonomies_to_sync, which feels closer, but I know what a taxonomy is, and this isn’t that. A taxonomy is categories, tags, and stuff (you can make your own), but I’m not using any custom taxonomies here; I’m using a Custom Post Type.

They directed me to open a GitHub Issue, so I did that. But it’s sat untouched for a month.

I just need to know whether Jetpack Search can handle Custom Post Types. If it does, what am I doing wrong to make it not work? If it can’t, fine, I just wanna know so I can figure out some other way to handle this. Unsearchable docs are not tenable.

Hawai’i

27 March 2026 at 18:05

I’m just back from the United States 50th state, a staggering 2,500 miles from the mainland. For the next week or two, I’ll pronounce it Ha-Vie-ee, like how it’s pronounced in the native Hawaiian language. A language, by the way, that only a few thousand people speak natively, no doubt due to the 91 years (1896-1987) where there was “strict physical punishment” for speaking it in schools. We humans are pretty damn uncool to each other sometimes.

Ruby and I travelled there (again!) with some wonderful family friends, Matt, Becky, and their kids, Monroe and Zoey. A nice reminder of how rare and lovely it is to have a situation where the kids are friends, and the adults are friends, and everyone travels together well.

View through an archway overlooking a tropical landscape with palm trees, a pond, and a bridge leading to the ocean in the background.
Koi pond. The big white one Ruby named “opener” because it would swim right up to you with a big open mouth. You could have slid a brat into that big ol’ mouth.

We stayed in a villa at the Fairmont Kea Lani on Maui. I’ve been to Hawaii before, but this was my first time on Maui. It was a beautiful place to stay. A beautiful property and buildings right on the beach. The villa had two spacious rooms, a full kitchen, and a living room with a pull-out couch, on which all the kids slept together.

I’ve stayed at fancy resorts before where the staff uses special greetings with guests. But in Hawaii, naturally, it’s “Aloha.” Probably because, ya know, a real word, and basically the whole brand of Hawaii. But I just can’t shake the feeling that it’s kinda cheesy. Like, do Hawaii long-timers say Aloha to each other? Like it’s 5:21 am and a local is getting a coffee at the gas station in a local neighborhood, do they say Aloha to the cashier? Do they get an Aloha back? I kept meaning to ask this of locals, but kept forgetting. Or not having the exact 1.5 beers in me it takes to reach that perfect level of fun and charm to ask strangers semi-intimate questions.

If I were forced to guess, I’d guess Aloha is more of a thing they have to do at work with the tourists. Like your boss side-eyes you if you just say “Hello, good morning” instead. I never said it back, which felt weird. My goal was kind of a winkwink, it’s cool, you don’t have to do the cheesy tourist thing with me, I very promise I don’t care.

A man wearing a colorful baseball cap and a brown shirt, smiling indoors.
I went back later and got us all Monkeypod hats because Monkeypod rules.
A close-up of a glass filled with a yellow frothy beverage, resting on a wooden table with a straw and a napkin underneath.
Monkeypod Mai Tai

The first night, we got checked in and b-lined it to Monkeypod. We’d all been there before (at a different location) and have talked about it endlessly. It’s a micro-chain with 4 locations across two islands. It’s just: great. They make a Mai Tai with Honey Liliko‘i Foam on the top which I have fond memories, and it was every bit as good as I remembered. I had wings and mahi-mahi tacos. 10/10.

Three fish, including two red snapper and one gray fish, hanging in a display case.
The fish cooler at Koast. pretty sure that big guy is a Red Snapper, which I got and mostly enjoyed.

I never get the fish. I don’t like fish. I like specific little bits of seafood once in a while, but rarely cooked slabs of fish. So on that very first night, I decided I’d get fish every night on this trip. Maybe if I try enough of it, I’ll come around. It didn’t work. I struck out more times than I hit. But no big regrets. I tried.

A flooded street reflecting the sky, with telephone poles and palm trees in the background.
Some flooded roads in Kihei

Timing-wise, it wasn’t the absolute perfect time to be in Hawaii. But it was spring break for our school district, so C’est la Vie. Unprecedented rain with some flooding. A rather ironic situation after the horrible fires just a few years back. We were watching the weather and reading the news weeks in advance, but things didn’t seem dire enough to cancel the trip.

Honestly, some overcast weather isn’t the worst. None of us left with sunburns. It allows you to hang out outside all day, which you just can’t do on full-sun days, as it exhausts you.

Book cover of 'I'm Glad My Mom Died' by Jennette McCurdy, featuring the author holding a pink urn and wearing a pink outfit against a yellow background.
I was told I looked extremely manly rocking this very pink book on the trip. I bought it at the airport on the way out and finished it on the last day, making it perhaps the most perfect beach read of my life. I’m also glad her mom died, jeez.

The first full day turned out to be one of the rainiest, and we spent most of it at the pool anyway. I got us a cabana that turned out to be awfully useful. Being in the pool in the rain is no big deal, but lying out in chairs in the rain is annoying. And you certainly can’t crack open the laptop or read a paperback. I did both that day and was loving it.

We were trying to book an ATV tour for ourselves, and that was the one thing we just couldn’t get done. The rainstorms just weren’t letting it happen. Apparently, there was too much debris and whatnot on the trails; the places that offered these tours didn’t reopen until after we left.

We started most mornings at the breakfast buffet, included in our fancy villa booking. It was pretty crowded as they couldn’t seat people outside in the wet.

Then we’d hit the water without fail. A few days we did the ocean, but came to understand it really wasn’t a good time for that. Storms wash landcrap out to sea, making the water look muddy. Apparently, that’s worse than just looking ugly; it can harbor dangerous bacteria. The guy at 808 clothing told me that you’d have to be a real idiot to go out in it and that real Hawaiians would never. Last year, some lady had to have her legs sliced open to flush out the bacteria (or something? The guy was pretty weird). Also, later, our zip-line guide told us she loves to surf and wouldn’t go out because the “muddy” water is extra-attractive to sharks, since the low visibility helps them more than it helps their prey. Also later, we went to a surfing beach absolutely full of obviously local surfers. Turns out people don’t exactly speak for all people.

We did some knee-deep ocean stuff because it’s hard to resist.

Two children standing outside near a pool area, with palm trees swaying in the breeze and a rainbow visible in the cloudy sky.
Rainbowwwwww.
Two figures walking towards the ocean on a beach under a cloudy sky.
A view of a tropical garden with lush greenery and a pond, where people are engaged in activities by the water, seen from a white railing.

One day we drove up to Paia, a northern coastal city with extreme charm. Unfortunately we got there when it was pouring pretty good, so we spent most of it hustling between store overhangs. You could really see how close to flooding everything can get, quickly.

We mostly just did a little shopping, walking around, and snacking in Paia, and I didn’t take many photos there. It was super cute though, highly recommended. I sorta regret not buying a Ukulele bass from the music shop there as I’ve been eyeing one up like forever, ever since going on a trip with Brad Frost where he brought his. Which reminds me: we had the kids to Uke lessons at the Fairmont and it was kind of a mess. Probably skip that.

The hostess at the bar we stopped at told us how to get down to the turtle beach nearby (Ho’okipa). It was really pouring when we got there, so we just parked for a while and watched the surfers. Really amazing to watch. Huge waves.

A rocky coastline with waves crashing against the shore under a cloudy sky.
Many deaths

The turtle beach didn’t disappoint!

A group of green sea turtles resting on a sandy beach surrounded by dark rocks.
A bald man lying by the pool, pointing playfully while holding a drink served in a pineapple with an umbrella decoration.

Hitting the pool was a daily event. The kids are old enough that we could shoo them out the door to the pool and not worry about it too much. Two of the kids had trackable wrist watches that could make calls, so that was extra convenient. There was a swim-up bar that I appreciated existing despite never getting around to using it. I did us the walk-up bar once, and the Zach Bryan impersonator bartended made me a cocktail despite it being almost an hour after it was supposed to close. He was being fawned over by two woman who wanted to make sure he had their number for later. I enjoyed that, naturally.

Ruby’s favorite experience, and perhaps mine too, was the zip lining we did. We chose Haleakalā Zipline Tours as, well, it was open, and it’s location high up mid-island looked cool. It was. The two charming guides helped make it fun, showering us with bird-facts and about their conservation efforts. Ruby had to get over some fears of zip lining at all, which she did and of course now loves it. I left thinking of other zip lining we could to back home and hoping to see a ʻAlalā (Hawaiian crow). We hit Black Rock Pizza on the way home, my only non-fish dinner.

The very last day, our friends moved on to another island, while we were hitting the redeye flight home. We had most of the day to kill, so we wandered around the property a bit, wandered some stores, then went to the local cinema to catch Project Hail Mary (fun!) and then off to the airport. Only a 5-hour flight back to Seattle compared to the 7-hour flight from Salt Lake City on the way there. We both slept a little and it went easy breezy.

Cartoon monkey character making a hand gesture while sitting on a yellow surfboard against a light blue background.
Cool dude from the shave ice place we went to after dinner at Three’s one night.

💾

💾

💾

Meets Style Sheets

18 March 2026 at 15:47

I’ve accepted an invitation to speak at Smashing’s (Online) Conference Meets Style Sheets. It’s free on Wednesday, May 6th.

Promotional graphic for a virtual event titled 'Style Sheets' featuring coding elements, date and time details.

I named my talk In-N-Out Styling.

Long time CSS evangelist Chris Coyier will talk about how you can style things on their way into view on a webpage, and on their way out. Of course, with Chris being Chris, there will be plenty of things which are food for discussion, as well as plenty of practical take-aways as well.

I’ve been preparing for it. I’ve got like 35 minutes or so, and the concept of modern “entry” and “exit” styles is plenty for that time. It’s kinda complicated in my opinion, involving multiple ways of doing things, modern syntax with weird names, and specificity footguns. I think we can all come out of it with an understanding of what’s possible.

Kermit Roosevelt

14 March 2026 at 17:08

I was at a school function the other day where the 2nd graders performed a bunch of Aesop’s Fabels and it was great.

It was a double-header with 3rd graders who then read prepared reports on famous people. It was cross-disciplinary thing as the kids brought props from design class, costumes from performing arts, and did the speech both in Spanish and English.

It was cute. A lot of astronauts and artists and stuff.

One kid did Theodore Roosevelt.

I’m not a smart man, and I just had no idea this happened.

1912. He’s giving a speech in my old stomping grounds, Milwaukee, Wisconsin. Dude friggin shoots him in the chest. The bullet goes through a thick, folded-up bit of paper in his pocket, but then still into his body. Then he’s like “I’m good” and continues his speech for an hour. He recoups a couple of weeks but they leave the bullet in his body and didn’t seem to care.

Kind of a badass. No wonder he leaned into the “Bull Moose” thing.

Then the kid is like, and he had five kids, yadda, yadda, Kermit, yadda, yadda.

I was like LOL, he named one of his kids Kermit. Turns out all of his kids led fascinating lives too! Kermit was an unhealthy kid, but ultimately went to Harvard and then did a bunch of literal jungle exploration with his dad (?!) and later Asia with his brother.

… he postponed his marriage to join his father on a dangerous journey to the River of Doubt in Brazil. Both he and his father nearly died during this trip through the jungle.

He fought in both World Wars, deciding to go to England and join the British Army to fight for them. Apparently, you can just do that? War breaks out, and you can just pick one of the countries and go there and fight for that side? WTF? He doesn’t make it all the way through WWII because of the health stuff, so they stick him up in Alaska, and he kills himself. Wild stuff.

Oh and speaking of his brother Theodore III…

Along with his brother, Kermit, Roosevelt spent most of 1929 on a zoological expedition and was the first Westerner known to have shot a panda.

AI is my CMS

13 March 2026 at 15:58

I mean… it’s not really, of course. I just thought such a thing would start to trickle out to people’s minds as agentic workflows start to take hold.

Has someone written "AI is my CMS" yet? Feels inevitable. Like why run a build tool when you can just prompt another page?

Chris Coyier (@chriscoyier.net) 2026-03-10T01:52:20.536Z

AI agents are already up in your codebase fingerbanging whole batches of files on command. What’s the difference between a CMS taking some content and smashing it into some templates and an AI doing that same job instead? Isn’t less tooling good?

I had missed that this particular topic already had quite a moment in the sun this past December. Lee Robinson wrote Coding Agents & Complexity Budgets. Without calling it out by name, Lee basically had a vibe-coding weekend where he ripped out Sanity from cursor.com. I don’t think Lee is wrong for this choice. Spend some money to save some money. Remove some complexity. Get the code base more AI-ready. Yadda yadda.

Even though Lee didn’t call out Sanity, they noticed and responded. They also make some good and measured points, I think. Which makes this a pretty great blog back-and-forth, by the way, which you love to see. Some of their argument as to why it can be the right choice to have Sanity is that some abstraction and complexity can be good, actually, because building websites from content can be complicated, especially as time and scale march on. And if you rip out a tool that does some of it, only to re-build many of those features in-house, what have you really gained?

TIME FOR MY TWO CENTS.

The language feels a little wrong to me.

I think if you’re working with Markdown-files as content in a Next.js app… that’s already a CMS. You didn’t rip out a CMS, you ripped out a cloud database. Yes, that cloud database does binary assets also, and handles user management, and has screens for CRUDing the content, but to me it’s more of a cloud data store than a CMS. The advantage Lee got was getting the data and assets out of the cloud data store. I don’t think they were using stuff like the fancy GROQ language to get at their content in fine-grained ways. It’s just that cursor.com happened to not really need a database, and in fact was using it for things they probably shouldn’t have been (like video hosting).

Me, I don’t think there is one right answer. If keeping content in Markdown files and building sites by smashing those into templates is wrong, then every static site generator ever built is wrong (🙄). But keeping content in databases isn’t wrong either. I tend to lean that way by default, since the power you get from being able to query is so obviously and regularly useful.

Maybe they are both right in that having LLM tools that have the power to wiggleworm their way into the content no matter where it is, is helpful. In the codebase? Fine. In a DB that an MCP can access? Fine.

❌
❌