HTML Sharing con cifrado Zero-Knowledge

Pega tu HTML, recibe un enlace privado. El cifrado ocurre en tu navegador, la clave viaja en el hash de la URL y el servidor solo guarda bytes opacos. Comparte código, dashboards o documentos sin renunciar a tu privacidad.

share.yous.dev/v/aZ8c3K1q#kEy-N3v3r-T0uch3s-S3rv3r

Cómo funciona

Tres pasos. Sin instalación, sin cuentas. El servidor nunca ve tu HTML en claro.

PASO 01

Cifrado en tu dispositivo

Tu navegador genera una clave AES-256 aleatoria y cifra el HTML con AES-GCM. Nada sale en claro.

crypto.subtle.encrypt(AES-GCM, key, html)
PASO 02

El servidor solo ve bytes

Subimos el blob cifrado a Cloudflare KV con un TTL. Sin metadatos, sin contenido legible.

POST /api/store · { ciphertext, ttl }
PASO 03

La clave viaja en el #

El enlace incluye la clave después de #. Los navegadores nunca envían el hash al servidor.

/v/abc123#k=clave-aqui

Características

Privacidad seria. Velocidad de edge. Cero infraestructura que mantener.

🔒

Privacidad total

Los datos se cifran con AES-256-GCM antes de salir de tu navegador. Sin login, sin tracking, sin trazas.

Auto-destrucción

Configura enlaces que expiran en 1 hora, 24 horas, 1 semana o tras una única lectura.

Zero infrastructure

Construido sobre Cloudflare Workers + KV. Latencia de edge global y nada que escalar.

Por qué HTML, no Markdown

No es una tesis nuestra: la planteó Thariq Shihipar (Anthropic, equipo de Claude Code) y cada vez más herramientas la están adoptando. Esta es la hipótesis que motiva share.yous.dev.

“HTML is the new markdown. I've stopped writing markdown files for almost everything and switched to using Claude Code to generate HTML for me. This is why.”

@trq212 · Thariq Shihipar, Anthropic

Su argumento: el lenguaje en el que mejor escriben hoy los LLMs no es Markdown, es HTML. Y un solo archivo HTML puede llevar CSS, lógica interactiva y datos embebidos sin pedirle nada al lector — basta con un navegador.

  • Más expresivo: tablas interactivas, charts, formularios, vídeo, estilos completos. Markdown se queda corto en cuanto el contenido pasa de párrafos.
  • Self-contained: un único archivo HTML lleva CSS, JS y datos embebidos. Cero dependencias, cero "renderiza esto con la herramienta X".
  • Universal: lo abre cualquier navegador, en cualquier dispositivo, sin instalar nada.
  • Generación nativa por LLMs: los modelos modernos producen HTML rico mejor que cualquier formato custom — y el resultado es directamente la versión final, no una representación intermedia.
  • Mejor que Markdown para: comparativas, planes, code reviews, explicaciones técnicas, status reports, dashboards, editores ad-hoc.

La consecuencia natural es que necesitamos una forma de compartir HTML tan ligera y privada como copiar un gist de markdown. Eso es share.yous.dev: pegar, cifrar en tu navegador, recibir un enlace.

Preguntas frecuentes

Lo que la gente pregunta antes de pegar algo importante.

¿Qué pasa si pierdo la clave del enlace?

Sin la clave (la parte después del #) el contenido es matemáticamente irrecuperable. Ni nosotros, ni Cloudflare, ni un atacante con acceso a la base de datos pueden descifrarlo. Es el precio de un servicio zero-knowledge real: si quieres redundancia, guarda el enlace en tu gestor de contraseñas.

¿Cuánto tiempo se guardan los archivos?

Eliges al crear el enlace: 1 hora, 24 horas, 1 semana o una sola lectura (se elimina al abrirse). Pasado ese plazo, Cloudflare KV elimina el blob de forma automática.

¿Puede share.yous.dev leer mi HTML?

No. El servidor solo recibe bytes opacos cifrados con AES-GCM 256. La clave de descifrado vive únicamente en el hash (#) de la URL, y los navegadores nunca envían el hash al servidor en una petición HTTP.

¿Puedo añadir una contraseña además del enlace?

Sí. En "Ajustes avanzados" puedes añadir una contraseña como segunda capa de cifrado: se deriva una clave con PBKDF2-SHA256 (250.000 iteraciones) y se combina con la clave aleatoria del enlace. Si pierdes la contraseña, ni siquiera el enlace permite leer el contenido.

¿Puedo integrarlo desde mi propia herramienta?

Sí. La API pública POST /api/store acepta JSON con el ciphertext en base64 y el TTL en segundos. El cifrado debe hacerlo tu cliente para mantener la propiedad zero-knowledge. La guía completa con ejemplos en JS, Node, curl y Python está en /developers.

¿El HTML compartido puede ejecutar scripts?

El visor renderiza el HTML descifrado dentro de un <iframe> con atributo sandbox sin allow-same-origin: el contenido se ejecuta en un origen nulo, sin acceso a tus cookies ni al DOM de share.yous.dev.

Nota técnica

Por qué esto es realmente zero-knowledge.

ZERO-KNOWLEDGE

La clave de cifrado se genera con crypto.getRandomValues y vive solo en el hash de la URL (#k=...). Por diseño del protocolo HTTP, el hash nunca se envía al servidor: ni en la cabecera Referer, ni en el path de la petición, ni en logs. El Worker solo procesa bytes opacos. Si nuestro servidor desaparece o es comprometido, tu contenido cifrado sigue siendo ilegible. Es la misma propiedad que ofrecen Cryptpad, Bitwarden Send o PrivateBin.

¿Listo para tu primer enlace privado?

No requiere registro. Cifrado en cliente desde el primer byte.

Empezar a compartir →