- 2
- plataformas desde un solo código, iOS y Android
- 16
- tablas en SQLite en el teléfono, sincronizadas
- 58
- endpoints REST detrás
- 835
- tests automatizados, app y API
Cómo nació
Nació de una necesidad real en la Iglesia Jesucristo Mi Esperanza de Sunchales. Busqué algo práctico para la realidad de un equipo de alabanza y no lo encontré, así que decidí hacerlo, y hacerlo de forma que le sirva también a iglesias de toda Latinoamérica. Es además mi proyecto final de Ingeniería en Sistemas en la UTN.
El problema
Un equipo musical de iglesia funciona con información que no es de nadie. La lista de canciones es una carpeta de PDFs, el tono que necesita cada cantante está en la cabeza de alguien, el setlist del domingo es un mensaje de WhatsApp y quién toca la semana que viene es otro mensaje de WhatsApp. Funciona hasta que falta la persona que lo sostiene todo, y ahí cada ensayo arranca de cero.
El enfoque
Una app móvil que guarda la biblioteca de canciones con acordes, tono y tempo, deja a los líderes armar setlists de reuniones y ensayos, y agenda a los músicos con registro de asistencia. Hecha junto a la Iglesia Jesucristo Mi Esperanza de Sunchales, Argentina, que es la razón por la que resuelve los problemas que los equipos tienen de verdad y no los que imaginaría un product manager.
Sin conexión es el caso normal, no el borde
Los sótanos de iglesia y las salas de ensayo tienen mala señal. Tratar la falta de conexión como un estado de error habría hecho la app inútil justo donde se usa, así que es offline-first: todo funciona sin conexión y sincroniza cuando vuelve. Los registros reciben su UUID en el dispositivo, que es lo que permite que dos personas editen el mismo setlist desde teléfonos distintos sin un servidor repartiendo ids.
Base de datos local, no un caché
SQLite en el dispositivo guarda los datos reales, no una copia de lo último que dijo el servidor. Esa distinción decide todo lo que viene después: qué pasa ante un conflicto, qué ve el usuario mientras hay una sincronización pendiente, y si una escritura se puede perder. Un caché lo tirás; una fuente de verdad la tenés que reconciliar.
Hecho para poder soltarlo
React Native con Expo adelante, FastAPI con SQLAlchemy async y Postgres atrás, TypeScript en modo strict de punta a punta. El stack es aburrido a propósito: esto es un producto que un equipo voluntario tiene que poder mantener andando, y la parte interesante debería ser el modelo de sincronización, no las herramientas.
En pantalla · tocá para ampliar
Probalo acá
El control de tono del reproductor, funcionando: cambiá el tono y todos los acordes lo siguen, con los sostenidos o bemoles que pide el tono nuevo.
GSublime G7gracia Cdel SeGñor
que a un GinfeEmliz salDvó.
Fui Gciego G7mas Choy veo Gyo,
perGdido y DÉl me haGlló.
Lo que sigue
Desde julio de 2026 la app está en manos de músicos reales en la iglesia, y los primeros ajustes salen de ese uso: lo que se toca de verdad un domingo, no lo que dice un backlog. El lanzamiento al público, para iOS y Android, está estimado para enero de 2027. Hasta entonces, sonli.app toma un mail y avisa cuando esté lista.
- Oct 2025Arranca el desarrollo
- Jul 2026· ahoraPruebas con músicos reales en la iglesia
- Ene 2027 · estimadoLanzamiento al público en iOS y Android
Stack
- React Native
- TypeScript
- Offline Sync
- REST API
- PostgreSQL
