Self Hosting Low Code Automation
I’ve long found web-based “low code” automation tools like IFTTT, Make.com and Zapier handy for automating small web-based workflows— posting to social channels, updating records in Airtable or Notion, and the like. While I can often script these workflows in Python and run them on my Raspberry Pi with a cron job, there’s a lot of overhead: figuring out each service’s APIs and installing Python dependencies that make handling them easier. You also have to create log files to troubleshoot when things go wrong. So it’s nice to have a web UI to quickly build workflows with built-in logging and pre-configured steps for different services, so you don’t have to learn every API. Plus, I’m a visual thinker, so seeing workflows mapped out visually helps me get my head around them.
The problem is those low-code automation services usually offer very limited free tiers, with most charging $10–$15 a month if you want to do anything slightly complex. Fair enough—they provide a valuable service, and I’d probably pay for one if I had mission-critical workflows depending on them. But for a few small jobs here and there for my hobbies, it didn’t seem worth it, which is why I run stuff like my custom RSS2Social script to post new entries from this blog to my Mastodon and Bluesky accounts.
So I was intrigued when I came across Active Pieces via a post from Matt Fusfield. Like Zapier and the others, Active Pieces is a web-based low-code automation service that connects various web services. You can sign up and use it like those services (with paid tiers), but unlike them, Active Pieces offers a free, open-source version you can run on your own server via a Docker container.
Matt mentioned he installed it on his Raspberry Pi 5, which I also happen to own, so I figured I’d give it a shot. I’m already running Home Assistant and Pi-Hole on the Pi 5, and it handles both without straining CPU or memory, so I thought I had the headroom. The installation took about five minutes (after pasting a single terminal command to build the Docker container). After that, I was up and running.
The first thing I tried was recreating my RSS2Social script. I was able to rebuild it in about ten minutes by adding a built-in RSS block, then two blocks each for Mastodon and Bluesky (I auto-post to my personal accounts and to coefficiencies accounts). I was especially pleased to have the Bluesky integration, because my past experience with the Bluesky API was painful. A quick test, and it worked successfully!
Here’s what it looks like:
I have to say, they did a great job with the Active Pieces UI. It’s very snappy and quite pretty. It kind of blows my mind that it’s all running on my little Raspberry Pi 5 in my shed, alongside the other stuff I run.
Not sure what else I’ll do with Active Pieces, but it’s nice to know it’s up and running now and I can tinker with it if the need arises.