Because time is limited, I’ve recently started asking myself every week: What should I work on first this weekend? I want to make the most of my limited time and create value, rather than wasting effort on things that go nowhere.
I start by identifying which tasks are likely to be completed and which might end up taking two full days with nothing to show for it. If I can’t get anything done in two days, then that time essentially produces no value.
Even when the task is something I really want to do — something I believe would be a valuable feature that could increase the conversion rate — I still end up postponing it. Why? Because I judge everything by one standard: Can it be completed within two days and generate value?
There are so many things I want to build for ChatTCP. One idea I’ve had for a long time is integrating AI to provide a diagnostic feature via MCP. It’s something I’ve been meaning to do for ages. But I’ve delayed it again and again, simply because there are some technical issues I haven’t been able to resolve.
What I envision is a local tool that provides MCP services. The biggest technical hurdle is this: if the tool isn’t running, MCP can’t be invoked at all — and solving this problem has been tricky.
It wasn’t until this Sunday, after finishing two iterations, that I finally had time and decided to give it a shot. I worked on it late into the night, all the way until 2 a.m. In the end, I failed — the sandbox environment wouldn’t allow file access without user authorization.
I pulled an all-nighter and, in the end, it was just another piece of wasted work. I felt drained going into work Monday. I didn’t feel human again until I took a quick nap at lunch.
The more apps I build, the less time I have for actual iteration. That’s why I’ve developed a mindset where I only want to work on things I’m fairly sure I can complete.
But thinking back on it now — this is what indie development is really like.
Wasted effort is just part of the journey.
For example, what if I launch an app and no one ends up paying for it? Isn’t that just wasted effort?
Or say I add an image translation feature to a translation plugin, but no one uses it — isn’t that also wasted effort?
Or take LiaoNote as an example. I fixed a bug in the link preview card feature. But if no users actually use it, didn’t I just waste my time?
Over the past few weeks, probably 80% of my work has been “wasted effort.”
The income from my apps didn’t come from anything I built during these past few weeks.
And what I’ve built lately hasn’t significantly improved the app’s conversion or payment rate either.
So yes — I’m clearly spending time doing things that don’t bring immediate results.
I am doing wasted work.
But here’s the thing: we can’t do without these so-called “wasted efforts.”
Because — if we don’t turn our ideas into apps, how can we possibly know whether anyone would pay for them?
If the AI shift-scheduling app hadn’t been built and promoted with ads — and then ended up getting zero downloads — how else could we have realized that even though competitor research and keyword data looked great, the actual traffic just didn’t materialize?
If we don’t build some features that turn out to be useless, how else can we know that there truly was no user need?
How else can we verify that those features really don’t help increase payment conversions?
If we don’t “waste time” solving technical problems and falling into traps, how can we skip the necessary research and still expect to know whether something is realistically feasible to develop?
And if we don’t at least build it, how can we know whether that feature might have been the next creative highlight — something users are actually willing to pay for, something worthy of promotion?
This article is really a self-reflection.
The truth is, most of the time, we are doing work that feels pointless.
So instead of overthinking, maybe we should just work on things in the order we most want to do them.
Because even the “wasted work” is worth doing.
It’s part of the indie journey.