Notes

Things we only learned by doing

Problems we’ve run into in design, branding and tech, and how we think about them.

Every piece is about a mistake we actually made: how the symptoms misled us, why we chose what we did, and whether it held up. There’s no fixed schedule and no dates. An observation from six months ago doesn’t go stale just because of its age.

Want our positions rather than our observations?+Where we stand+Our solutions

Latest

A checker that never fails is worse than none
A glowing slide rail and clamp on a metal jig
A checker that never fails is worse than noneCraft & Tools

A checker that never fails is worse than none

We once ran a validator for two weeks without a single red light. It turned out it hadn't caught anything since day one.
2 min

Up next

A row of black sliders on a long metal track with purple light glowing from the bottom
Your CSS is on the server, but it never reaches the browserWeb & Technology

Your CSS is on the server, but it never reaches the browser

The file is right, the path is right, and the rule is sitting in the combined stylesheet. It still doesn't…
2 min
扇形排開的色片插在一條發光的弧形底座上
Two of our 13 colors were 8.8 degrees apartBrand Identity

Two of our 13 colors were 8.8 degrees apart

A palette grown from traditional colors looked fine until we lined up the hue angles and found two that couldn't…
2 min
A vise gripping a row of metal blocks
The cramped mobile layout wasn’t a font-size problemWeb & Technology

The cramped mobile layout wasn’t a font-size problem

We shrank the type three times before admitting the layout needed a rule for what gives way, not a few…
2 min
A neat row of metal comb teeth, one of them different from the rest
Icon quality isn’t something you check by eyeBrand Identity

Icon quality isn’t something you check by eye

One icon in a set had a stroke 0.25px off. We went through the set three times without seeing it.…
2 min
A transparent lens clamped between two plates with blue and purple light glowing from underneath
The database had the new value. The site was three minutes behind.Web & Technology

The database had the new value. The site was three minutes behind.

Write straight to the database, bypassing the application, add a persistent cache on top, and the symptoms look like an…
2 min
A row of identical metal blocks on one guide rail
Consistent AI images don’t come from the promptCraft & Tools

Consistent AI images don’t come from the prompt

We generated several hundred images and used a dozen or so. Whether the style held depended on two other things.
2 min

The rest

And 38 more

A row of equally spaced black blocks on a guide rail
Monospace fonts have no Chinese, and they won’t tell youBrand Identity
2 min

Monospace fonts have no Chinese, and they won’t tell you

A metal tray with an intact outer frame and a hollow center
HTTP 200, and the main content area is emptyWeb & Technology
2 min

HTTP 200, and the main content area is empty

A metal grid resting on a stone slab
Open-line logos on photos always need a backingBrand Identity
2 min

Open-line logos on photos always need a backing

A metal key and a similarly shaped black key
The short class name was part of the long oneWeb & Technology
2 min

The short class name was part of the long one

Two glass panes stacked on a metal stand with a blue-purple light shining between them
To check a font loaded, measure pixels instead of asking the APICraft & Tools
2 min

To check a font loaded, measure pixels instead of asking the API

A metal storage tray divided into a row of small compartments
A legend lists the full set, not whatever the data hasBrand Identity
2 min

A legend lists the full set, not whatever the data has

Two sockets on a black base, only one of them plugged in
The folder name looked right. The site was using the other one.Web & Technology
2 min

The folder name looked right. The site was using the other one.

A perforated metal plate next to a closed box
Not finding it doesn’t mean it isn’t thereCraft & Tools
2 min

Not finding it doesn’t mean it isn’t there

Want to talk through your situation first?

Thirty minutes, no charge.