Still on Arc

Sometimes when I change software, I end up switching back. I get excited about the fresh vibes, like moving the living room couch, then find enough little annoyances or rough edges that the temptation to move back overwhelms. Email clients are notorious for that. I get tempted by … | Continue reading


@chriscoyier.net | 1 year ago

You kinda want an orange favicon.

You can’t have a white favicon, because, in a lot of situations, you won’t be able to see the dang thing at all. Here’s a default Chrome tab while macOS is in Light mode. You can’t have a black favicon, because, in a lot of situations, you won’t be able to see the dang thing […] | Continue reading


@chriscoyier.net | 1 year ago

Game of Life Universe

I’m just a general fan of Conway’s Game of Life, mostly for nostalgic reasons. It was one of the first things I ever coded (Turbo Pascal) that was super interesting to me. Probably partially because of the visual and interactive components. I remember working on it feverishly in … | Continue reading


@chriscoyier.net | 1 year ago

Some Monospace Fonts I’ve Only Just Seen

I guess that’s what happens when you blog about something. After you hit publish you see and learn a bunch more about that thing that you wish you know before you hit publish. | Continue reading


@chriscoyier.net | 1 year ago

What tools would you miss the hardest if could use NONE to build a website?

Simon Willison: Tip for anyone who’s been put off building stuff with JS due to the terrifying array of build tools and packages and framework choices you have to make these days You don’t have to use any of that stuff! A few years ago I gave myself permission to ignore it all an … | Continue reading


@chriscoyier.net | 1 year ago

Interop 2023 CMS Checkin

All the big players in the browser-makin’ world have announced their 2023 Interop project, following in 2022’s footsteps. One of the best things they all could be doing? Absolutely. Without concerted efforts like this, we risk falling back into an era where we can’t count on web … | Continue reading


@chriscoyier.net | 1 year ago

The Different Names for Values in CSS

CSS: What is the value of font-size on the body? 1.2rem… right!? Kinda! That’s the “specified” value, and it’s just one of many kinds of values that we might talk about when working with CSS, the DOM, and rendering our site in a web browser. Karl Dubost got all into this recently … | Continue reading


@chriscoyier.net | 1 year ago

Outdoor Guitar

I won this little guitar at an auction benefit thingy for the Boys & Girls Club of Bend a while back. The company is literally called Outdoor Guitar™ and it’s right here in Bend, Oregon. The Outdoor Guitar™ is available in carbon fiber polycarbonate (bright tone) and brown glass … | Continue reading


@chriscoyier.net | 1 year ago

End-To-End Tests with Content Blockers?

I was reading Eric Bailey’s recent piece Modern Health, frameworks, performance, and harm the other day. It’s excellent and you should go read it. The plot begins with Eric signing up for a site, meant to help him in a time of need, and the damn thing just spins: Since I make dig … | Continue reading


@chriscoyier.net | 1 year ago

Starting Ozempic

270. That’s as fat as I’ve been in a while. I’ve also got a back injury I’m working through. The weight isn’t helping. Nor is my weight helping me do things I want to do: long hikes, skiing, and bringing big play energy to my kid. This all breeds a gnarly kind of self-loathing th … | Continue reading


@chriscoyier.net | 1 year ago

Hex Colors Aren’t Great At Anything Except Being Popular

