Stickly: notas adhesivas en tiempo real entre Windows, Android y el navegador, cifradas de extremo a extremo

Una aplicación de notas adhesivas sincronizadas en tiempo real entre Windows, Android y el navegador. En el PC cada nota es una ventana en el escritorio o un icono en la bandeja; en el móvil, un widget de inicio que se actualiza incluso con la aplicación cerrada. Checklists, colores, recordatorios y notas compartidas, con cifrado de extremo a extremo: el servidor guarda notas que no sabe leer.

Stickly es una aplicación de notas adhesivas que diseñé y desarrollé yo solo, del servidor a las aplicaciones. Una sola aplicación Vue funciona en el navegador, dentro de un envoltorio Tauri en Windows y dentro de un envoltorio Capacitor en Android, y todas se sincronizan con mi servidor, al que por ahora se entra con una invitación. Las imágenes muestran notas de ejemplo en una copia de prueba: las de verdad están cifradas, y ni siquiera el servidor puede leerlas.

**Qué hace**

- **En el PC** cada nota tiene su propia ventana, siempre visible o en el escritorio, donde se queda incluso con Win+D. Hasta seis caben en la bandeja del sistema como iconos de su color; una nota anclada a una aplicación solo aparece cuando esa aplicación está delante, e «Invia a Claude» (enviar a Claude) manda su texto al chat de la aplicación de Claude. - **En el móvil** los widgets de la pantalla de inicio se actualizan incluso con la aplicación cerrada, y los elementos de la checklist se marcan desde el widget. También hay notas flotantes sobre otras aplicaciones, el icono «Nuova nota» (nueva nota) de los ajustes rápidos y Compartir → Stickly. - **En todas partes**: checklists, colores y emojis, formato con atajos de teclado, búsqueda, posponer con un aviso cuando la nota vuelve, papelera de treinta días, historial de versiones, tema claro y oscuro. En el navegador se instala como aplicación y se abre incluso sin conexión. - **En compañía**: una nota se comparte por correo, con quien puede editar o solo leer, y los cambios de los demás aparecen mientras escriben. - **Acceso** con contraseña o llave de acceso, bloqueo de las aplicaciones con huella o Windows Hello, y correos del dominio para invitaciones, confirmaciones y contraseñas olvidadas.

**Lo difícil: cifrar sin perder el tiempo real**

Cada nota es un documento Yjs. Un cambio se convierte en una actualización que el dispositivo cifra con la clave de la nota (AES-256-GCM) y envía por el canal WebSocket desde una cola local, que aguanta también sin conexión. El servidor guarda y reenvía blobs que no sabe abrir, numerados: un dispositivo que se quedó atrás pide solo los que le faltan. La clave de una nota se sella para cada persona con su clave pública X25519: compartir significa sellarla para alguien más, y cuando alguien sale, la nota cambia de clave.

Desde el widget de Android un elemento se marca sin abrir la aplicación: una tarea en segundo plano descarga el documento cifrado, hace que lo modifique el mismo motor de sincronización, que allí funciona en el V8 de un WebView sin página, y envía la actualización. Y los widgets se mantienen al día gracias a una conexión que la aplicación mantiene sola con el servidor, sin Firebase ni otros servicios.

Vue 3 y TypeScript, Tiptap sobre Yjs, Fastify y PostgreSQL en Docker en mi servidor, Tauri 2 con Rust, Capacitor 8 con Kotlin; 244 pruebas automáticas en JavaScript, Rust y Kotlin.

Diseño, desarrollo full-stack y publicación · 2026

Vue.js, Fastify, Tauri, Capacitor, Yjs

Ver el sitio

Andrea Coppetta