A text-to-speech iPhone app with a Worker provider gateway

SoFlow built VoiceForge, a native SwiftUI text-to-speech app that keeps the writing and playback experience on-device while routing every OpenAI and ElevenLabs call through a Cloudflare Worker gateway.
voiceforge
Client
voiceforge
Timeline
Proof card
Services
About

A native iPhone text-to-speech app with a locked-down provider gateway

VoiceForge is an app-style Work item for a SwiftUI text-to-audio workflow. It should be upgraded carefully because provider state and production voice behavior must be verified before public claims are expanded.
Challenge

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.

Goal

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.

Result

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.

Stack
SwiftUI, SwiftData, AVFoundation, Cloudflare Workers, OpenAI TTS, ElevenLabs
Systems
Cloudflare Workers, OpenAI, ElevenLabs
Category
iOS Apps
This is some text inside of a div block.

The brief was to build a native iPhone app that converts text into audio while keeping provider credentials completely out of the app bundle.

This is some text inside of a div block.

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.

This is some text inside of a div block.

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.

This is some text inside of a div block.

SoFlow built a native SwiftUI app paired with a Cloudflare Worker provider gateway that handles text-to-speech generation on the app's behalf.

This is some text inside of a div block.

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.

This is some text inside of a div block.
  • 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
This is some text inside of a div block.

VoiceForge demonstrates SoFlow's ability to pair native app UX with Cloudflare-backed AI provider orchestration in a live, working product.

This is some text inside of a div block.
  • 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
This is some text inside of a div block.

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 is some text inside of a div block.

This shows SoFlow can build app experiences where Webflow tells the story and a separate, credential-safe runtime owns the actual product logic.

This is some text inside of a div block.

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?

This is some text inside of a div block.

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

  1. Item 1
  2. Item 2
  3. Item 3

Unordered list

  • Item A
  • Item B
  • Item C

Text link

Bold text

Emphasis

Superscript

Subscript

This is some text inside of a div block.

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

  1. Item 1
  2. Item 2
  3. Item 3

Unordered list

  • Item A
  • Item B
  • Item C

Text link

Bold text

Emphasis

Superscript

Subscript

This is some text inside of a div block.
This is some text inside of a div block.
Before

Text-to-speech provider calls risked being coupled too tightly to the client app, with credentials exposed to anything inspecting the bundle.

After

The app keeps its native SwiftUI experience while every provider call routes through a controlled backend boundary.

This is some text inside of a div block.

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.

Let's talk

Ready to elevate your business?