Casos

InkFlow: lienzo infinito local-first, con motor en C++ y WebAssembly

InkFlow es una aplicación web de lienzo infinito para pensar y organizar tareas, que funciona sin inicio de sesión y guarda los datos en el propio navegador. El dibujo corre en un motor en C++ compilado a WebAssembly, la colaboración ocurre en tiempo real entre dispositivos y la escritura a mano se convierte en tarea con reconocimiento de texto en el navegador.

Cliente
Producto propio de Gomes Code
Sector
Producto web · productividad

Cliente y contexto

Las herramientas de productividad suelen convertirse en listas interminables. InkFlow propone lo contrario: volcar las ideas en un lienzo libre y llevar una tarea a la vez a un modo de enfoque, con cronómetro.

El problema

“Quiero garabatear ideas como en papel, sin crear una cuenta, sin que mis datos vayan a un servidor, y convertir el garabato en una tarea.”

Restricciones

  • Dibujo fluido incluso en tablet, sin bloquear la página.
  • Los datos del usuario solo en su dispositivo.
  • Colaboración entre dispositivos sin un servidor de datos propio.

Decisiones y concesiones

  1. Motor de dibujo en C++ compilado a WebAssembly

    Por qué: El cálculo de los trazos sale de JavaScript y se acerca al rendimiento nativo. El costo es un paso más en el build.

  2. Local-first con IndexedDB (Dexie.js)

    Por qué: Funciona sin conexión y sin inicio de sesión; el usuario puede exportarlo todo. No hay una base de datos central que mantener ni datos personales bajo custodia.

  3. Sincronización P2P con Y.js y WebRTC

    Por qué: Los dispositivos se comunican directamente entre sí; solo la señalización pasa por un worker liviano. Sin servidor de datos.

  4. Reconocimiento de texto en un Web Worker

    Por qué: El OCR (Tesseract.js) corre en segundo plano, así que la escritura se convierte en tarea sin congelar el lienzo.

Lo que se construyó

  • Lienzo infinito con lápiz, borrador, formas, lazo de selección y exportación a PDF.
  • Pila de tareas, modo de enfoque con Pomodoro, matriz de Eisenhower y heatmap de productividad.
  • Varita mágica: la escritura a mano se convierte en tarea mediante OCR en el navegador.
  • Emparejamiento por código QR y colaboración en tiempo real entre dispositivos.
  • Tema claro y oscuro, portugués e inglés, instalable como aplicación.

Resultados

  • 0cuentas o servidores de datos para que el usuario empiece a usarloFuente: Funcionamiento de la app en producción
  • 3lenguajes en el código: TSX, TypeScript y C++ (motor de dibujo)Fuente: Repositorio de InkFlow, 13/10/2026

El azulejo de este caso

Líneas no vacías de código fuente por lenguaje, contadas en el repositorio (carpetas src y wasm).

Líneas de código de InkFlow por lenguaje
Líneas de código de InkFlow por lenguajelíneas
TSX (interfaz)3,555
TypeScript (lógica)2,437
C++ (motor de dibujo)74

Fuente: Repositorio de InkFlow · 2026-10-13

Tecnologías

  • React
  • TypeScript
  • C++
  • WebAssembly
  • Y.js
  • WebRTC
  • Dexie.js
  • Tesseract.js

Ver el proyecto en línea: inkflow.danillogomes.com

¿Quiere algo de este nivel?

Envíe el problema, no la especificación.