Klaros is not open source.
It is yours to run.
Two words get used loosely in this market, and the difference decides what you actually own. This page states plainly what Klaros is, how the software reaches your account, what the licence permits, and what happens to your deployment if we stop existing.
Self-deployed — licensed software running in cloud infrastructure you own.
Your Cloudflare account. Your Meta WhatsApp Business Account. Your data. You pay Meta directly for messaging, and we are structurally unable to take a cut, because we are never in that payment path.
Unlike self-hosted, it implies no public source. We do not publish the code, and the licence carries no right to redistribute or resell it. If you came here looking for a repository to clone, there isn't one, and we would rather you learn that in the first ten seconds than the first ten minutes.
Unlike SaaS, we hold neither the servers nor the data. That is the part most vendors in this category cannot say, and it is the whole reason the distinction is worth a page.
Where this sits
Three models get discussed as if they were points on one line. They aren't. They trade different things, and only one column below describes Klaros.
Multi-tenant SaaS
Most WhatsApp platforms. Wati, Interakt, AiSensy, Zoko.
- Runs on
- The vendor's servers
- Your data lives
- In a shared database with other customers
- Source access
- None
- Messaging billing
- Through the vendor, typically 15–25% markup
- If the vendor stops
- Service stops
Self-deployed
Klaros Self-Deployed Pro.
- Runs on
- Your own Cloudflare account
- Your data lives
- In your own D1 and R2, single-tenant by construction
- Source access
- Licensed to you, not published
- Messaging billing
- Meta bills you directly, zero markup
- If the vendor stops
- Your deployment keeps running
Open-source self-hosted
Projects you clone from a public repository.
- Runs on
- Whatever you point it at
- Your data lives
- Wherever you put it
- Source access
- Public, forkable
- Messaging billing
- Direct, if it uses the official API at all
- If the project stops
- You inherit an unmaintained codebase
Two ways to run Klaros
Self-deployment is a mode, not the whole product. Most customers start hosted, because connecting a WhatsApp Business Account is the hard part and it is identical either way. You can move between the two, in both directions, carrying your data with you.
Hosted
We operate the instance. It is still single-tenant: your deployment shares no database and no Meta quality rating with another customer. You still connect your own number and still pay Meta directly. This is what the 14-day trial gives you.
Self-deployed
The same software, running in your Cloudflare account against your WhatsApp Business Account. A flat annual licence per deployment instead of a monthly subscription. Contact volume becomes a Cloudflare bill you pay directly rather than a tier we set.
The part that never changes
Your WhatsApp Business Account is yours in both modes. Your messaging is billed by Meta at Meta's rate in both modes. Full export of contacts, conversations, media and cost history works in both modes. Hosting changes who runs the server, not what you own inside it.
How the code reaches your account
There is no download page, and that is deliberate. A WhatsApp deployment involves a Meta Business verification, an encrypted access token, a webhook Meta must be able to reach, and a database that has to exist before the first message arrives. Handing someone a zip file and wishing them luck is how you produce a broken deployment and a support ticket.
You start hosted, on the trial
Connect your WhatsApp Business Account, send real messages, and confirm the product does what you need before anything is deployed anywhere. Nothing about this step is a commitment.
You license a deployment
A flat annual licence, per deployment. You receive an offline Ed25519 licence key that your instance verifies locally, against a public key held in your own environment.
We deploy it into your Cloudflare account, with you
Workers, D1, R2 and the queues get provisioned in an account you own and hold the credentials for. We do this alongside you rather than for you, so the person who has to operate it has seen it happen once.
Your data migrates across
Contacts, conversations, media, consent records and cost history move from the hosted instance into yours. The same export that powers this is available to you at any time, in both modes, without asking us.
Updates arrive while your maintenance term is active
Meta changes the Cloud API on its own schedule, and keeping current with it is the ongoing work a licence pays for. When a maintenance term lapses, your deployment does not stop. It stops receiving new versions.
If Klaros disappears tomorrow
This is the real question behind "is it open source," and it deserves a direct answer rather than a licence-shaped one. For a self-deployed instance, here is exactly what is and isn't true.
- Your deployment keeps running and keeps sending. It is a Cloudflare Worker in your account, talking to your Meta WhatsApp Business Account, using a token you hold. Neither of those relationships passes through us.
- There is no licence server to switch off. The licence is a signed token your instance verifies offline against a public key in its own environment. It never calls home to check, because there is nothing to call.
- An expired licence does not stop messages. It surfaces a renewal notice in your dashboard. Nothing in the send path consults licence state, and that is a constraint we have written down publicly so that a future version cannot quietly acquire one.
- Your data is already in your account. Your contacts, conversations, media and consent ledger sit in your own D1 and R2. There is no step where you need us to release them.
- Your number is unaffected. The WhatsApp Business Account is registered to your business, not to ours. We are not a BSP and we are not in your Meta billing relationship.
What you would lose is us: new versions, Cloud API compatibility work as Meta changes it, and support. That is a real loss and we are not going to describe it as anything else. But it is a different and much smaller loss than a hosted platform going dark, where the software, the data and the messaging all stop on the same day.
Asked plainly, answered plainly
Is Klaros open source?
No We do not publish the source, and we are not going to claim a halfway version of this. "Source-available" is a real category, but it gets used to blur exactly the question people are asking, so we would rather give you the plain no and let you decide.
Then in what sense is it mine?
Infrastructure The account it runs in, the database it writes to, the media bucket, the WhatsApp Business Account, the Meta billing relationship, and every record in all of them. What you are buying is that the vendor cannot reach into any of it, cannot reprice your messaging, and cannot switch you off. None of that requires reading the code.
Can I modify it?
Not the core Customer-specific behaviour lives in a separate overlay layer with a defined set of extension points, which is what lets every deployment stay on the same shared core and still take updates. Modifying the core is how self-hosted software quietly becomes unupgradeable. The reasoning is on the philosophy page, third fork.
Do you hold my WhatsApp access token?
Not in self-deployed mode It is encrypted at rest in your own D1, with a key in your own environment. In hosted mode it is encrypted at rest in ours, under the same scheme. Details are on the security page.
What if I want out?
Export, any time Contacts, conversations, media, consent records and cost history, on demand, without a support ticket and without asking permission. In self-deployed mode you already hold the database it reads from.
What self-deploying costs you
Every page like this is tempted to describe a trade-off as a benefit. These are the real costs, and if they matter more to you than the ownership does, hosted is the better answer and we would rather you take it.
- Uptime becomes yours. Cloudflare is extremely reliable, but if your deployment has a bad day, you are the one holding it. We can help. We cannot be paged.
- You need a Cloudflare account and someone comfortable owning it. Not deep expertise, but a named person who can log in and act.
- Meta business verification is real friction. It is Meta's process, not ours, and every platform faces it. Most just fold it into an onboarding fee so you never see it.
- You cannot read the source, so auditing what the software does means testing its behaviour rather than reading its code. For some buyers that is disqualifying. It should be said out loud rather than discovered.
The honest test: self-deployment is worth it when being unable to be repriced, shut off, or reached into is worth more to you than not having to think about infrastructure. For plenty of good businesses it isn't, and hosted Klaros gives them the same zero markup and the same export.
Start hosted on the trial. Connect a real number, send real messages, and decide about deployment afterwards, when you have something worth deploying.
