Live in production · Recovery Space
A recovery platform in two languages, on two app stores
Daily check-ins, coach messaging, programmes and payments — bilingual Arabic/English with full RTL, shipped to iOS, Android and web on one shared backend.
The product
A coach in your pocket, without the noise.
Recovery Space was built with a recovery coach whose clients were scattered across direct messages on three different apps. Sessions were booked by hand. Progress lived in her memory. Arabic-speaking clients were reading an English interface.
The product replaces all of that with one calm place. A member opens the app to a thirty-second check-in — no numbers, no scoring, nothing that turns recovery into a leaderboard — and a streak that makes showing up feel manageable. Underneath sit structured programmes, private messaging with the coach, session booking and payment.
Every design decision came back to the same question: does this help someone on a bad day, or does it make the day worse? That ruled out the engagement mechanics most apps reach for first.
What it does
Daily check-ins
A thirty-second check-in each morning with AI-personalised responses, and safety validation on every generated message before it is ever shown.
Coach messaging
Private coach-to-client messaging with text, voice notes and images.
Programmes and payments
Structured coaching programmes, session booking, and payments through Stripe.
Notifications with consent
Push notifications with per-type consent, designed for a sensitive audience — nothing arrives that the person did not agree to receive.
Bilingual, properly
Every screen works in English and Arabic with full right-to-left layout, from onboarding onward — built in from the first commit, not translated afterwards. The Arabic side carries its own SEO rather than sitting behind a language toggle where no search engine will find it.
Engineering that protects the user
Age verification is enforced at the database layer, so every client application passes through the same gate. A new app, an admin tool or a future integration cannot route around it, because the rule does not live in any of them.
The same principle governs the generated check-in responses: validation runs before delivery, not as a filter someone can disable in a settings screen.
Need one product in two languages?
Arabic and English, one backend, both app stores.