The joy of leisurely projects

I've spent many an evening on personal projects of varying complexity - from one-off data scraping jaunts, through creating various apps, to incrementally building up and upgrading what I call my "personal stack". None of them have any kind of deadline; they're my leisure activities. My as-the-time-allows projects.

There were times when I was frustrated by my slow progress or stumped by technical issues but that virtually doesn't happen anymore.

There are two factors in this: one is simply the fact that I already did get a lot of things I needed up and running. The other is my conscious decision to reorient my thinking from "argh, why is this taking so long!" to "whatever, it'll be here tomorrow. Or next week."

I'm far from done. There are things in my stack that need attention. Often they're specific things I'd really like to use as soon as possible. Often it's things I know the solution to, both conceptually and technically. I just haven't found the time to do them yet.

But I no longer let the things I do in my spare time spoil my mood. And if I find myself wanting to do something else instead - watch a serial, play a game, read a book - I do that instead. No matter if it means the current thing will be on hold for a month or three.

If all of that sounds obvious - well, it is. But lately, I've been really enjoying the unexpected benefits of my approach, the biggest of them currently being: updates.

I run a lot of open source software in my stack. Sometimes I encounter bugs or missing features. (I always try to be a good netizen and at least report issues and try to help replicate them.)

And by virtue of not looking at the software for a month, I often find a patch has been already released.

One of the biggest examples, and the most recent one that inspired me to write this post, is my goal to eventually move from Airtable to something self-hosted. I started evaluating alternatives some 9 months ago, settling on NocoDB.

But then there was the issue of migrating my data over. Back then, NocoDB didn't have proper imports from CSV (or anything much). Since I had a good experience with n8n and Airtable, and n8n also supports NocoDB, I thought I might use that. But it sounded like a lot of hassle, so I've been putting it off.

When I decided to take another look at it a few weeks ago, it turned out that NocoDB now supports both CSV and (beta) Airtable import.

That saves me so much time! I'm so glad I just let the issue rot for half a year.

Did that import work? Well, not really, at least at first. 😁 But then some more patches were released, and the NocoDB team helped me with some issues. (Shout out to them - they tend to react quickly and be very helpful. Thanks!)

So now my data is migrated. Yay!

I mean, it's still not ready for prime time. I'm using this opportunity to clean things up, change the schema, et cetera. And there still are crucial features missing. (Let me add options to the Select field en masse, please!)

I'll just take my time.

Ah, and yet another pleasant surprise - since I now can manipulate the data directly with SQL, I can do transformations and fixes that I can't imagine doing in Airtable.

So - fun times ahead! I'll just get this done, and then I can finally move on to finishing my utility web rewrite. And book/readlist management improvements. And the Universal search; with Matrix integration. And I need to rework the game DB integrations; then there's a feature I really want to add to Obskurnee. And...