ZED (My Islamic Reminders)
Una aplicación móvil junto con una consola web de administración que entrega difusiones islámicas multilingües según el horario personalizado de cada usuario, con audio narrado generado automáticamente y analíticas completas de entrega.
Expo (React Native)
Next.js
Convex
OpenAI TTS
TanStack Table
Recharts

Descripción general
ZED es una plataforma de difusión espiritual desarrollada como un monorrepositorio con tres partes que comparten un mismo backend: una aplicación móvil en Expo para los usuarios finales, un panel de administración en Next.js para quienes gestionan la plataforma y un backend en Convex que almacena los datos y se encarga de la programación, las notificaciones, las analíticas y la generación de audio. El producto envía a los usuarios breves difusiones islámicas a su hora local preferida, en el idioma seleccionado, y convierte automáticamente cada una en audio narrado con resaltado palabra por palabra durante la reproducción.
El problema
La parte compleja de este producto no es mostrar contenido, sino la orquestación. Los usuarios quieren recibir las difusiones a una hora específica en su propia zona horaria, en uno de varios idiomas, incluyendo escrituras de derecha a izquierda. Cada difusión debe poder consumirse como texto, como audio o como contenido para compartir. Los administradores necesitan ver qué está ocurriendo realmente: qué se ha entregado, visto y reproducido, y si la generación de audio avanza al ritmo necesario. Y cuando alguien no recibe o se pierde un contenido, el sistema debe hacer un seguimiento por sí mismo. El verdadero trabajo radica en integrar la entrega programada, la selección de idiomas, la generación de audio, las notificaciones push y las analíticas en un único sistema coherente.
Mi rol y enfoque
Este fue un proyecto en equipo liderado principalmente por otro ingeniero, en el que participé como uno de los desarrolladores. Mi intervención fue puntual y no principal, dentro de una arquitectura construida en torno a Convex como fuente única de verdad compartida tanto por la aplicación móvil como por el panel de administración. El principio de diseño en toda la base de código es que el backend asume la orquestación, incluidos la programación, los reintentos, los trabajos de audio y las analíticas, mientras que los dos front-ends se mantienen ligeros y leen de la misma API generada.
Stack tecnológico
Características clave
Galería


Desafíos y soluciones
La entrega de notificaciones constituye el núcleo de mayor exigencia técnica del producto. Dado que las difusiones se envían por usuario, por zona horaria y según un cronograma, el backend gestiona los envíos mediante tareas cron de Convex y un grupo de trabajo en segundo plano en lugar de activadores puntuales, registrando marcadores de reintento según la actividad de cada usuario para hacer un seguimiento automático del contenido no recibido.
La generación de audio es la otra pieza móvil que debe mantenerse fiable. Convertir texto en audio narrado es un proceso lento y susceptible de fallos, por lo que cada fragmento de contenido localizado monitoriza su propio estado de generación y recuento de reintentos, permitiendo a los administradores ver el progreso y reiniciar tareas estancadas desde el panel. El seguimiento de interacción, que registra eventos de entrega, visualización y reproducción con marcas de tiempo, está integrado directamente en el modelo de datos, lo que permite generar informes directamente desde el mismo almacén sin necesidad de un flujo de analíticas independiente.
Resultado
ZED es un sistema multiplataforma completo en el que un único backend en Convex impulsa tanto una aplicación móvil de consumo como un panel de operaciones. Programa difusiones personalizadas, multilingües y con narración automática, e informa sobre cada paso de su entrega. Es un claro ejemplo de ingeniería de producto con alta exigencia de orquestación, donde el backend realiza el trabajo complejo de programación y gestión multimedia para que las aplicaciones se mantengan sencillas.
¿Tienes un problema de producto similar?
Comparte el producto actual, el resultado que necesitas y las limitaciones que ya existen en el camino. Usaré eso para definir un primer hito razonable.
Contratar un desarrollador full stack