Skip to content
Skip to main content
A small white mini server on a pale oak desk beside a coiled ethernet cable in warm daylight, representing a self-hosted n8n instance
8 min readBy Carlos Aragon

n8n Cloud vs Self-Hosted in 2026: The Real Math

Stay on n8n Cloud if you run under roughly 10,000 executions a month and nobody on your team wants to own a Postgres database. Self-host once you pass that, because the next plan up is a 13x price jump for 4x the executions. The old reason to self-host — too many active workflows — is dead: n8n removed workflow limits from every plan in 2026. What you buy now is executions and concurrency, and almost nobody checks the second one.

The Advice You Read Last Year Is Wrong Now

For years the standard answer to “should I self-host n8n?” had nothing to do with money. It was: the cheap plan caps how many workflows you can leave switched on, you will hit that cap in a month, so install it yourself. I gave that advice. It was correct.

In 2026 n8n changed the model, and every plan now includes unlimited users and unlimited active workflows. Go read the pricing page and you will not find a workflow count anywhere on it. The whole thing is priced on how many times your workflows actually run.

This is a bigger deal than it sounds, because workflow count and execution count are wildly different numbers. My production instance has 179 workflows, 61 of them active. Under the old rules that alone priced me out of the cheap tiers regardless of whether those workflows did anything. And most of them genuinely don't do much — they're dormant client automations, retired experiments, and seasonal jobs that fire twice a year.

The reframe:

You are no longer paying for how much automation you own. You are paying for how much automation fires. Those are different businesses, and a lot of people are on the wrong plan because of it.

What n8n Cloud Costs, and Where the Cliff Is

Here is the current shape of it, annual billing, as listed today:

PlanPrice/moExecutions/moConcurrent
Starter€202,5005
Pro€5010,00020
Business€66740,00030
Community (self-hosted)€0UnlimitedYour hardware

Look at the gap between Pro and Business. Four times the executions for thirteen times the price. That is the entire decision in one line. Starter to Pro is a rounding error — 30 euros to quadruple your headroom, take it and move on with your day. Pro to Business is a real budget conversation, and it is exactly the point where a 10-dollar VPS starts looking like an adult financial choice rather than a hobby.

So the practical rule is: under 10,000 executions a month, Cloud almost always wins. Above it, do the math, because you are one tier away from paying more for automation hosting than for the AI models the automation calls.

What My Instance Actually Burns

Guessing your execution volume is where people get this wrong in both directions. So I pulled the real log off my own instance before writing this, over a rolling 32.7-hour window:

executions in window : 250
rate                 : 7.65 / hour
projected monthly    : ~5,586
median duration      : under 1s
mean duration        : 1.4s
runs over 30s        : 4
longest run          : 95.9s
peak concurrency     : 2

Roughly 5,600 executions a month. That blows straight past Starter's 2,500 and sits comfortably inside Pro's 10,000. If I were on Cloud I would be paying 50 euros a month, and that would be a fine deal.

Now look at the duration column, because that is the part that surprised me. The median execution takes under a second. The mean is 1.4 seconds, dragged upward almost entirely by four outliers. My 61 active workflows are mostly webhooks that write a row and stop. Two months ago I would have guessed my average run took ten seconds. I was wrong by an order of magnitude, and if I had sized infrastructure on that guess I would have overbought badly.

Pull your own numbers before you decide anything. The n8n API will hand you the last few hundred executions with timestamps, and thirty lines of Python turns that into a rate and a duration distribution. Ten minutes of measuring beats a year of guessing.

Concurrency: The Number Nobody Checks

Every n8n pricing article compares monthly executions. Almost none of them mention the other number on the plan: how many executions can be running at the same instant. Five on Starter, twenty on Pro, thirty on Business.

For classic automation that ceiling is irrelevant. Do the arithmetic on my numbers: 7.65 executions an hour at 1.4 seconds each means my workflows are actively running about 0.3% of the time. Five slots is absurd headroom. My measured peak was two, and those two only collided because a video render job happened to overlap with itself.

