All articles
    Mobile & Product

    Building BeSound: Technical Decisions Behind a Mental Health Audio App

    April 5, 2026 7 min readClient: BeSound
    React NativeExpoNode.jsPostgreSQLMobile

    6 Weeks

    Prototype Delivered

    Felix Schoeller

    BeSound

    The Brief

    BeSound is an audio-first mental health platform. The core product: curated sound therapy content, binaural beats, guided sessions, ambient tracks, delivered through a clean mobile experience. Felix Schoeller, the founder, needed a prototype that could go in front of investors and a technical foundation that could grow without a rewrite.

    Six weeks. Investor-ready. Production-quality enough to demonstrate on stage.

    Platform Choice: React Native

    Felix's target audience was both iOS and Android. We evaluated three options:

    • Flutter: excellent performance, but the team's TypeScript background meant React Native's learning curve was near-zero. Flutter would have added weeks.
    • Native iOS + Android: two codebases, double the maintenance, double the cost. Not viable in six weeks.
    • PWA: audio APIs on mobile browsers are inconsistent. Background playback is unreliable on iOS Safari. A non-starter for an audio-first app.

    React Native + Expo won on pragmatic grounds: fast iteration, one shared codebase, and the Expo AV library for audio that works correctly on both platforms without native module configuration.

    Audio Architecture: The Non-Obvious Requirements

    Audio apps have requirements that aren't obvious until you build one:

    Background playback

    Users lock their phone during a 30-minute session, the audio must keep playing. Expo AV supports background audio mode, but it requires explicit entitlement configuration for iOS and a foreground service for Android. Both need to be set up before the first TestFlight build, not as an afterthought.

    Progressive download

    A user shouldn't stream for 30 minutes over a mobile connection. We implemented progressive download: the first 30 seconds stream immediately for instant playback, while the rest of the audio downloads in the background. The session continues smoothly even if the network drops.

    Lock screen controls and Now Playing metadata

    When an audio session is playing and the user locks their phone, the lock screen shows track controls. This requires the React Native Track Player library for correct media session integration, Expo AV alone doesn't handle the Now Playing metadata (track title, artwork) that appears on the lock screen and in Control Center.

    Backend: Simple by Design

    The backend is intentionally minimal: Node.js + Express + PostgreSQL. Content is managed through a lightweight admin panel. Audio files live in S3, served via CloudFront. The prototype didn't need complex infrastructure, it needed working software delivered quickly. Premature optimization would have burned the six weeks without shipping anything.

    What Investors Saw

    The demo included: onboarding flow, content browser, audio player with background playback and lock screen controls, and session progress tracking. Built and delivered in 6 weeks. The demo ran without issues.

    Felix's review: "Great work, robust, responsive and reliable."

    Key Takeaway

    Mobile audio apps have a deceptively long list of platform-specific requirements, background playback, media session integration, download management. Identify these upfront and architect for them from day one. Adding background playback to an app that wasn't designed for it is far more expensive than building it in from the start.

    Have a similar challenge?

    We've solved problems like this before. Tell us about your project and we'll get back to you within 24 hours.

    Get in touch

    Related service

    Mobile App Development

    View service