Ryu currently has two main forms of distribution:
There's a missing third layer:
The Cloud/Gateway is the infrastructure layer, and technically the zero-setup hosted bot would run on top of that same cloud infra. So it's not a separate backend, it's a separate product surface with a different onboarding philosophy and audience.
The confusion comes from mixing infrastructure tiers with product experiences.
graph TD
subgraph Core["Ryu Core (Rust engine)"]
GW["Ryu Gateway"]
end
subgraph Surfaces["Three Product Surfaces"]
S1["Surface 1: Desktop App\n(Tauri, local-first, power users)"]
S2["Surface 2: API/SDK\n(developers self-integrate)"]
S3["Surface 3: Hosted Web Bot\n(zero-setup, consumer-facing)"]
end
S1 --> GW
S2 --> GW
S3 --> GW
All three surfaces consume the Gateway. The difference is:
| Desktop App | API/SDK | Hosted Bot | |
|---|---|---|---|
| Audience | Power users, devs | Teams, builders | Everyone, non-technical |
| Setup | Install app, configure | API key, docs | Zero, just sign up |
| Customization | Full (local models, sidecars) | High (programmatic) | Low (UI-based integrations) |
| Moat | Local-first + agent switching | Infra flexibility | Ease of use, network effects |
Cloud does support all 3, but the products are different:
The key distinction: the hosted bot layer is a managed product, not just infra. You're making all the decisions for the user, pre-configuring defaults, hiding complexity. The Gateway is still underneath, but the user never sees it.
Don't think of it as 3 conflicting distribution channels. Think of it as: