Building
← all writing
Building · shipping before you're ready · ◉ Evergreen

Ship the embarrassing version

by Shreyansh Ojha·4 min·Working Theory

The first version of anything I’ve shipped that mattered made me want to close the tab and lie about it.

Not because it was broken. Because it was thin. It did one thing, badly, behind a button that looked like it was drawn with someone’s elbow. I remember hovering over the deploy command like it was a confession. Ship this? With my name near it?

I shipped it. That’s the whole trick, and it took me years to trust it.

The gap between the thing in your head and the thing on the screen

Here’s what nobody tells you when you start building: the version in your head is always finished. It has the animations. It has the empty states. It has the clever onboarding and the settings page and the little touches that make people say “oh, nice.” In your imagination, it is complete and beloved.

The version on your screen is a form with three fields and a bug.

Every hour you spend not shipping is an hour spent trying to close that gap privately, in the dark, where nobody can help you. And the gap doesn’t close by staring. It closes by contact — by the thing meeting an actual person who does an actual thing you didn’t predict. Until then you’re guessing, and guessing is the slowest way to learn anything.

The embarrassing version isn’t a lesser thing you settle for. It’s the fastest known instrument for finding out what’s real.

You’re not shipping a product. You’re shipping a question, and the users are the only ones who can answer it.

Think about what embarrassment actually is. It’s the distance between how you want to be seen and how you’re afraid you’re being seen. Which means embarrassment is proof you’re being seen at all — that the thing left your head and entered the world. A project that never embarrasses you is a project nobody has looked at.

idea good polish in private — one slow guess ship small, learn, repeat — many short contacts
The short loop wins by touching reality more often. The smooth private path feels safer, but the bumpy one reaches "good" first because each bump is real information. Original diagram · Working Theory

What “embarrassing” is allowed to mean

Let me be precise, because this advice gets abused. Ship the embarrassing version does not mean ship the broken version. It doesn’t mean ship the insecure one, or the one that loses someone’s data, or the one that lies about what it does. Those aren’t embarrassing. They’re a breach of the small trust someone extended by showing up.

Embarrassing means incomplete. It means ugly. It means “this only handles the happy path.” It means you had to write a sentence in the README that starts with “for now.” The embarrassment lives in the ambition you couldn’t reach yet — not in the quality of what you did reach.

The distinction is simple. Embarrassing is “I wish it did more.” Shameful is “I wish it did what I said it did.” Ship the first. Never the second.

The compounding cost of waiting

Every week you hold back, two things happen quietly. The gap between your imagined version and your real one grows, because your imagination keeps building while your code sits still. And your attachment grows, because unshipped work becomes precious in a way shipped work never is. You start defending it before anyone’s attacked it.

Shipping early isn’t only faster. It keeps you honest and keeps you loose. It turns your work from a monument you’re guarding into a conversation you’re having.

So publish the ugly one. Push the thin one. Write the “for now” and mean it. The polished version you’re protecting doesn’t exist yet — and the only road to it runs straight through the version you’re ashamed of.

The embarrassment fades in about a day. What you learned by shipping stays.

Liked this? Get the next one in Working Theory.

Going weekly in August (it's in beta now). One genuinely interesting read on building, the brain, and the science most people missed.

Got a reaction, a counter-example, or something I missed? Reply by email — I read everything.