AI agent workflows break that assumption completely.An agent execution doesn't write a row and exit — it holds its slot for the entire model round trip, plus every tool call it decides to make along the way. My longest runs in that window were 95.9 and 95.5 seconds, both from a video generation pipeline waiting on an external render. A workflow like that occupies a concurrency slot for a minute and a half.

The slot math that actually matters:

Concurrency you need is roughly (executions per hour × average seconds per run) ÷ 3600, then multiply by three or four for burst. At 1.4 seconds a run that number is basically zero. At 90 seconds a run it is 25 times higher, and a webhook that fans out to ten agent calls at once eats half of Pro's ceiling in a single burst.

This is the quiet reason AI-heavy teams end up self-hosting even at modest execution counts. It isn't the monthly total, it's the shape. On your own box you set concurrency yourself, and queue mode with multiple workers lets you scale it horizontally instead of buying the next tier. Just make sure you can see it happening first — I covered instrumenting that in n8n AI agent observability.

The Sub-Workflow Rule Most Pricing Posts Get Backwards

Here is a fact worth more than the rest of this article combined, straight from n8n's docs on executions: when a workflow calls another workflow with the Execute Sub-workflow node, only the parent execution counts.

I have read at least four 2026 pricing guides that assume the opposite and use it to inflate a scary self-hosting-versus-cloud comparison. It is simply not how the billing works. Which means the architecture you should be writing anyway — one orchestrator that calls small, single-purpose, testable sub-workflows — costs you nothing extra. Splitting a 40-node monster into a parent and six children does not multiply your bill by seven. It stays at one.

It also means you can consciously restructure to reduce billed executions: replace six separate scheduled workflows firing on their own triggers with one scheduler that calls six sub-workflows, and your billed count drops by roughly 83% for identical work. That is not a loophole, it is just the documented unit of billing. If you are near a plan ceiling, this is the cheapest optimization available to you and it improves your codebase at the same time — which pairs nicely with keeping those workflows in version control without paying for Enterprise.

Self-Hosting Is Free the Way a Puppy Is Free

The Community Edition costs nothing and has no execution limit. That is true and it is also the least useful fact in this article, because the software was never the expensive part.

What you actually sign up for:

  • A database you are responsible for. SQLite is the default and it is fine until it isn't. Move to Postgres early, and make sure your data directory lives somewhere that behaves like a real disk — I lost a database to a Docker bind mount that looked completely normalright up until it wasn't.
  • Backups you have actually restored. An untested backup is a rumor. Restore one into a scratch container once, then you can stop worrying about it.
  • A way in from the internet, with TLS. A tunnel is the sane default now that n8n retired its built-in one. Put the editor behind identity and leave the webhook path reachable, which is fiddlier than it sounds — see Cloudflare Access and n8n webhooks.
  • About an hour a month. Upgrades, a node that changed behavior, a certificate, a disk that filled with execution history. It is not a lot. It is not zero, and it lands on whoever is least busy, which is usually you.

Call it 5 to 20 dollars a month in hardware plus an hour of attention. I run mine on a Mac mini that was already sitting on the desk doing other work, so the marginal hardware cost is close to nothing — but the hour is real and it shows up whether I planned for it or not.

How to Decide in Five Minutes

Answer these in order and stop at the first yes.

  • Does your data have a compliance story? If customer records legally cannot leave your infrastructure, the decision was never about money. Self-host.
  • Are you above 10,000 executions a month?Measure, don't estimate. If yes, you are staring at the Pro-to-Business cliff and self-hosting pays for itself immediately.
  • Do your workflows hold slots for a minute at a time? AI agents, long polls, video renders. If your bursts approach the concurrency ceiling, self-host and scale workers instead of tiers.
  • Otherwise, pay them. Twenty or fifty euros a month to never think about Postgres upgrades is a good trade, and the time you save is worth more than the delta.

The honest summary: for most people reading this, n8n Cloud is the right answer and self-hosting is a preference, not a savings.I self-host because I run client infrastructure, I want control over concurrency, and I already own the machine. Those are three specific reasons. “It's free” is not one of them.

