Solo Dev Pathology · Field Notes

Shipping Paralysis &
World Domination Scope

Why AI making code free didn't make shipping easier, and the specific traps that keep a genuinely good project permanently local.

01 · Taxonomy

Name the Thing You're Actually Doing

These aren't the same problem. Knowing which one you're in is the first step to getting out.

Pattern A

Scope Creep

Accidental, slow expansion. Requirements grow without anyone deciding to grow them. Classic project management failure.

Pattern B

Scope Leap

A sudden, deliberate jump. "I'm building a notes app" becomes "I'm building a decentralized OS." Not accidental. It felt like a good idea.

Pattern C

World Domination Scope

Neither creep nor leap. The project expands continuously because every layer of quality reveals the next layer of imperfection. It's structural.

Pattern D

The Rising Standard

The trap unique to genuinely high-quality work. Every improvement proves the standard is achievable, which raises the bar for everything else.


02 · Core Concepts

The Mechanisms Behind the Loop

What's actually happening when the project refuses to end.

CONCEPT 01 The Observation Debt Problem Root cause
  • Every time you look at the project, you incur debt
  • Not technical debt: observational debt
  • Noticing something broken creates an obligation that didn't exist a second before
  • The backlog doesn't exist until you look. Looking is the bug.
  • The project isn't getting worse. Your awareness of it is getting more expensive.
The implication You cannot fix your way out of observation debt. Every fix is also an inspection, and inspections generate new entries. The only exits are shipping (externally enforced), hard feature freeze (self-enforced), or never looking again (not a real option).
CONCEPT 02 The Infinite Denominator Progress illusion
  • Most people measure progress as things completed
  • The "World Domination" builder measures it as things remaining
  • That denominator never shrinks. Every fix reveals the next layer
  • You can't outrun the denominator
  • Shipping isn't about finishing the list. It's about deciding the list doesn't matter.
What this means for AI-assisted work AI closes the numerator faster than ever. But it also generates new denominator items: suggested improvements, hover state variants, edge case handlers. The ratio stays roughly constant. Speed alone does not ship.
CONCEPT 03 Zero-Cost Implementation, Infinite-Cost Vision The AI paradox
  • Pre-AI: implementation cost gated ambition naturally
  • You couldn't gold-plate everything because building everything took real time
  • Now that cost is near-zero, the only bottleneck is what you can imagine being better
  • That is effectively infinite
  • Shipping used to be hard because building was hard. Now shipping is hard because stopping is hard.
The AI developer paradox Because the cost of implementation is near-zero, the internal quality bar scales to infinity. You are no longer fighting implementation time. You are fighting your own vision, and your vision has no ceiling.
CONCEPT 04 The Founder-Craftsman Split Identity conflict
  • Two people exist inside every solo dev
  • The Founder: wants a URL in front of someone tomorrow
  • The Craftsman: wants the hover state perfect first
  • On personal projects, the Craftsman always wins. No one can fire them
  • The Founder only wins when there's an external forcing function
What AI changed AI made the Craftsman infinitely more productive. That is the worst thing that could have happened to the Founder. The Craftsman can now pursue perfection at a pace that previously would have been unsustainable, so they never run out of steam before shipping becomes necessary.
CONCEPT 05 The Living Document Trap Justified stasis
  • A product "always improving" is a product that never ships
  • The Living Document mindset is correct, but only after launch
  • Applied before launch it's a philosophical justification for not finishing
  • The difference between a living document and a shipped product is a date someone was willing to honor
The spec version of this The same trap exists in spec-driven development. A spec that keeps evolving is doing its job during planning, but a spec that never locks is a project that never builds. Iteration is the goal. Indefinite iteration is the trap. The same dynamic shows up in AI debt, where artifacts accumulate around an agent's fluency instead of around shipped product.
CONCEPT 06 Feature Fermentation Slow accumulation
  • The opposite of "ship fast and iterate"
  • The project sits and ferments. Each session adds another layer
  • Keyboard nav, hover states, edge-case handlers, animation polish
  • None of it is wrong. All of it delays.
  • The belief driving it: one more layer and it'll be the most powerful thing on the internet
Why it's hard to stop Each fermentation layer genuinely improves the product. The keyboard nav is real. The hover matrix is real. The work isn't wasted. It's just not shipped. The problem is that "one more layer" has been true every single session, and it will remain true indefinitely.

03 · Lore

The Big Ideas Behind the Pattern

The philosophical scaffolding. Understanding this doesn't fix the problem, but it makes you harder to fool by your own justifications.

Boutique Software

Why You Can Build What Companies Won't

What you're building isn't commercial software, which is full of compromises, deadlines, and stakeholder decisions. It's boutique software: hand-crafted, over-engineered, and genuinely higher fidelity than most production systems. Companies don't build this way because it violates economic gravity. The ROI isn't there at scale. But for a solo developer with AI credits, it's just a question of how much world domination you can stomach before you get bored. The irony is that this makes the project harder to ship, not easier, because you can see exactly how good it could be.

The Rising Standard

The Better It Gets, the Harder It Is to Call It Done

A mediocre project is easy to ship. You can see its ceiling. A genuinely high-quality project keeps raising its own. Every improvement proves the standard is achievable, which raises the bar for everything else. The better it gets, the more it deserves to be better still. This is not a flaw in your character. It is the logical consequence of caring about quality. The fix is not caring less. The fix is separating "what it deserves" from "what it needs to be in front of someone today."

The Attention Bottleneck

The Only Bottleneck That Scales With You

Before AI, the bottleneck was implementation time, and that naturally gated how many improvements you could pursue in a session. Now the only bottleneck is your attention, which is infinite and undisciplined. You can pursue every improvement you notice. You can fix the double-click, which reveals the text selection bug, which reveals the arrow handler, which makes you notice the hover colors. There's no friction between noticing and acting. And a loop with no friction does not terminate on its own.


04 · The Exits

What Actually Gets Things Shipped

Not hacks. Not motivation tips. The structural conditions under which things actually leave the local machine.

EXIT 01 The Hard Freeze Line Self-enforced
  • Not "done when it's perfect" but "done when X, Y, Z are working"
  • Everything discovered after the line goes on a post-launch list, not into the session
  • The freeze line must be defined before the session that would break it
  • Defining it retroactively doesn't count. You'll always find a reason to move it
Why this is hard The freeze line requires you to make a decision about what "done" means before you can see everything it isn't. That's uncomfortable. But the alternative is letting the denominator define done, which means never.
EXIT 02 The External Forcing Function The reliable exit
  • A customer, a deadline, a co-founder, a public commitment
  • Professional products ship early because of these, not discipline
  • Solo projects have none of them, so the loop never terminates
  • The only real fix is to manufacture one artificially
  • Neither option is fun to impose on yourself
The honest version A public commitment works because failure becomes social, not just personal. "I'm shipping this Friday" said to no one is a soft deadline. Said publicly, it's a contract. The Craftsman can override a soft deadline. They have a harder time overriding the other kind.
EXIT 03 Separate "What It Deserves" From "What It Needs" The mental model
  • The project deserves perfect hover states. It doesn't need them to ship.
  • "Deserves" is infinite. "Needs" is bounded.
  • The question isn't "is this worth fixing?" It always is
  • The question is "does fixing this change whether someone can use it?"
  • If the answer is no, it's a post-launch item by definition
The reframe Most imperfections you're protecting against aren't blocking the user. They're blocking you, from feeling okay about the thing going out. That's a different problem with a different fix.