A SwiftUI app that writes personal affirmation programs with AI, lets you record them in your own voice or pick an AI voice, and plays them under a soundtrack. It shipped to the App Store as EmpowerMe in September 2024.
01 / 05
Program creation
Choose a program to record in your own voice, or a pre-generated one in an AI voice.
The bet: affirmations written for your goals land harder in your own voice.
The idea was to make affirmations personal: written around your own goals and spoken in your own voice. The first version’s copy said “Your subconscious may respond stronger to your own voice”, and the landing page promised “Reach your goals one affirmation at a time.”
Choose a goal, get affirmations written for it, record them, and listen under music.
Onboarding asks about your goals and preferences, lets you pick a voice and recommends programs and soundtracks. To make your own program, you pick a focus and an AI chat writes the affirmations with you. Then you either record them yourself or choose one of six AI voices, and unfinished programs are kept as drafts. The player runs the affirmations under a soundtrack, with a “perception” slider for how loud they sit, plus looping, a sleep timer, lock-screen controls and daily affirmation notifications.
It’s a SwiftUI app on Firebase: Sign in with Apple, Firestore, Storage, Messaging and Cloud Functions for the AI work. Data lives locally in Core Data, and subscriptions run through RevenueCat. It began in July 2023 as Subliminal and was carried into a new repo in December 2023, which shipped as EmpowerMe in September 2024. Alongside it is a Next.js admin panel for uploading soundtracks, voices and built-in programs in each language.
Affirmations are written by OpenAI, including a fine-tuned GPT-3.5 model, through Firebase Cloud Functions that also handle chat, speech and translation. There are six ElevenLabs multilingual voices. The built-in programs are pre-rendered for every voice and stored in Firebase Storage by program, voice and line, so the app downloads finished audio instead of generating it on demand. The admin panel pulls the voice list from ElevenLabs, stores programs per language, and calls a Cloud Function to add a voice to a program.
The first version called OpenAI directly from the app.
Every AI call moved behind callable Cloud Functions, versioned by name, so no AI keys live in the app.
A new program didn’t appear in the list until its audio had finished downloading, and drafts with only some lines recorded reopened at the wrong step.
The program is created from its draft straight away, and each draft records the stage it reached so it resumes in the right place.
Two AVAudioPlayer pipelines run side by side: a soundtrack that fades in over 10 seconds and can loop, and an affirmation queue whose volume follows the perception slider (50% by default), with 1.618 seconds between lines. Audio keeps playing in the background with lock-screen controls. Recording is AAC mono, with an AVAudioEngine FFT drawing a live waveform as you speak.
Recordings sounded poor.
The recording sample rate went from 12 kHz to 48 kHz, and the recording screen prompts people to switch on iOS Voice Isolation for their mic.
Playback broke when a call came in or headphones were unplugged.
An audio session manager that handles interruptions and route changes.
Onboarding ends by downloading the recommended programs and soundtracks. Subscriptions are weekly, monthly or annual through RevenueCat, with the trial length read from the store’s introductory offer. The paywall appears on a timer that pauses while the player is open and waits until after onboarding. Mixpanel and Amplitude track the funnel.
Onboarding broke if the network dropped during those first downloads.
A network monitor built on NWPathMonitor, cancellable downloads and a retry screen.
App Review rejected a build because of a leftover Newsstand icon entry in Info.plist.
The entry was removed, and the app was released three days later, on 12 September 2024.
Sunset. Ran 2023 — 2024.
It was released on 12 September 2024 as “EmpowerMe: Subliminals & Hypno”, and version 1.0.2 followed on 13 October 2024. That was its last update, and it’s now sunset, though the listing is still up. A final branch that renamed it Mind+ was never merged. I came back to the idea twice in 2025, with a fresh Swift app in January and a React Native version in April, but neither went past a few days of commits.
[Your words: what shipping a consumer subscription app taught you.]
The site’s assistant has read this case study. Ask it anything, or start with one of these.