Data in the 2022 Web Almanac says that the 6 and 3-digit hex color formats (#XXXXXX and #XXX) combined account for 74% of all color declarations. That’s not surprising, or even really bad, but it’s a little unfortunate as these color formats are the most boring and least capable … | Continue reading


@chriscoyier.net | 1 year ago

Japanese Web Design

There is a dissonance I’ve heard brought up more than once. It goes something like this: Japan is this beautiful place, renowned for cleanliness, simplicity, and sparse, orderly design in physical spaces. But digital design out of Japan is cramped, cluttered, and garish. Why? Som … | Continue reading


@chriscoyier.net | 1 year ago

This is the kind of weird crap I would write in college.

I’d open up Adobe Illustrator and make something like this: I have absolutely no memory of writing this one in particular, but there are piles of it and remember some of them. I had no particular vision here, nor is there any deeper meaning. I was just trying to be funny and weir … | Continue reading


@chriscoyier.net | 1 year ago

Meteor

10 Years of Meteor is a very interesting retrospective from Sacha Greif. Calling it a retrospective might make it sound like Meteor is dead, but it’s not. I’d say it’s fallen out of favor, but that’s not quite right either: Meteor was never particularly popular. What it was: pret … | Continue reading


@chriscoyier.net | 1 year ago

Open Graph Blues

Terence notes that the Open Graph Protocol is… if not dead, abandoned. That sucks, because OGP is still clearly very useful. It’s this HTML stuff: For example, Apple’s iMessage uses those tags to make rich previews in message threads. People love the concept of rich previews and … | Continue reading


@chriscoyier.net | 1 year ago

Yaml, JSON, Toml

A great bit of technical writing from Ruud van Asseldonk: The yaml document from hell. Ruud shows one bit of yaml configuration and then shows off many problems that arise all over it. It is mind-blowing to me how nuanced and tricky it all is, to the point that I’m nearly convinc … | Continue reading


@chriscoyier.net | 1 year ago

CSS Color Manipulation Functions, Please Save Us From The CSS Custom Property Gotcha

I think it’s so annoying that this doesn’t work: Hopefully, you can see what I’m trying to do there. The links are a special color, and in their hover/focus state, I want to keep that color but change just the lightness. That seems like bread-and-butter CSS custom properties stuf … | Continue reading


@chriscoyier.net | 1 year ago

Un-Encoded SVG Backgrounds in CSS (Also, Writing CSS in CSS lolz)

I found this little aside in a Charlotte Dann article interesting: Historically you’d have to URL-encode the SVG but I found that in all modern browsers encoding is unnecessary as long as it’s free of #s (HSL for the win!). Encode your files with this tool for extra safety. So yo … | Continue reading


@chriscoyier.net | 1 year ago

Philips Hue Sync

When I picked up my new TV at Best Buy recently, first, I strolled through the TV section for kicks. A Philips Hue Strip ($256) caught my eye and I went for it. You use sticky pads to stick it to the back of your TV and it makes colored light. The whole deal with […] | Continue reading


@chriscoyier.net | 1 year ago

Musing Upon an [alt] Text Badge on Images

The Mastodon instance I’m on has a little custom CSS applied to it which shows a visual [alt] badge on images that have an alt attribute: And as a little light shaming, a [no alt] badge on images that don’t: Sorry about mine there. It appears there is some kind of bug with the Sh … | Continue reading


@chriscoyier.net | 1 year ago

You Like It Because You Know It

If you can play a song on an instrument, you probably like that song. You’ve gotten to know it. You’re part of each other now. Tech can be like that. I have my own little bag of technologies that I know fairly well, so I like them. I like them a little more than technologies […] | Continue reading


@chriscoyier.net | 1 year ago

A Very Basic Scraper/Aggregator Site in Next.js with Go Cloud Functions and Supabase

Wouldn’t it be neat to have aggregated data (for a website, daily email, push alert, etc) of kids events in our surrounding area so we know about them right away? — My wife, possibly salty we missed out on Bluey Live tickets in Portland That’s proper nerd sniping on a Saturday mo … | Continue reading


@chriscoyier.net | 1 year ago

OK, OKLCH 👑

My brain has a strong desire to crown a winner of technological choices so I can choose it when options come up, or at least have a strong, consistent algorithm for the choosing. So now that CSS has a bunch of new color options, my brain is trying to do that crowning. It is helpe … | Continue reading


@chriscoyier.net | 1 year ago

What does it take to make a JavaScript framework?

Dave made a list. It kinda sounds like he’s kidding, but no — that’s what it takes. And because these exist in the front-end and open-source space, the ability for organizations to “make it” is tough. You likely need the VC (or a corporate overlord) to have the resources to do al … | Continue reading


@chriscoyier.net | 1 year ago

Optimism Hour

Tom MacWright talks about some of the decidedly good things happening in web development. In the not-so-recent past, when I was writing server-side code, I’d have to use a module like request to handle HTTP requests, the querystring builtin or the qs module for decoding query str … | Continue reading


@chriscoyier.net | 1 year ago

Dark Mode via a Smallish Script in the Head, Avoiding FART

One of the ways you can offer Dark Mode / Light Mode on a website is to totally honor the system preference in CSS alone. So like… That’s fine, I suppose, but it’s not very fun. It’s way more fun to have a UI toggle that users can use! Plus, it’s possible that even if […] | Continue reading


@chriscoyier.net | 1 year ago

HTML Attributes For Very Specific Third-Party Reasons

From Nicholas C. Zakas’ newsletter: The QA manager for my team at Yahoo stopped by my cube one day. “We need you to stop changing CSS classes in the HTML,” she said. I found this request odd. After all, we use CSS classes to apply styles to different HTML elements. I couldn’t ima … | Continue reading


@chriscoyier.net | 1 year ago

Coding Fonts I’d Actually Use

I made a microsite one time that showcased fonts designed for coding. I had some standards for it — it wasn’t just any ol’ monospace font. They were all monospace and of good quality, and in most cases, specifically designed with code in mind. Still, there were 46 of them all tol … | Continue reading


@chriscoyier.net | 1 year ago

Scalable CSS

What is the best scalable CSS approach? First, what does scalable CSS mean? To me: So what is that approach? I dunno — that’s for you to choose. I will say that hand-written vanilla CSS files are a perfectly fine option. You can achieve all of this, including the scaling part, wi … | Continue reading


@chriscoyier.net | 1 year ago

Chokepoint

Cory Doctorow: Theoretically, there’s a way to avoid the app store chokepoint: web apps. These are part of the HTML5 standard, and if a browser fully implements that standard, then developers can make a self-encapsulated “app” that’s delivered in the browser, complete with an ico … | Continue reading


@chriscoyier.net | 1 year ago

Intuitive List Item Transitions with the View Transitions API

While I was trying to remember the name of this concept where a list of items uses animation to “open up” and make room for another list item to animate in, I thought of the name “Intuitive Transitions.” The idea is that your brain understands exactly what has happened to this li … | Continue reading


@chriscoyier.net | 1 year ago

Luck

It’s a common sentiment: The harder you work, the luckier you get. It’s a book, but I’m sure the orignial quote is like Mark Twain or something. I’ll admit it resonates with me. When I’m really working hard on the right things, for all the world to see, good things tend to happen … | Continue reading


@chriscoyier.net | 1 year ago

Coyier’s Edge Law

Brian Rinaldi: Does the Serverless Edge Live Up to the Hype? Your edge function – or middleware as some frameworks call it – will be called when the request comes in before it hits the origin server. It can modify that request, redirect it – so no need for slower server-side or c … | Continue reading


@chriscoyier.net | 1 year ago

In The Stacks (Massie’s Tune) by Robin Sloan

Wonderful story from Robin where an 83-year-old woman who learns to play “the Big Red Synthesizer, enormous, as long as a Fiat” at the public library. Interestingly, commissioned by a design studio. Doubling the coolness, a modern, functional, web-powered synthesizer forms the he … | Continue reading


@chriscoyier.net | 1 year ago

Browserslist Visualized

Have you seen the Browserslist concept? You make a .browserslistrc file at the root of a project, or a browserslist key in a package.json file, which indicates what browsers you want to support. Then any other code processing tool on that project and refer to it to make decisions … | Continue reading


@chriscoyier.net | 1 year ago

Pocket Casts is Open Source

I’ve used Pocket Casts as my preferred podcast app for… I dunno a long time I don’t really remember using anything else. I like it. It was July 2021 when Automattic bought it. Friggin wildcard acquisition right? Although Matt has said: Automattic is structured a bit like a holdin … | Continue reading


@chriscoyier.net | 1 year ago

A Perfect* CI Process

When you commit and push code to a Git repository, it can kick off a series of events. A pipeline for your software, as it were. This whole process is often called “continuous integration,” or CI for short. It’s pretty crucial to modern software development and falls under the um … | Continue reading


@chriscoyier.net | 1 year ago

The Great Divide Was Indeed Divisive

Zach reflects on 17 years in the game and my essay The Great Divide, four years old this month: The Great Divide really resonated with me. I keep coming back to it and I do think it continues to accurately describe what feels like two very distinct and separate camps of web devel … | Continue reading


@chriscoyier.net | 1 year ago

My Helvetica& Shirt

I don’t know what step through debugging even is ok. | Continue reading


@chriscoyier.net | 1 year ago

Friggin Lasers

I have this (extremely loose) idea for an activity in which a laser beam shines onto a gameboard, parallel to the board, and you have to use mirrors to reflect the beam toward an end goal. Maybe you’re solving a logic puzzle of sorts, where you are reaching the goal with limited … | Continue reading


@chriscoyier.net | 1 year ago

Getting The Most Value Out Of An Answer

Say someone asks you a question. They walk up to your desk, send you an email, ping you on Slack, whatever. The answer needs to be beefy. You could answer with your mouth, respond to their email, or DM them back. That’s totally fine and probably the most socially acceptable way t … | Continue reading


@chriscoyier.net | 1 year ago

I didn’t discover that grid-template-rows trick for animating to auto in CSS, that was Nelson Menezes.

When I was on Alex Trost’s holiday stream, real quick at the end, I showed a way that CSS can animate to auto dimensions. This is a hell of a trick and it’s pretty great there is a way to get it done in without needing JavaScript to measure things ahead of time. Ideally, CSS […] | Continue reading


@chriscoyier.net | 1 year ago

Ten Years Since NYT’s “Snow Fall”

Sarah Bahr at NYT notes that Snow Fall is 10 years old now. It was a big smurfing deal in the crossover world of web design and journalism. It was like the concept of “art-directed blog posts,” but for news stories, taken to an 11. Here’s a collapsed version of how it all played … | Continue reading


@chriscoyier.net | 1 year ago

A Big Pile of Personal Developer & Designer Blogs in an OPML File

I’m hesitant to share this. I think RSS is most valuable when you slowly add people to your feed reader of choice that you have found and you know you like. A firehose of additions might turn you off. Too much noise. But on the flip side, you might find reading RSS too boring whe … | Continue reading


@chriscoyier.net | 1 year ago

I feel contractually obliged to link to a post like “Bring back personal blogging”

Monique Judge for The Verge: The biggest reason personal blogs need to make a comeback is a simple one: we should all be in control of our own platforms.  If what is happening on Twitter hasn’t demonstrated it, our relationship with these social media platforms is tenuous at best … | Continue reading


@chriscoyier.net | 1 year ago

Feeds Can Be Whatever

It’s just timestamped HTML. As I recently wrote about feeds. An RSS feed (or JSON feed) isn’t “just for blog posts”, as nobody would be blamed for thinking. I just saw this new CMS called microfeed. One thing I like is how it just digs into Cloudflare-specific tech in a super opi … | Continue reading


@chriscoyier.net | 1 year ago

What does it look like for the web to lose?

There is always some degree of tension between “native apps” and “the web” as platforms. If you’re going to write a native app for Android devices, well, I’ll quote from the Android Developer documentation: Android apps can be written using Kotlin, Java, and C++ languages. The An … | Continue reading


@chriscoyier.net | 1 year ago

There Can Be Money in Blogging

When you hear me endlessly prattle on about how you should have your own site, publish your own feed, and the general power of writing, I mean it. But why? What’s the point of writing on your own site? So many. Not to mention it’s fun! But there can be money in blogging too: You … | Continue reading


@chriscoyier.net | 1 year ago