← volver
beta NodeWebSocketsCloudflareDurable ObjectsPWA

Clippy

Portapapeles compartido entre dispositivos — tiempo real, sin instalar nada

// contexto

Un portapapeles que vive en la nube y sincroniza entre dispositivos en tiempo real. Se emparejan con un código efímero, se abre en el navegador y el contenido viaja por un canal persistente: sin cuentas, sin instalar clientes.

// problema

Cambiar de dispositivo rompe el flujo. AirDrop, mail-to-self y apps de notas son fricción disfrazada de solución.

// solución

Sesiones efímeras identificadas por un código de emparejamiento y un canal WebSocket persistente. Copias en un dispositivo, aparece en el otro, y la sesión se destruye sola.

// arquitectura
  1. 01 Express + ws como servidor de sesiones, con endpoint /health
  2. 02 Durable Object ClippyCoordinator para coordinar sesiones en el edge
  3. 03 Sesiones efímeras por código, con TTL configurable y limpieza periódica
  4. 04 Hasta 5 dispositivos por sesión, con resume token para reconexión
  5. 05 Rate limiting por IP con ventana deslizante y límites de tamaño (10 KB texto / 5 MB imagen)
  6. 06 Frontend PWA con service worker, desplegado en Cloudflare Pages
// decisiones técnicas

UX invisible es la UX

Una herramienta que necesita interfaz para usarse, fracasó. Clippy gana cuando el usuario la olvida.

Tiempo real > consulta periódica

Consultar cada cierto tiempo rompe la ilusión de continuidad. Canal WebSocket persistente con reconexión.

Efímero por defecto

Nada sobrevive al TTL de la sesión. Menos superficie de datos es menos superficie de riesgo: no hay base de datos que filtrar.

// aprendizajes
  • El mejor producto de productividad es invisible
  • El tiempo real no es una funcionalidad, es una expectativa
  • Un código de emparejamiento + PWA evita instalar software en cada dispositivo
Ver demo ↗ Código ↗ Contactar →