Skip to main content
← Blog

Trusting the awkwardness

VauDium ·

I built a wizard and scrapped it. Started an Event entity and scrapped it. At zero users, "this feels off" is almost the only validation signal you have — and trusting it enough to stop is how you survive.

Trusting the awkwardness

I built a wizard

To help users set up a Project, I built an 8-step wizard.

  • Name
  • Period
  • Current situation
  • Expectation
  • Obstacle
  • Daily routines
  • Milestones
  • Done

Each step on its own screen, one input each. Bulk save at the end. Loading indicator with an 800ms minimum so it’d actually be visible. As I built, I polished details — X button on the first step, “Back” text on the rest, a Skip option, larger input boxes, ProjectInput style for the name field, IntentionFieldLabel + DescriptionInput for the analysis fields…

Polishing along, I realized polish wasn’t going to fix it.

”Awkward” is a signal

There was no clear defect. It worked, the design system matched, the steps were reasonable. But every tap through it felt off.

I couldn’t pin down what the off-ness was. “Too many steps?” “Flow unnatural?” “Would a timeline view be better?” — none of these landed as “yes, that’s it.” It was just off.

I thought polishing more would resolve it. The more I polished, the clearer the awkwardness became.

So I stopped. Said “let me think about it more,” and deleted what I’d built.

Milestones, too

Around the same time, I started extracting milestones as their own Event entity. Got halfway through the server model and CRUD endpoints.

Then stopped. Same awkwardness. I couldn’t say exactly what was off, but — was a milestone really a new entity, was it a kind of Project Task, or was it something else? — I felt like I was making that decision prematurely while building.

Deleted everything. Didn’t even commit.

What awkwardness tells you

Awkwardness like this isn’t unique to zero-user state. But at zero users, it’s almost the only validation signal you have. No users means no behavior data, no interview material, nothing but instinct and intuition to lean on.

So when something feels awkward, you have to trust it. “This is awkward and I don’t know why” is the system telling you the model isn’t yet formed. Polishing without a settled model just polishes a non-model.

In the Journey post, I wrote “an entity’s boundaries surface when you connect it.” This is another shape of the same idea — awkwardness surfaces as implementation moves a step at a time. Both are signals from code when the model isn’t yet right.

So I stopped

What’s clear now:

  • Project itself is solid (name / period / documents / tasks / routines / members)
  • How to layer a “setup flow” on top — still unknown
  • What a milestone should be — still unknown

Knowing this clearly is itself worth the two attempts. The next attempt starts when I can answer “why was it awkward.”

There are times to build fast and times to think slow. When awkwardness has no answer, stopping — that, I think, is how you survive at zero users.