This is another one of those “trivial in hindsight but you might never notice” lessons that I must write down now or else it might be lost to time, only for me to make the same mistake again and re-discover it.
There is this common pattern on things that I have been working on lately. Broadly I divide my projects into two different categories, those where I’m actively focused on learning something new, these will usually be simpler and more focused and unimpressive like catsh, esteem ( funny how I can’t even name more ) and then those where I mostly review code and instead just guide an llm model to produce a little bit less of slop, this is usually either something that I want to use for myself or some type of larger software I’m trying to build.
The later one, where I’m more of a “product manager” is where I lie to myself and don’t even realise it. There are, at this point, a few projects where I make and abandon them entirely — verti was a huge mistake, pinnacle of ignorance, there’s my starless theme, savant, reinote, mire and perhaps a few more dead ones that I won’t even recall without scrolling through my repositories. The common theme across them and the point of this note is a loss of diretion on what I was trying to achieve with them.
Let’s take the latest and specific example to highlight it, plane. This is an in progress app where the boundaries blur. It’s something I want to use for myself, and there’s also a motivation or rather a vague vision where it’s a popular competing open source app in it’s target domain. So far, of all the time I’d spent on plane, there has been a focus on the “code” aspects of it, which is fine but this was overly so. Back of my mind, I had this idea that I’m also learning atleast “something” by making this and also that this is not a learning project so I can work a big hands off from the code as long as I’m certain there it’s somewhat decent. Then I ended up getting stuck on the very very minor details; now all of this is stil fine somewhat, it does not align with the “direction” but is not too far off but I’m getting to the direction now. What is the aim with the whole ordeal with plane? I defnitely want people to use it, and try to get it to be a funtional product, but the way I’ve taken it is not a straight line path to it.
Had I not realised this, here’s how I think this would’ve gone; I end up wasting a LOT of time actually making it, and not evaluating who or what am I even making it for; this happened with verti; mire too, which is no as bad of an idea but 1) I did not really learn much from getting something done via prompting and just reviewing it all here and there, 2) I only made one simple post when it was done and that’s it. This is a waste of time tokens and everything.
What is the aim with plane then? I can only choose one and earning isn’t it that’s for sure; the programmer in me would not want to admit that all the end goal with the whole idea was to maek an open source product that’s moderately useful and famous. There isn’t much to learn by that implementation, the fact that all I’m doing is prompting ensures that there will be no learning. And yet I’ve made two unfortunate mistakes already, 1) not even gauging interest by sharing it in different places, I mean, I say it’s product but where will the users come from ?, the likely path would’ve been a couple posts ( if it’s even a couple ) and then leave it for dead. If the original goal failed, what was even the point. 2) poor prioritisation, a decent bit of time was spent going from initial version to the foundation widgets separated version; I set out to build plane and it soon broke down into maxima then minima, back and forth iteration into making what will be a full theme as a subcomponent of plane. Now this is not entirely useless, but is also not exactly the best way to go about for getting the product done and definitely increases work with not much gains on the product, there is no learning as well, I’m going down a rabbit holes that I don’t realy should, even though it looks more tempting from an engineering perspective — all I have is a finite life after all.
I think I’ve rambled enoough, I must stop now. To summarise, remember WHY you are doing something and WHAT’s the end goal, it’s very easy to deceive yourself into thinking you’re making progress when you’re not really. In the end, it would be wasted hours and effort, all in vain and a self-betrayal that could’ve been avoided with just a little bit of planning.