I feel like the sweet spot it hits is neither developer- nor newbie-friedly, but somewhere in between where it's equally bad for both target groups. Workflows get out of hand very quickly, making me need more blocks than lines of Python I'd have to write to achieve the same thing. You need to really understand their logic gates to do stuff, and the docs you'll be relying on range from not great to very bad, incomplete, or just plain incorrect. You'll have to rely on their (Discourse) community forum quite a bit.
If you're one of those people that are strict about open source definitions (I'm personally not one of them), then it's not open source, as you'd need the enterprise license to run it in production for commercial purposes. But, to make it worse, you'll reach some of those enterprise features in your personal projects as well: global variables, Git version control, bash scripts, custom nodes, workflow history (so that you can revert if you mess something up)... all behind an unobtainable license for personal use.
With that out of the way, it is the closest thing to what I want out of such a tool, so I keep on using it despite its flaws. Managing credentials is very easy, you can make custom HTTP requests, sharing and importing workflows is very straightforward, debugging them is easy (most of the time), it's easy to self-host using Docker, it supports many of the APIs I want to use that other similar tools don't (okay some of the cloud ones do, but they're pretty unobtainable .
Overall, I'd say 6/10? It's good, but it could be so much better.
(Just to avoid misunderstandings. "It" in "sweet spot it hits..." is not crystal clear)
n8n is great because their UX is simple and they have many well-made integrations, including an automatic way of setting up the webhooks in your github account for instance to trigger automation on changes to your repo.
Windmill is less about having many integrations, and more about being able to write real code-based workflows, running on your infra and with potentially long-running jobs that you can assign easily to bigger nodes. It's a compromise between n8n and temporal for the workflow part.
Anyway, n8n was a precursor in many aspects and a great inspiration for all of us building workflow engines.
For a developer, it seems like a great low code tool with the right flexibility to write whatever script you need.
- Write regular code
- Test locally
- Then deploy
This is one of the key aspects we're fixing at https://www.inngest.com — you can write regular TS (or Go, or Elixir) code as a function, create simple workflows, test locally, and have your functions automatically triggered by events.
I still think there's room to go with improving automations here, and it's going to be an interesting few years as things develop.
The SDKs are lightweight, work in any language (we only support a few right now), and you can live-migrate long running functions across languages at any time. Long running state is automatically transferred across those SDKs.
One of our foundational aspects is to make long running state, queues, events really easy, and that means we need to make multi-cloud and multi-lang migrations easy, too.
With all the workflows as code frameworks (like say, Temporal), this is what I imagine to be a shortcoming. With regular services + state in database implementations, you can query the database separately. While with a temporal workflow, you can't cleanly figure out where a particular workflow run is atm since the state is an append only stream of events?
The basic premise is that you can send Inngest events (for free) then start writing functions hosted in your own API at any time, with local testing, branch deploys, etc.
My favourite is a flow to pull HTML-formatted newsletters out of my email and push them to Wallabag. I then use Wallabag's RSS feature with Calibre to turn them into an ebook I can read on my Kindle.
My other major use case is centralized notifications. For a lot of things (e.g. backups), I have a webhooks in Huginn that then push out a notification via Gotify to my phone.
I've also used Huginn to scrub/clean up RSS feeds, since it can pull the feed, apply transforms to it, and then republish it.
I ask because I'm also curious what I can use these sort of tools for. I installed Node Red before and other than visual smart home automation, was at a loss of ideas. As someone who can write bash scripts (and nowadays ChatGPT does all the scripting for me), how can they make my life easier?
Yeah I could write some Ruby or Python or Perl to do the job but I can also spend way less time and use something like Huginn to do it for me.
Honestly, your argument could apply to virtually anything you might do with something like Zapier or equivalent. Nothing they do can't be done via scripting. The point is these tools simplify the grunt work so you can go from idea to implementation much faster, with proven code that you don't have to write and maintain yourself.