IonicCapacitorAngularREST APIs

HookNote

El punto de entrada universal para automatizaciones. Envía texto o notas de voz directamente a n8n, Make o Webhooks personalizados sin servidores intermedios.

Resultado
Disponible en Google Play. Diseño cloud-agnostic 100% centrado en la privacidad.
Mi rol
Diseño de producto, UI/UX y desarrollo completo con Ionic.

El Problema

Capturar información desde el móvil hacia tus automatizaciones implica demasiada fricción. Abrir Telegram para buscar un bot, copiar y pegar entre apps, o rellenar formularios web pensados para escritorio… todo eso rompe el flujo de trabajo y hace que muchas ideas se pierdan por el camino.

Necesitaba una herramienta que hiciera una sola cosa, pero que la hiciera bien: enviar voz o texto a un webhook en un toque, sin intermediarios.

La Solución

HookNote es una app móvil que conecta tu voz y tus ideas directamente con tus flujos de automatización. Sin servidores intermedios, sin cuentas, sin fricción. Abres la app, grabas o escribes, y el contenido viaja directamente a n8n, Make, Zapier o tu propio backend.

Pantalla principal de HookNote — Grabación de audio con visualizador de onda en tiempo real

Stack y Arquitectura

La app está construida con Ionic 8, Angular y Capacitor, un stack híbrido que permite mantener un único código fuente para todas las plataformas. Elegí estas tecnologías por la experiencia profesional acumulada durante años trabajando con ellas en entornos de producción a gran escala.

  • Arquitectura modular: Standalone Components de Angular con features lazy-loaded (recorder/, settings/, history/), sin NgModules pesados.
  • 100% client-side: No hay backend propio. La configuración, el historial y las credenciales se almacenan exclusivamente en el dispositivo mediante localStorage.
  • Servicios centralizados: Lógica de negocio separada en servicios core (WebhookSenderService, HistoryService, StorageService) con constantes globales configurables.

Funcionalidades Destacadas

  • Grabación de audio con visualizador de onda en tiempo real y envío en formato .webm.
  • Hasta 5 webhooks configurables con alias personalizados y timeout individual por destino.
  • Cabeceras HTTP personalizables (Authorization, X-API-Key, o las que necesites) para securizar los endpoints.
  • Historial local de los últimos envíos con la respuesta completa del servidor, visible desde la app.
  • Internacionalización completa en español e inglés.

Configuración de webhook — Headers HTTP personalizables y opciones avanzadas

Evolución del Producto

HookNote nació como una herramienta personal para resolver mi propia necesidad de separar flujos de automatización. Su evolución ha sido orgánica, guiada por el uso real:

  1. MVP con 1 webhook — La primera versión solo permitía enviar a un único destino. Rápidamente necesité separar flujos (notas personales, gastos, tareas de trabajo), así que lo amplié a 5 webhooks con alias.
  2. Cabeceras HTTP — Al exponer webhooks públicos, necesitaba un nivel mínimo de seguridad. Añadí la posibilidad de inyectar headers personalizados en cada petición.
  3. Respuesta del servidor + timeout configurable — Cada flujo de automatización tiene tiempos distintos (una transcripción con IA tarda más que guardar una nota). Se implementó la visualización de la respuesta del servidor y un timeout ajustable por endpoint.

Privacidad por Diseño

La privacidad de HookNote no es un claim de marketing, sino una decisión arquitectónica:

  • Sin servidor propio: Los datos viajan directamente desde el móvil al destino que el usuario configura. No existe ningún servidor intermedio.
  • Audios eliminados tras envío: Las grabaciones de voz se borran del dispositivo una vez enviadas. El historial registra que se envió un audio, pero no conserva el archivo.
  • Credenciales en local: Las URLs y las cabeceras HTTP se almacenan exclusivamente en localStorage del dispositivo.
  • Sin telemetría: No se recopila contenido ni se analiza la voz del usuario.

Resultado

  • Producto completo de principio a fin: Desde la conceptualización y diseño de producto hasta la publicación en Google Play.
  • Diseño cloud-agnostic: Compatible con n8n, Make, Zapier, IFTTT y cualquier backend que acepte peticiones HTTP POST.
  • Protocolo de integración documentado: Formato JSON para texto y multipart para audio, con respuesta del servidor visible en la app.
  • Lista de espera activa para iOS.