Your worst enemy isn't the market. It's you

Your worst enemy isn't the competition, the market, or the money. It's the Thursday afternoon when you just can't open your IDE.

Week #20 in Bangkok


Everyone talks about the hard parts of indie hacking. Finding the right idea. Building the product. Getting the first customers. Surviving the competition.

Nobody talks about the Thursday afternoon when you just... can't open your IDE.

Not because you're sick. Not because you don't know what to do next. The task is clear, Claude or GPT is ready, the coffee is hot. You just sit there, switching between X and Reddit, telling yourself you'll start in ten minutes.

That's the enemy nobody warns you about.

The procrastination nobody admits to

This week I split my time between two things: finalizing my Google SERP scraper infrastructure and rebuilding the UX of SnappyName from scratch.

One of these tasks I attacked with the energy of someone who hasn't slept in three days and doesn't care. The other one I postponed, negotiated with myself about, and generally treated like a tax return.

Guess which was which.

The scraper is a genuinely hard problem. I've been chasing it for weeks. Stealth browsers, proxy pools, rate limiters. Every day brings a new technical puzzle to crack. There's a moment, usually around midnight, when something finally clicks and you run a test and it works. And that feeling is why we do this.

The SnappyName UX refactor? Necessary, important, directly tied to attracting more visitors. And about as intellectually stimulating as watching paint dry.

Responsive design in particular is my personal hell. Hours of tweaking breakpoints, testing on different screen sizes, fixing the thing that works on mobile but breaks on tablet, fixing the tablet version and watching the desktop layout collapse. It's not hard. It's just relentless and unrewarding and there's no Eureka! moment at the end. You just eventually arrive at: "Okay, this is acceptable. Let’s ship it".

The difference between laziness and selectivity

Here's the thing I realized this week: I'm not lazy.

And if you're reading this, you're probably not lazy either.

What we are is intellectually selective. We have a natural pull toward complex, open-ended problems. The kind where you don't know the answer when you start, where the solution requires creative thinking, where failure is possible and therefore success feels like something.

And we have a natural aversion to closed, repetitive execution tasks. The kind where the answer exists, you just have to grind through it.

This distinction matters because lazy people know they're lazy. Intellectually selective people think they're working.

I spent three days this week making genuine progress on the scraper while the UX refactor sat untouched in my todo list. I felt productive. I was productive, technically. But I was also procrastinating on the thing that was actually blocking SnappyName's growth.

That's the dangerous version of procrastination. Not the "scrolling X for two hours" kind. The "cooking the exciting thing while avoiding the important thing" kind.

The indie hacker's specific trap

In a normal job, this gets managed for you. Your manager assigns priorities. Deadlines are external. Someone is waiting on your output.

When you work alone, nobody is waiting. You set your own priorities. And your brain, being the sneaky, comfort-seeking organ that it is, will constantly reorder that list in favor of whatever feels most stimulating right now.

The market doesn't care about your preference for intellectually challenging work. Users don't care that responsive design is boring. They just open your app on their phone, see a broken layout, and leave.

The tasks you avoid are almost never the tasks that don't matter. They're usually the tasks that matter most and feel worst.

How I'm dealing with it (imperfectly)

I don't have a magic system. Anyone selling you a magic productivity system for this specific problem is lying.

But a few things have helped this week.

Separating the two modes completely. I stopped trying to alternate between scraper work and UX work in the same day. The context switch is brutal and it gives my brain an excuse to drift toward whichever task is more fun. Now I do full days on one thing. Scraper week. UX week. The boring task gets its full dedicated time with no escape hatch.

Shipping something broken on purpose. The SnappyName refactor has been blocking me because I wanted it perfect before pushing it live. That's a trap.

I pushed an imperfect version this week. It's live, it's functional, some breakpoints aren't ideal. And the world didn't end. More importantly: having something live creates urgency that a todo list never does. I want to fix it now because real users are seeing it.

Being honest about what I'm avoiding and why. This sounds trivial but it isn't. The moment I wrote down "I am avoiding the UX refactor because responsive design is boring and I dislike it" (not "I'll get to it later", not "I need to finish the scraper first") the avoidance became harder to maintain. It's much easier to procrastinate on a task when you're lying to yourself about why.

The scraper verdict

Since it's part of the week: the Google SERP scraper works. It runs clean requests, avoids detection, costs almost nothing to operate.

The problem is volume. What I built is powerful enough for SnappyName's current scale. A few hundred queries a day, no issue. But the features I want to build next require more. A lot more.

So the conclusion I'd been resisting for two weeks is now official: I'll combine my homemade scraper with a paid API for high-volume queries. Not the pure hack I wanted. But the right engineering decision.

Sometimes accepting a hybrid solution is its own form of discipline, resisting the urge to keep chasing the perfect answer when a good enough answer exists and the product is waiting.

Nico was right when he said to give myself a deadline and move on. The deadline set itself.


This was week #20 in Bangkok. The scraper found its limits. The UX got shipped, imperfect and live. And the hardest thing I built this week wasn't code — it was being honest about what I was avoiding 💪

0 Comments

No comments yet. Be the first to comment!