Publicación de previews protegidos
El pipeline que lleva un recurso HTML desde mi computador hasta el portal privado de un cliente, sin que lo que se pueda guardar sirva como producto.
El problema
Las instituciones quieren probar un recurso antes de pagarlo, y un HTML que funciona en el navegador siempre se puede guardar. Recortar funciones no es opción: el cliente tiene que ver el recurso completo.
El objetivo entonces no es impedir que se guarde, sino que lo guardado no sirva fuera del portal ni con estudiantes, y que cada apertura quede registrada.
Estación por estación
Carpeta local
La CLI lee la carpeta con los HTML en mi computador. La versión limpia nunca sale de ahí.
Zip desde el panel · ramal secundario
La otra entrada: el navegador sube el .zip directo al almacenamiento con un PUT firmado, y el servidor lo procesa en segundo plano.
Solo lo que se usa
Copia el HTML y solo los archivos de su carpeta que el HTML nombra. Lo demás no viaja.
Rutas limpias
Nombres sin espacios, tildes ni mayúsculas, con todas las referencias reescritas.
Scripts ofuscados
Ofusca los scripts en línea y los .js locales, amarrados a los dominios del espacio del cliente.
Marca y guardián
Agrega la marca de agua fija y un guardián que reemplaza la página si se abre fuera del subdominio del cliente.
Versión nueva
Cada publicación es una versión nueva en el almacenamiento. La anterior sigue visible hasta que la nueva tiene todos sus archivos.
Portal con sesión
El servidor entrega cada archivo solo a una sesión válida del subdominio del cliente.
Registro por acceso · ramal secundario
Cada entrada y cada preview abierto quedan registrados por persona, con la IP reducida a un hash.
Decisiones
Un mismo pipeline para la CLI y el panel
Los lotes grandes salen de mi computador con un comando; un cambio puntual, desde el panel. Si cada entrada tuviera su propio armado, tarde o temprano un preview saldría sin guardián.
La versión nueva se activa al final
Mientras se suben los archivos, el cliente sigue viendo la versión anterior completa. Nunca ve una página a medio subir.
Sin bloquear el clic derecho ni las herramientas de desarrollo
No protegen nada y dañan la accesibilidad. La protección está en lo que se entrega, no en esconder el navegador.
El archivo pesado no pasa por el servidor
El .zip va directo al almacenamiento con una URL firmada. El servidor solo recibe el aviso y procesa después de responder.
Lo que no resuelve
Es disuasión, no DRM. Quien tenga el HTML y tiempo puede quitar el guardián.
La protección de fondo es comercial: el preview no es entrega ni licencia, y la versión limpia se entrega después del pago.
Con qué está hecho
- Next.js 16
- Postgres (Supabase) con Drizzle
- Cloudflare R2
- javascript-obfuscator
Repositorio: Pendiente: enlace al repositorio
Fin del casoVer todos los casos