Skip to content
All posts
engineeringcost

Why we stopped renting our real-time stack

SCsuryacloudAug 18, 20261 min read

Real-time comms used to mean one thing: pick a vendor, wire up their SDK, and watch the per-minute meter run. It works — until the meter becomes a line item nobody can explain.

The meter problem

Managed CPaaS providers charge per participant-minute. A four-person call for an hour is 240 participant-minutes. Multiply that across a growing product and the bill stops looking like infrastructure and starts looking like rent.

The uncomfortable truth: the media servers doing the work are commodity WebRTC SFUs. You're not paying for magic — you're paying a margin on cloud bandwidth you could buy directly.

What "self-hosted" actually buys you

  • Cost that tracks usage, not markup. Your marginal cost becomes your egress bill.
  • Data residency by default. Media and recordings never leave your account.
  • No feature paywalls. Chat, recording and streaming aren't separate SKUs.

We swapped our vendor over a weekend. The SDK surface was smaller than what we replaced.

The weekend migration

  1. Deploy the stack with one Docker Compose file.
  2. Point a subdomain at the VM.
  3. Swap the SDK import and mint tokens from your backend.

That's the whole move. The calls ring on locked phones, chat rides the same socket, and the invoice finally makes sense.

Get started

Your comms. Your cloud. Your call.

Start free with 10,000 participant-minutes every month. Move to your own infrastructure whenever you're ready — the SDKs never change.