About Builds AI Portfolio Lab Tools Blog Contact
All Posts

Nobody Asked for the Scannability Warnings

I added scannability warnings to a QR generator I built for myself. Then I spent six commits fixing a gap in a profile tool nobody could see. Building for yourself means you can always see it.

2 min read
side-projectsweb-developmenttools

I built a QR code generator for my site this week. Standard stuff: pick a size, pick colors, download the image. Done in an evening.

Then I added scannability warnings.

Nobody asked for them. There’s no product manager here, no spec, no ticket system. I run ricoordonio.com solo. When I decided that a QR code with a foreground color too close to white was bad UX, that was entirely my call, based on nothing except having once tried to scan a washed-out QR code at a restaurant and being annoyed about it. The warning fires now if your contrast ratio drops below a threshold I picked because it felt right.

Same day I shipped the Profile Ring Creator. Those decorative circular frames you see on social media profiles, the kind that turn a plain headshot into something more composed. You drop your photo in, pick a badge style, the canvas composites them together. I thought it was going to be a one-session project.

It was six commits.

First there was a transparent gap between the photo and the badge ring. Not a big gap. A pixel, maybe two. Barely visible at normal size. But I was looking at it, and the gap was there, and I knew it was there, and that meant fixing it. Then the auto-fit transform wasn’t reading canvas dimensions correctly at certain aspect ratios. Then the outer-crop mode needed a default that worked for most photos without manual adjustment. Then I wanted a silhouette placeholder so the canvas didn’t look hollow before you loaded a photo.

Six commits. One day. Not because anyone complained, but because I was the one looking at it.

This is the specific problem with building things for yourself. You can always see it. Every other user has the luxury of not knowing what you know. They see the final state. You see the gap. You were there when the gap existed. You carry it even after it’s fixed.

At work I have a team, a backlog, and stakeholders who have a say in what gets worked on next. “Good enough” has a definition there: satisfies the requirement. There’s a line you cross and then you’re done.

When I’m building for myself, for fun, I define “good enough” based on whatever I happen to be noticing that day. What annoying thing I can’t allow to persist. What’s just too cool not to build.


If you’re building something for yourself and you can’t figure out why you haven’t shipped it yet, it’s probably because you’re still looking at it. Stop looking. Or accept that looking is now the project.