Three ways to run the same platform. One path between them.
Start on shared infrastructure because it is fast and cheap. Move to a single-tenant instance when the workload or the auditor says so. Or run the whole thing inside your own perimeter. It is the same platform at every rung — what changes is who holds the keys.
Every rung runs the same platform, the same retrieval and the same governance. What differs is whose infrastructure it sits on, who operates it, and - on Shared - which plan you are on.
Rung 01 — Shared
Shared
Your own tenant on our multi-tenant platform, with per-tenant corpus isolation. It is running today: sign up, load documents, and point a tool at them the same afternoon.
A single-tenant instance on hardware reserved for you, operated by us in the EU or your region. Nothing of yours shares a database, a vector store, or a model route with another customer.
Single-tenant stack, reserved hardware
Retention and backup policy set by you
Enhanced SLAs
Best for: regulated teams, mid-market
Priced to the hardware you actually need — scoped with us.
The platform installed inside your own perimeter — your Azure or AWS subscription, your datacenter, your rack. Licensed to you and operated by your team, by us under contract, or by both.
The reason to start small is that starting small costs you nothing later. Changing rung is a migration we perform, not a rebuild you pay for twice.
01
Your corpus moves
Documents, chunks and embeddings are migrated as data. You are not re-uploading a library or re-indexing from scratch.
02
Your tools keep working
The same tool surface and the same tokens, repointed at the new address. Whatever you built against the platform keeps calling it.
03
Your tuning comes with you
Retrieval settings, prompts, and any model work done for you are configuration and artifacts — they are portable between rungs by design.
04
We do the move
Migration between rungs is an engagement we run for you, not a self-serve button. That is deliberate: it is the step where a mistake costs you your corpus.
No lock-in
Agnostic by design
We have a stack we prefer, and we will happily argue for it. What we will not do is make it the only thing that works. Every layer a customer could be trapped by is one we deliberately keep swappable.
Any model. Open-weight models reached through our model gateway, or a frontier provider on your own key. One gateway in front of all of them, so swapping is a config change rather than a rebuild.
Any cloud. Azure, AWS, a datacenter in the EU or your region, or hardware you already own. We are not reselling one vendor's capacity.
Open foundations. The retrieval and inference layer is built on open-source components — Qdrant, Ollama, LiteLLM, MariaDB — so the parts holding your data are not ours to hold hostage.
We give back. Our harness CLI is published under the Apache-2.0 licence on npm, and the ledger of what else we have opened is public.
On Shared and Dedicated, on servers we operate in the EU or your region. On Sovereign, wherever you put it — that is the point of the rung. We will tell you exactly which services hold which data before you sign anything.
Can we use our own models, or our own provider keys?
Yes, on every rung. Model calls route through a single model gateway, so you can use open-weight models reached through it, bring your own provider key, or mix the two. Swapping a model does not mean rebuilding your corpus.
What happens if we stop paying, or want to leave?
You keep your documents and your extracted text and embeddings — we export them in open formats. The retrieval and inference layer is built on open-source components, so there is no proprietary data format standing between you and the exit.
Can we start on Shared and move up later?
That is the intended path, and most sensible for a first project. Prove the use case on Shared where setup is an afternoon, then move once the workload and the compliance requirement are real.
Do you need access to our internal systems?
Only what a given piece of work requires, and only for as long as it requires it. On Sovereign we can hand over entirely and stay out, which is how several deployments are already run.
Tell us the constraint, and we will tell you the rung.
Most of this decision is made by one sentence about where the data is allowed to sit. Bring that sentence and a real workload, and we can scope the rest in a single conversation.