Pay once. Own the whole thing.
The whole thesis is escaping seat rent — so the engagement is a one-time conversion, not another subscription. Here's the shape of what you buy, what you walk away owning, and the posture we hold your org under while we do it.
The whole thesis is escaping seat rent — so we refuse to charge it. One-time conversion, priced against your license line, scoped by the X-Ray.
Inventory, honest coverage %, exit bill-of-materials, and your real cost exposure. The sales artifact.
Generated app + translated logic + parity harness + data migration + cutover. Scoped by the X-Ray BOM.
Includes the Ownership Package — the full source repo, your database and migrated data, deploy bundle, runbooks, and the line-by-line parity report.
And a 3-year guarantee: if anything we translated behaves differently than it did in Salesforce, we fix it free. Covers translated-and-verified surfaces — everything with parity evidence; not code you modify after handoff.
Optional. Updates, security patches, ops support. Flat — never per-seat. Cancel anytime.
What "own it" means. The posture, in writing.
You own the code. The migration produces a repository, a PostgreSQL database, and a deployable application that are yours outright — no runtime license, no obligation to us. Self-hostable on AWS, DigitalOcean, Hetzner, or your own hardware.
Read-only, as your agent. During an engagement we act as your agent under your own Salesforce credentials, read-only, to inventory and transcribe your org; your data is never resold or retained beyond the work you authorize. Coverage is scoped honestly — what cannot be deterministically converted is flagged, not fabricated.
Most Salesforce orgs run a customer or partner portal on Experience Cloud. Underneath, it's the same CRM you already have — a web front-end, a login, and rules about which records each external person can see. Salesforce charges you per login or per member, every month, forever, for that front-end.
What that meter costs, at list price
| Your portal | Salesforce, per year | Over 5 years |
|---|---|---|
| 5,000 customer members | $300K – $900K | $1.5M – $4.5M |
| 50,000 logins / month | $1.2M – $3.6M | $6.0M – $18M |
| 200 partner users | $60K | $300K |
Ranges are Customer Community (the cheaper tier) to Customer Community Plus. A busy portal on login pools pays overage at about 2× once the monthly pool runs out — so the real bill trends higher, not lower. On your own stack, that per-login line becomes $0: your portal users become first-class users of an app you own, on one fixed-cost server — no per-seat, no per-login, no overage. The savings is the entire table above.
Where "millions" is true — and where it isn't
True, over five years: any mid-to-large customer portal. 5,000 members runs $1.5M (Community) to $4.5M (Community Plus); 50,000 monthly logins runs $6.0M to $18M. A high-traffic customer portal clears $1.2M–$3.6M every single year.
Not true, and we won't say it: a small partner portal. 200 partner users is $60K/yr, $300K over five years — you'd save six figures over five years, not millions. We say exactly which size you are.
What carries over automatically. Your external-user tiers become app roles; the rules that scope each user to their own records become database row-security; your custom components become React; your theme becomes design tokens. See how the record-scoping is rebuilt →
What we're honest about. The page layout, navigation, and public sign-up flow are rebuilt on the chassis we generate — not lifted pixel-for-pixel. The record-scoping engine is built and fail-closed; the automatic translation of Salesforce "sharing sets" into it is on our roadmap, so today an engineer wires those rules onto a database that already speaks that language. You trade a forever-rent for a one-time rebuild — and after that, adding your 5,001st portal user costs nothing.
About the numbers. Every dollar above is a published list price (pre-discount, pre-negotiation) — real contracts are discounted, so a specific org's bill can be lower. Salesforce's own pricing page now returns 403 to public fetch, so these are the long-standing published list prices, cross-corroborated across three independent secondary sources. Treat them as a list-price reference, not a Salesforce quote. No SOC 2 or uptime-SLA claims; no time estimates.