And if you're weighing n8n against writing the agent yourself in code, that is a genuinely different question — I worked through it in Claude Code vs n8n.

Frequently Asked Questions

Should I self-host n8n or use n8n Cloud in 2026?

Use n8n Cloud if you run under roughly 10,000 executions a month and nobody on your team wants to own a Postgres database. At that volume Pro costs about 50 euros a month billed annually, which is cheaper than the hours you would spend on backups, upgrades and a tunnel. Self-host once your execution count climbs past what Pro covers, because the jump from Pro to Business is 50 euros to 667 euros for four times the executions. That cliff is where self-hosting stops being a hobby and starts being an obvious financial decision.

Did n8n remove the active workflow limit?

Yes. In 2026 n8n moved to pricing where every plan includes unlimited users and unlimited active workflows, and the published plan pages no longer list a workflow cap. The constraint that remains is the monthly execution allowance plus a per-plan concurrency ceiling. This matters if you last priced n8n a year ago: the old advice to self-host purely because you had too many active workflows is now obsolete, and plenty of blog posts still repeat it.

Do sub-workflow executions count toward the n8n execution limit?

No. n8n's documentation states that when a workflow calls another workflow with the Execute Sub-workflow node, only the parent top-level execution counts. This is the single most misquoted fact in n8n pricing articles, and it changes the math substantially. If you restructure a sprawling workflow into one parent that calls six sub-workflows, your billed execution count does not go up six times, it stays at one per parent run. Splitting workflows for readability is free.

What are n8n's concurrent execution limits?

n8n Cloud publishes a concurrency ceiling per plan: 5 concurrent executions on Starter, 20 on Pro, 30 on Business, and 200 or more on Enterprise. Concurrency is how many executions can be in flight at the same instant, not how many you run per month. For classic automation with sub-second runs it is almost never the binding constraint. For AI agent workflows it can be, because a single agent run holds its slot for the entire model round trip, which in my logs is routinely 30 to 90 seconds.

How much does it really cost to self-host n8n?

The software is free, so the cost is infrastructure plus your time. Budget a small VPS or a machine you already own, a Postgres instance you actually back up, a reverse proxy or tunnel with TLS, and about an hour a month for upgrades and the occasional broken node after a release. Call it 5 to 20 dollars a month in hardware and one hour of attention. If that hour is worth more to you than the difference between plans, the honest answer is to pay n8n and go do something else.

Not sure which side of that line you are on?

I build and run n8n stacks — Cloud, self-hosted, and queue mode with workers — for agencies and operators who need the automation to run unattended. If you want someone to measure your actual volume and tell you straight whether to migrate or stay put, let's talk.

Related Posts

n8n

Scaling Self-Hosted n8n: When to Switch to Queue Mode (2026)

Default n8n runs the editor, webhooks, and every execution in one Node process — it works until the UI crawls during runs and webhooks drop under load. The signal to move is the main process pinned near 80% CPU; the fix is queue mode: a main instance, a Redis broker, and dedicated workers on Postgres. The exact signals I watch, the env vars I set, and the mistakes that cost me a night of dropped executions.

n8n

Cloudflare Access Blocks Your n8n Webhooks. Here Is the Fix That Keeps Both.

Cloudflare Access is an identity proxy, and a webhook sender has no identity to offer, so Access 403s the delivery before n8n ever sees it. The three fixes that actually work: a service token with a Service Auth policy for callers you control, a Bypass policy scoped to the webhook path for third parties like Stripe, and the split-hostname setup I run in production. Plus the four gotchas, including the 403 that turned out to be bot protection rather than Access.

n8n

n8n MCP Server vs MCP Server Trigger: Which One You Actually Need

n8n ships two features named some version of "MCP server" and they do opposite jobs. The built-in server is instance-level — one connection lets an AI client list, build, update and run workflows across your whole n8n, and since April 29 2026 it can author workflows from scratch. The MCP Server Trigger node is workflow-level, exposing only the tools you attach. Pick by blast radius, plus the queue-mode routing gotcha that silently breaks SSE.