Most articles recommending an alternative to WAHA are describing a product that no longer exists.
The standard criticisms were that the free Core tier was limited to a single session, that it could not send media, and that anything production-shaped required a paid subscription. Those were fair. They are also out of date. From version 2026.6.1, every feature that previously needed a Plus subscription ships in the free public image, and the Core, Plus, and PRO tier structure was retired in favour of a symbolic community support tier.
So if you bounced off WAHA in 2024 or 2025 over the single-session limit, the honest advice is to look again before looking elsewhere. What follows assumes you already have.
What still pushes people away
You own the infrastructure. This is the big one, and it has nothing to do with WAHA's licensing. A Docker image still needs a server, a reverse proxy with TLS, persistent volumes for session data, a backup strategy, monitoring, and someone to notice when it stops. For anything beyond a prototype, you will also want PostgreSQL rather than the file store.
Protocol drift is your problem. WhatsApp changes internals without notice or documentation. Unofficial clients break. On a self-hosted deployment, you are down until a maintainer ships a fix and you deploy it, and it will happen at an inconvenient time. This is the defining operational risk of the whole self-hosted category and the reason most teams eventually leave it.
Memory, depending on the engine. WAHA's WEBJS engine runs headless Chromium, which costs roughly a gigabyte of RAM per session. NOWEB and GOWS are dramatically lighter. If you deployed on the default without thinking about it and then tried to add sessions, this is probably what hurt.
Engine choice is a decision you have to make. Three engines is genuine flexibility and also a research task, with different feature coverage and different failure modes. Some teams want fewer decisions.
Scaling sessions is real work. Three numbers is a config change. Thirty is session affinity, health checks, and orchestration.
No MCP endpoint. If you are connecting Claude or another AI agent to WhatsApp, you would be building the MCP layer yourself on top of WAHA's REST API rather than pointing a client at a URL.
The alternatives worth evaluating
Evolution API is the closest self-hosted peer, with deeper native integrations into n8n, Typebot, Chatwoot and Dify, and multi-provider support covering both Baileys and Meta's Cloud API. One thing to check before adopting: from version 2.4.0, instances must activate against Evolution Foundation's licensing server before the API serves traffic, which is a meaningful difference from WAHA's Apache-2.0 image with no activation step. It also runs a heavier stack, needing PostgreSQL and Redis rather than working from a single container.
If your reason for leaving WAHA is licensing or independence, Evolution is a step in the wrong direction. If it is integrations, it is a step forward.
Baileys directly if your usage is narrow. A lot of WAHA deployments use four endpoints and a webhook. If that is you, the wrapper is carrying more than you need, and dropping to the library removes a service in exchange for writing session persistence and reconnection yourself.
A managed API is the underlying complaint: none of this should be your infrastructure. Flat pricing per connected number, typically $5 to $35 for one to ten numbers, against $29 at Whapi and $31 upward at 2Chat. Session management, reconnection, queueing and protocol maintenance are absorbed centrally, which is the one thing self-hosting cannot give you at any price.
The comparison people run wrong is free software against a subscription. Run it as a VPS plus monitoring plus backups plus four to eight engineering hours a month against a monthly fee. Infrastructure alone lands around $50 to $120, and engineering dominates from there. Below roughly twenty sessions, hosted usually wins on total cost. Above that, self-hosting starts to make sense again.
Side by side
| WAHAEvolution APIBaileysManaged API | ||||
| Licence | Apache-2.0 | Apache-2.0 with conditions | MIT | Commercial |
| Activation server | No | Yes from v2.4.0 | No | N/A |
| Stack | Single container | Postgres + Redis + volume | Library only | None of yours |
| Service layer | Included | Included | You build | Included |
| Engine choice | Three | Baileys or Cloud API | N/A | Provider's |
| Protocol fixes | You deploy | You deploy | You deploy | Absorbed |
| Infrastructure cost | Yours | Yours | Yours | None |
| MCP for AI agents | Build it | Build it | Build it | Sometimes included |
The case for staying on WAHA
I would rather say this plainly than pretend every reader should switch.
WAHA is Apache-2.0 with no activation check, actively maintained, well documented with a built-in dashboard and Swagger UI, and it now ships everything in the free image. It deploys from a single container, which is genuinely simpler than the four-service stacks in this category. Engine choice is a real hedge: if one approach breaks during a protocol shift, you can switch with a configuration change rather than a rewrite.
If your data cannot leave your infrastructure, no hosted provider is an answer at any price, and WAHA is one of the better self-hosted options available. If you are running enough sessions that per-session pricing exceeds a server, the arithmetic favours you. And if you have the engineering capacity and it is not your bottleneck, running your own is a legitimate choice rather than a mistake.
The reason to leave is not that WAHA is bad. It is that you have decided WhatsApp infrastructure is not what your team should be spending its attention on.
Migrating, if you do
The work is smaller than it looks, because WAHA's API is conventional REST and so is everything you would move to.
Map your endpoints and event handlers first. Most integrations are thin, and writing the list usually shrinks the estimate.
Expect to re-scan the QR code, since sessions do not transfer between platforms. The number itself, along with chat history and contacts, is unaffected because none of it lives in WAHA. After re-linking, ramp sending gently for a few days rather than resuming at full volume, since re-authentication is one of the signals that raises risk on a fresh link. Our safety guidance covers the pacing side.
Decide what to do with stored media and message history before you decommission the volume.
And put a boundary between your application and whichever backend you use. A thin internal interface with your own event types means the next change is a day rather than a project. Most of the pain in migrations like this is not the migration; it is that vendor payload shapes leaked into forty files.
If you are reconsidering the whole approach rather than just the tool, the Cloud API comparison covers what the official platform costs in flexibility, and our feature comparison shows where hosted providers differ from each other.
Common Questions
Is WAHA free? Yes. WAHA Core is Apache-2.0, and since version 2026.6.1, the features that previously required a Plus subscription, including multi-session and media, ship in the free public image. There is a symbolic community support tier but no paid gate on functionality.
What is the best WAHA alternative? Evolution API for deeper native integrations, though it adds an activation requirement from v2.4.0. Baileys directly if your usage is narrow. A managed flat-rate API if you want to stop running infrastructure.
Is WAHA better than Evolution API? WAHA is simpler to deploy, permissively licensed with no activation server, and offers engine choice. Evolution has deeper integrations with Typebot, Chatwoot and Dify, and can front Meta's Cloud API as well. Pick on which of those you need.
How much does self-hosting WAHA actually cost? Infrastructure typically runs $50 to $120 a month across server, database, backups and monitoring. Engineering time of four to eight hours a month usually exceeds that, and protocol-shift incidents are the line nobody forecasts.
Which WAHA engine should I use? NOWEB or GOWS for low memory and higher session density. WEBJS if you need behaviour only the real web client implements, accepting roughly a gigabyte of RAM per session.
Does WAHA avoid ban risk? No. It runs the WhatsApp Web protocol as an unofficial client, which breaches WhatsApp's terms. Risk tracks sending behaviour rather than tooling, and self-hosting means you also build the pacing that hosted providers apply by default.
Can I switch from WAHA without downtime? Close to it. Run both in parallel, move traffic, then re-scan on the new platform during a quiet window. The QR re-scan is the only unavoidable interruption.