There’s a kind of freedom that only exists inside a box. Not the freedom of infinite possibility, but the stranger, harder-won freedom of knowing exactly what you’re working against.
I keep coming back to this when I’m building. The projects I’m proudest of weren’t the ones with the most tools or the widest scope. They were the ones where something — time, resources, skill — forced me to make a decision I’d been avoiding.
“The enemy of art is the absence of limitations.” — Orson Welles
When I built the first version of typeset, I gave myself a constraint: no settings. Not because settings are bad, but because every setting is a decision deferred — a thing the user has to think about instead of you.
Constraints as creative forcing functions
The constraint forces a choice. And a choice, made clearly and with intention, is almost always better than an option. Not because you’ll always be right, but because you’ll be coherent. The user will feel the difference between a thing that knows what it is and a thing that’s trying to be everything.
This applies to writing too. I used to outline exhaustively before I’d write a single sentence. Then I started giving myself a different kind of constraint: one hour, publish whatever exists at the end. Some of those pieces are rough. Most of them are more honest than anything I wrote in eight careful drafts.
Three constraints I return to
One surface. If it can’t be expressed on a single screen or page, it’s probably two things wearing one coat. Split it.
No conditionals in copy. “If you have X, then…” is a sign that you’re solving for too many users at once. Pick one.
Finish something small. A constraint on scope. Ship the version that does one thing well. Then decide if more is necessary — usually, it isn’t.
I don’t think constraints are magic. They don’t replace good judgment or real skill. But they make space for both, by eliminating the noise of infinite choice.