Saltar al contenido
jr/dev
EN
← Volver al inicio

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
audios simultáneos en tiempo real
5
suscripciones recurrentes
PayPal
storage con metadata automática
S3
Página de inicio de Elemental Is Life con estética mística y científica.

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

Página de inicio con la propuesta de sanación sonora.
Home con identidad visual mística y científica.
Categorías de sanación y audios disponibles.
Catálogo organizado por tipo de frecuencia y propósito.
Mezclador multicanal expandido con varios audios simultáneos.
Mezclador con hasta 5 pistas simultáneas y control individual.
Detalle de una categoría con sus frecuencias.
Detalle de categoría con experiencia inmersiva por tipo de frecuencia.
Pantalla de login con suscripción.
Login con sesión persistida y validación de suscripción activa.