Plataforma de suscripción · Audio en tiempo real · 2024 — 2025
Elemental Is Life
Plataforma de suscripción con mezclador de audio multicanal en tiempo real.
- Rol
- Full Stack Developer (Freelance)
- Período
- Dic 2024 — Jun 2025
El proyecto
Elemental Is Life es una plataforma de suscripción para bienestar y sanación sonora. El producto entrega frecuencias y “pasajes sonoros” que el usuario puede mezclar en vivo: una frecuencia base de fondo + sonidos aditivos (lluvia, fuego, cuencos tibetanos) sincronizados con precisión. Mi rol fue full stack punta a punta — arquitectura, infraestructura, código frontend y backend, y fixes en caliente en producción.
El motor de audio
La pieza técnica más exigente fue el mezclador multicanal. Permite reproducir hasta cinco audios simultáneos sin desfases ni latencia perceptible. La implementación combina:
- WebAudio API con buffers paralelos por canal.
- Wavesurfer.js para visualización de ondas, decodificando de forma asincrónica para no bloquear el main thread.
- Un híbrido Redux + Zustand para separar el estado “lento” (UI, sesión, biblioteca) del estado “rápido” del reproductor, evitando re-renders masivos en eventos a 60 fps.
- Lazy loading y decodificación bajo demanda para que el primer audio empiece a sonar en menos de un segundo, incluso con cinco pistas listas para mezclar.
Backend con NestJS
El servidor está construido en NestJS con inyección de dependencias y módulos totalmente desacoplados. Implementé un FileUploadService que interactúa con @aws-sdk/client-s3, separa buckets públicos (imágenes de UI) de los privados (audios pesados) y extrae la duración del audio en segundos directamente del buffer temporal antes de persistir — así la base de datos nunca calcula metadata pesada en runtime.
Datos
Esquema ultra-relacional con Prisma + PostgreSQL: User, Subscription, DeviceAccess, Listen (control estricto de analíticas de escuchas por usuario) y bibliotecas de audio. Todo con foreign keys reales, índices pensados para los queries más comunes y transacciones cuando hay riesgo de inconsistencia.
Suscripciones
Implementación de PayPal Subscriptions con el SDK oficial: SubscriptionsCreateRequest para arrancar ciclos de facturación y un handler de webhooks que reacciona a impagos, cancelaciones y reactivaciones para mantener Subscription.status siempre sincronizado.
Aprendizajes
Balancear iteraciones ultra rápidas para salir a mercado mientras se construían cimientos sólidos para un negocio digital. Parseo masivo de audios, CORS fixes en producción y optimizaciones del build pipeline de Vite. La arquitectura final permite escalar el catálogo sin tocar el reproductor — un buen indicador de que las capas están bien separadas.
Capturas