ZED (My Islamic Reminders)
A mobile app plus web admin console that delivers multilingual Islamic broadcasts on each user's personal schedule, with auto-generated narrated audio and full delivery analytics.
Expo (React Native)
Next.js
Convex
OpenAI TTS
TanStack Table
Recharts

Overview
ZED is a spiritual broadcast platform built as a monorepo with three parts that share one backend: an Expo mobile app for end users, a Next.js admin dashboard for the people running it, and a Convex backend that holds the data and does the scheduling, notifications, analytics, and audio generation. The product sends users short Islamic broadcasts at their preferred local time, in their chosen language, and automatically turns each one into narrated audio with word-by-word highlighting as it plays.
The Problem
The hard part of this product isn't showing content. It's orchestration. Users want broadcasts delivered at a specific time in their own timezone, in one of several languages including right-to-left scripts. Each broadcast should be consumable as text, as audio, or as something shareable. Administrators need to see what's actually happening: what's been delivered, viewed, and played, and whether audio generation is keeping up. And when someone misses content, the system should follow up on its own. The real work is pulling scheduled delivery, language selection, audio generation, push notifications, and analytics into one coherent system.
My Role & Approach
This was a team project led primarily by another engineer, and I contributed as one of the developers on it. My involvement was focused rather than primary, within an architecture built around Convex as the single source of truth shared by both the mobile app and the admin dashboard. The design principle across the codebase is that the backend owns the orchestration, including scheduling, retries, audio jobs, and analytics, while the two front ends stay thin and read from the same generated API.
Tech Stack
Key Features
Gallery


Challenges & Solutions
Notification delivery is the technically demanding core of the product. Because broadcasts go out per user, per timezone, on a schedule, the backend handles delivery through Convex cron jobs and a background work pool rather than ad-hoc triggers, with retry markers tracked against each user's activity so missed content gets followed up automatically.
Audio generation is the other moving part that has to stay reliable. Turning text into narrated audio is slow and can fail, so each piece of localised content tracks its own generation status and retry count, and admins can see progress and re-run stalled jobs from the dashboard. Engagement tracking, recording delivered, viewed, and played events with timestamps, is built directly into the data model, which means reporting comes straight from the same store without a separate analytics pipeline.
Outcome
ZED is a complete cross-platform system where a single Convex backend drives both a consumer mobile app and an operations dashboard. It schedules personalised, multilingual, auto-narrated broadcasts and reports on every step of their delivery. It's a strong example of orchestration-heavy product engineering, with the back end doing the hard scheduling and media work so the apps can stay simple.
Have a similar product problem?
Share the current product, the outcome you need, and the constraints already in the way. I will use that to define a sensible first milestone.
Hire a full stack developer