Table of Contents
Recently I've been exploring options for solving technical problems that I just don't want to get into, or for which there are already ample solutions in the wild. Things like:
- Authentication and authorization with third-party APIs
- Scheduling (cron)
- Server side functions without a server
An Example: CRON
- Do I use cron often enough to learn the commands? at present the answer is a clear no. But is cron occasionally useful? Hell yes. When it's useful it's extremely useful, which is to say it's straight up super useful I just don't need it that often.
An example: Dev ops related tasks
- Do I manage infrastructure often enough to learn all the
gcloudcommands? No. However, when I need some infrastructure a good UI is very much appreciated. Also, I do manage infrastructure, just not very often. So I don't have much incentive to become a dev ops wizard and yet I still need to do the task sometimes.
Exploring the options
Let's look at some of whats available in the wild right now
Zapier (the expensive one)
- I heard of them before all the rest so I'm going to make the broad assumption they are most popular in the category. I also consider Zapier best-in-class for everything they support.
- They really tend towards NoCode as opposed to LowCode, which means their UI is quite advanced but if you are inclined to actually write some code you might find yourself meandering through the UI for minutes on end just to write the equivalent of a simple function. I'm thinking specifically of logic statements, filtering and data mapping.
- Their integrations really work which is impressive. It's no mean feat to support ever-changing APIs.
- As far as I can tell Integromat is nearly everything Zapier is but it's more affordable. A nice UI and lots of integrations at a very reasonable price.
- Not much else to say about them since I just started playing with the service, but I'm a fan.
- This is an interesting looking one but I haven't actually installed it and tried to use it yet, so I"m not sure how it fares compare to the rest. Certainly looks nice.
- Free to use but not for commercial interests. Still, may well work for personal automation. The reason this is more worrying is that if it doesn't work out as a business it may completely lose traction.
- Here's the repo: https://github.com/n8n-io/n8n
- This is probably even more popular than Zapier given it's free (right?). I honestly don't know what their business model is though, which is worrying.
- Abysmal UX, although it is possible to get things done. It's a non-trivial product so I know some people put a lot of time and effort into it. This is certainly not a critique of those people, but I feel I should not pull any punches here. I gave up on using IFTTT multiple times before ever getting it to do anything meaningful because I couldn't figure out how to create a new workflow. Hard to describe in words, but I found myself expecting a "create new" button so much that I didn't even go looking in other parts of the UI for it. I thought it was impossible to do anything other than use premade workflows.
- Somewhat of a different category since they are an api for apis with a UI that only serves to support figuring out their API. I love this service.
- Currently certain endpoints (like YouTube) are pretty limited, but they're actively working on it.
- I saved this for last since it's probably the most promising of the self-hosted solutions. Looks very powerful and fairly intuitive to use. More importantly it looks extensible and community supported.
- What's troubling is that I'm not sure why it exists. It seems to be an IBM project, but why? If it remains free and open source, what's the incentive for IBM? They do offer to set it up quickly for you in their cloud infrastructure, but that doesn't seem like a big enough lift to put them on a competitive footing with AWS or GCP.
I've been playing around with Node-red recently and so far it seems like it might just hit the sweet spot of not overemphasizing "No code" while still providing useful UI abstractions over many common functions.
A middle ground
My thinking has gravitated to this idea, that there must be a middle ground where you know in your soul and muscle memory that which is relevant most often (this makes you productive) and for all the rest you have a discoverable UI that let's you be productive enough given how little you use the service or function.
The tricky part is it's going to be different for everyone. For some, the hyper specific
awscommands are extremely relevant and it pays to know them and use them. For others, maybe the NoCode approach is good enough and nothing specific enough to warrant real code is ever needed.
I of course am somewhere in the middle. My thesis is this:
LowCode solutions could prove to be the perfect medium to capture all the marginal use cases. All the use cases where it's not worth it to learn the thing well, but prior to LowCode learning it well was the only option.