[ Comparison ] · 7 min read
n8n or Custom Code for Automation? What We Learned Running Both
We run our own content pipeline on n8n, so this comes from operating it rather than reviewing it. Including the two things most comparisons get wrong: the licence is not open source, and self-hosting is not free.
Key takeaways
- n8n is not open source. It ships under the Sustainable Use License, which is not OSI-approved. Free for your own internal business use; hosting it as a service for others requires a commercial licence.
- That distinction is fine for almost every business and matters enormously if your plan involves reselling it. Most comparisons state it wrongly.
- Self-hosting is free to licence, not free to run. You pay in server cost and in the hours spent securing, updating, and fixing it at inconvenient times.
- Start visual. The advantage that holds up in practice is not build speed, it is being able to see which step failed at 3am without reading logs.
- Move to code when a workflow becomes something you have to decode rather than read. That threshold arrives earlier than people expect.
For most business automation, start with n8n and reach for custom code when you hit a specific limit. That is the same advice you will find elsewhere. What follows is the part that is harder to find: the licence detail most articles get wrong, and what running it has actually cost us.
We run our own content pipeline on n8n. This comes from operating it, not from reading about it.
The licence, stated correctly
This page used to describe the self-hosted community edition as free and open-source. The first half is right and the second is wrong, so we have corrected it.
n8n ships under the Sustainable Use License, which is not an OSI-approved open source licence. It grants you the right to use, copy, modify, and distribute the software for your own internal business purposes or for non-commercial use, free of charge. What it does not grant is the right to provide it to others commercially — hosting n8n as a service, reselling it, or building a commercial offering on top of it requires a separate enterprise licence.
For a business automating its own operations, this changes nothing at all. You are squarely inside the internal-business-purposes grant and you owe nothing. It matters in exactly one situation: if your plan is to run n8n on behalf of clients as a product, you need to read the licence before you build the business, not after. We are flagging it because the widespread claim that it is open source could lead someone to make a commercial decision on a false premise.
What self-hosting actually costs
Free to licence is not free to run, and the gap is mostly time rather than money.
The server itself is minor — a small VPS handles a modest workload. The real cost is that you now own a piece of infrastructure. It needs updating. It needs securing, particularly because your n8n instance holds credentials for every service it connects to, which makes it a more attractive target than its traffic volume suggests. And when it stops at an awkward hour, someone has to fix it.
This page previously put a figure of $200 to $500 a month on that. We have removed it because it was an estimate presented as though it were a finding. The honest version: the licence is free, the server is cheap, and the maintenance burden is a real recurring cost that depends entirely on whether you already have someone who runs servers. If you do not, n8n Cloud is often cheaper once you count the hours properly.
Where n8n genuinely wins
The usual argument for visual automation is that it is faster to build. That is true and it is not the reason we still use it.
The reason is debugging. When a workflow fails, n8n shows you the run as a diagram with the failed step highlighted and the exact data that entered it. You can change one thing and re-run from that step rather than from the beginning. For a pipeline that touches five external services, being able to see which one returned something unexpected — without adding logging and redeploying — is worth more than the build-time saving.
- Failure is visible. The diagram tells you where it stopped and what data it stopped on.
- Re-run from the failure point. You are not replaying the whole pipeline to test a fix at step seven.
- Someone else can read it. A colleague can understand a canvas without being able to read your code.
- Code is still available. JavaScript and Python nodes mean the visual model is a default, not a ceiling.
When to move to code
The threshold is not volume, which is what most comparisons say. It is readability.
A visual workflow is easier to understand than code right up until it isn't. Past a certain amount of branching, the canvas stops being a picture of the logic and becomes a puzzle — you are tracing lines to work out what happens when a condition is false, which is precisely the job that written code does better. We hit this on one of our own workflows: it had grown conditional branches over several months, and the point where we should have rewritten it in code was several months before we admitted it.
The other genuine triggers are narrower than they sound. Very high throughput where per-execution overhead matters. A step that must be as fast or as cheap as possible. Logic that needs real tests, version control, and code review because it is business-critical enough that a silent failure is expensive.
| Situation | Better choice |
|---|---|
| Connecting a handful of SaaS tools | n8n |
| You need to see why last night's run failed | n8n |
| The canvas has become hard to trace | Custom code |
| A step that must be fast or cheap at scale | Custom code |
| Business-critical logic needing tests and review | Custom code |
| Almost every real system after a year | Both |
The hybrid, concretely
The pattern that holds up is n8n as the orchestrator and code for the parts that need it. n8n owns the trigger, the schedule, the connections to external services, the retry behaviour, and the visibility. Where a step involves logic that is genuinely intricate, that step calls out to your own code and gets a result back.
You keep the thing n8n is uniquely good at — knowing what happened and where — while the complicated logic lives somewhere it can be tested and reviewed. This is what our own pipeline looks like, and it is not an architecture we designed up front. It is what it became after the parts that did not belong on a canvas were moved off it.
Building this kind of practical automation is a core part of our AI and automation work, and the code-heavy end of it overlaps with our custom software development. If you are weighing this up for your own operation, we are happy to look at the specific workflow and tell you which side of the line it falls on — including when the answer is that you do not need us.
Frequently asked questions
Is n8n open source?
No. It uses the Sustainable Use License, which is not OSI-approved. It is free to use, modify, and self-host for your own internal business purposes, but providing it to others commercially — hosting it as a service or reselling it — requires a separate enterprise licence. Many articles describe it as open source; that is inaccurate.
Is n8n actually free?
The community edition is free to licence for internal business use. Running it is not free: you pay for a server and, more significantly, for the time to secure it, update it, and fix it when it stops. Your instance holds credentials for every connected service, so the security side deserves real attention. If nobody on your team already runs servers, the cloud version is often cheaper once you count hours.
When should I move from n8n to custom code?
When the workflow becomes something you decode rather than read. That readability threshold usually arrives before any performance limit does. The other real triggers are very high throughput, a step that must be as fast or cheap as possible, and logic critical enough to need tests and code review.
Is n8n good enough for production, or just simple tasks?
It handles production workloads, including branching, looping, error handling, and AI steps. We run our own content pipeline on it. The limit is complexity rather than seriousness — plenty of important workflows run entirely on n8n, and the ones that outgrow it do so because they became hard to read, not because they became important.
Do I need to be technical to use n8n?
You need to understand how APIs and app integrations fit together, which is well short of being able to write the whole thing in code. The visual editor and templates lower the bar substantially. For anything holding sensitive credentials or running business-critical work, it is still worth having someone experienced set up the hosting and security.
Related services
Related guides
Want a professional site without the agency invoice?
Tell us about your project below and we'll reply within 24 hours with a clear, fixed quote, no surprises.
Prefer WhatsApp or email?