Inspiration
I've paid for the big meditation apps for years, and two things kept getting in the way.
First, you can't choose the voice. Each meditation has one narrator, and if that voice doesn't land for you, the meditation doesn't either. Their content is hours of human-recorded audio, and that's exactly what makes offering more than one voice so hard for them.
Second, they're crowded. Endless menus, categories, tabs and options, all before you've taken a single breath. An app meant to calm you down asks you to make ten decisions first.
Text-to-speech changes the first problem: every meditation can be narrated by several voices at almost no extra cost. For the second, I decided to remove things rather than add them. That's Meditar: guided meditation, radically simple, where you choose the voice that guides you.
What it does
- Pick your voice. Every meditation comes in several voices. Switch mid-session if it doesn't feel right.
- A 10-day course that teaches you to meditate from the very first breath.
- A free session for when you know your way: choose a length, a background sound and a bell — no guidance, nothing else.
- Spanish and English. Every meditation is written for its language, not translated — pauses and rhythm included.
- Offline listening for subscribers, and a calm, one-gesture-per-screen design built around a breathing aura.
How I built it
I'm a solo founder based in Spain. Meditar is a Flutter app for iOS and Android, with RevenueCat handling subscriptions and the paywall. Every meditation is narrated with ElevenLabs, and the backend runs on Supabase, Cloudflare R2 and Next.js.
Challenges
- Apple's first review rejected the app because it required an account before use. I rebuilt onboarding around a guest mode: you start with an anonymous session, and your account becomes optional. When you sign up after buying, your purchase and progress carry over. Approved two days later.
- Making TTS feel like meditation. Voices rush by default. I measured pacing per voice and tuned pause maps and loudness until the audio breathes.
- Network blocks in Spain. Some Spanish ISPs block Cloudflare during football matches. I re-encoded the whole catalog at 64 kbps and added pre-caching, so sessions survive a bad connection.
What I learned
Simplicity is a feature you have to defend. Every screen I removed made the app better, and voice choice turned out to matter more than I expected: people go looking for "their" voice.
What's next
More voices and languages, a growing course library, and listening closely to the first subscribers.
Built With
- cloudflare-r2
- dart
- elevenlabs
- flutter
- next.js
- postgresql
- revenuecat
- stripe
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.