Inspiration

I started Bindlestory for the nights a parent cannot be in the room. I was away, and a bedtime story in a stranger's voice was not the same thing. A bindle is the cloth bundle a wandering storyteller carries on a stick, and that is the whole idea: a story, in your own voice, that travels to the people you love. Along the way the audience widened: grandparents far away, a partner on night shifts, anyone who keeps showing up for someone.

What it does

You record about a minute of your voice, including one spoken consent sentence. You add a book, as a file or as pasted text. Bindlestory turns it into an audiobook read in your voice, and the people you choose hear you reading it: a small circle of friends and family, kid profiles behind a PIN, offline listening on the plane. The app speaks English, Turkish, Spanish, French and Russian. Free to start with welcome credits; two paid plans and three credit packs after that.

How I built it

  • App: React Native with Expo and Expo Router, TypeScript, five languages.
  • API: Node.js with Fastify, PostgreSQL 16 with Drizzle ORM, BullMQ on Redis running six queues (audio generation, voice fine-tuning, file processing, notifications, the onboarding trial, kid avatars).
  • Voices: Chatterbox TTS on RunPod serverless GPUs in EU data centres, with Google Cloud Run GPUs in Belgium and the Netherlands as an automatic fallback when RunPod is cold. Every generated file carries an inaudible watermark.
  • Payments: RevenueCat over Apple in-app purchases. Credits are charged when a narration completes, so a failed one never costs anything.
  • Hosting: a Hetzner server in Germany run with Docker Compose behind Caddy, SSH over Tailscale only, CrowdSec in front; Scaleway object storage in Paris; the website is Astro on Cloudflare Pages.
  • Safety: the consent sentence lives inside every voice sample, automated speaker verification, malware scanning of every upload, voiceprint embeddings encrypted at column level, and one rule for everything public: no child's face, name or voice, anywhere.

Challenges

  • Voice safety without friction: consent recorded in the sample itself, and verification that warns and asks again instead of blocking.
  • GPU cold starts: a dispatcher that keeps warm workers, admits jobs on measured remaining time, and escalates to the second cloud after 80 seconds.
  • Building for Europe from Türkiye: biometric data stays inside the EEA, a GDPR and DSA representative, a KVKK registration, and a record of processing that is kept current as the product changes.
  • App Review: four rounds in eleven days, from a seventeen-minute walkthrough video to a background-audio entitlement that a paywall gate had hidden from the reviewer.

What I learned

  • When you are alone, the test suite is the only gate before production: the commit hook fails closed and runs the full server suite, more than 1,000 tests, on every server change.
  • Every sentence in a legal text or on a product page has to be checked against the code, not against memory.
  • A launch is a checklist, and the checklist belongs where the whole company can see it, even a company of one.

What's next

Released on the App Store on 16 September 2026. Since then, by over-the-air updates: plan and credits that stay in sync on every screen, a choice of narration language, story titles that update live, and an age check at sign-up. Next: version 1.0.1 with the App Store listing in all five languages and lock-screen playback controls, a shorter path to the first story, and the numbers from more real listeners.

Built With

Share this project:

Updates

Submission history