A native iPhone text-to-speech app with a locked-down provider gateway
Turning text into audio without shipping a provider key
A text-to-speech app needs a clean writing and playback experience, but the provider keys and billing-sensitive calls behind that experience should never live directly inside a client app that can be inspected or decompiled.
Keep the app native, keep the providers behind a gate
Build a native SwiftUI app pattern paired with a Cloudflare Worker provider gateway, so text-to-speech generation from OpenAI and ElevenLabs never touches the client directly.
A native TTS app with providers routed through a Cloudflare Worker
VoiceForge shows how SoFlow pairs native app UX with Cloudflare-backed AI provider orchestration, keeping credentials server-side while the app stays fast and simple.
Our other projects
The brief was to build a native iPhone app that converts text into audio while keeping provider credentials completely out of the app bundle.
A text-to-speech app needs a clean writing and playback experience, but provider keys and billing-sensitive calls shouldn't live directly inside the client app.
Provider availability, billing state, and fallback behavior between OpenAI and ElevenLabs need to be verified before making stronger public claims about cloud voice quality or reliability.
SoFlow built a native SwiftUI app paired with a Cloudflare Worker provider gateway that handles text-to-speech generation on the app's behalf.
The iPhone app owns text entry, history, playback, and sharing. The Cloudflare Worker owns every provider call, keeping OpenAI and ElevenLabs API keys out of the client entirely.
- Native iPhone text-to-audio workflow
- Worker-backed provider boundary for OpenAI and ElevenLabs
- Playback and sharing flow built on AVFoundation
- Provider keys kept fully out of the app bundle

VoiceForge demonstrates SoFlow's ability to pair native app UX with Cloudflare-backed AI provider orchestration in a live, working product.
- Live at its own app subdomain today
- Provider routing runs through a dedicated Cloudflare Worker gateway rather than direct client calls
- Provider and production state flagged for reverification before a full public case study is published
Does the iPhone app call OpenAI or ElevenLabs directly?
No - by design. The client only talks to the Cloudflare Worker; the Worker holds the provider credentials and makes the outbound TTS calls, so a compromised or decompiled app never exposes a usable key.
Is this a Webflow project?
No. Webflow is only the public story surface here. The app runtime - SwiftUI, SwiftData, and the Worker gateway - is entirely separate.
What should be verified before this becomes a full public case study?
The live provider path, fallback behavior between OpenAI and ElevenLabs, current app screenshots, and production app store state should all be checked before expanding the public claims here.
This shows SoFlow can build app experiences where Webflow tells the story and a separate, credential-safe runtime owns the actual product logic.
Does the iPhone app call OpenAI or ElevenLabs directly?
No - by design. The client only talks to the Cloudflare Worker; the Worker holds the provider credentials and makes the outbound TTS calls, so a compromised or decompiled app never exposes a usable key.
Is this a Webflow project?
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Block quote
Ordered list
- Item 1
- Item 2
- Item 3
Unordered list
- Item A
- Item B
- Item C
Bold text
Emphasis
Superscript
Subscript
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Block quote
Ordered list
- Item 1
- Item 2
- Item 3
Unordered list
- Item A
- Item B
- Item C
Bold text
Emphasis
Superscript
Subscript
Text-to-speech provider calls risked being coupled too tightly to the client app, with credentials exposed to anything inspecting the bundle.
The app keeps its native SwiftUI experience while every provider call routes through a controlled backend boundary.
This is an app workflow, not a Webflow page. Webflow can explain what VoiceForge does, but SwiftUI and a Worker gateway own the actual product behavior, credentials, and provider logic.






