Why ByteSpike doesn't ship a chat UI
Every multi-provider gateway eventually gets asked, "where's your chat playground?" — usually right before someone offers to build it. We've turned that question down five times so far. Here's the calculus.
Half the gateway products in our category eventually grow a chat UI tab. We made the call early that ByteSpike's chat surface would live in a separate product (DOSIA) and the gateway itself would stay headless. Five months in, that call has held up — but we get asked enough that it's worth writing down the reasoning.
What an in-gateway chat UI would cost
- A new audience to support. Chat users have different SLOs (UI latency, mobile responsiveness, accessibility) than API customers. Both audiences would pull on the same engineering bandwidth.
- Feature gravity. Chat UIs invite history search, prompt libraries, multi-modal previews, multi-user threading. Every one of those is a real product. Each one bloats the gateway repo without serving the gateway's main job.
- Identity model conflict. The gateway authenticates API keys; a chat UI wants OAuth-style human accounts. Smashing both into one product makes the auth code paths quietly more complex on every iteration.
- It would slow the gateway's actual job. Adding a Claude / GPT / Gemini model behind the gateway is currently a one-channel-config change. The day a chat UI exists, every new model carries a UI-side ticket too.
What we ship instead
DOSIA. A separate macOS desktop client built on top of the gateway, with the chat UI opinions we'd otherwise have to bake into the gateway repo: keyboard shortcuts, role files, skill marketplace, file-system primitives. Same team, different product, different release cadence (DOSIA fortnightly, gateway whenever the upstream protocol moves).
For developers who don't want a desktop client — most of you — the gateway is also fully usable from your own code, Cline / Continue / Cursor, any Anthropic-shaped SDK, or curl. The API doesn't disappear because the chat UI lives elsewhere; the chat UI lives elsewhere so the API stays clean.
What this means for an integrator
If you're embedding ByteSpike into your own app, you build the chat experience your customers expect — we don't compete with you for that surface. If you want to evaluate models quickly without writing client code, install DOSIA or hit the gateway with the curl example on /pricing. Either way the gateway is the same gateway with the same per-request semantics.
“Pick the surfaces you'll defend, ship the rest as separate products that can live or die on their own merits.”