html2wp / Datos
Qué hace html2wp con tus datos
Una descripción clara de qué sale de tu equipo, por qué y cuánto tiempo lo guardamos. El README menciona lo mismo solo de pasada. Esta es la versión que puedes enseñarle a un cliente.
La conversión en sí
Para convertir un sitio, el servicio tiene que recibirlo. Cuando ejecutas la etapa 3, la skill sube un archivo comprimido a api.html2wp.dev:
conversion-manifest.json, las decisiones que tomaste sobre el sitioastro-report.json, el inventario de las partes que comparten las páginas (el chrome), de la etapa 1astro-project/, incluidodist/, que es el sitio compiladochrome-at-rest/,chrome-groups.jsonystyle-specimens/cuando existen
Eso es el sitio web de tu cliente: su marcado, estilos, scripts e imágenes. No hay forma de convertir un sitio sin enviarlo, y cualquier texto que sugiriera lo contrario sería falso. SKILL.md enumera los archivos exactos en What goes up. Si prefieres comprobarlo en lugar de fiarte de nuestra palabra, convert-remote.sh es un script de shell legible.
Qué no va en ese archivo
Tu directorio de entrada no va, porque solo viaja el resultado compilado. Tampoco node_modules. Ni nada que tenga forma de credencial: .env y .env.*, *.pem, *.key, id_rsa, credentials.json, .npmrc, .netrc, .ssh/, .aws/, además de cualquier archivo cuyo contenido incluya un bloque de clave privada o una asignación evidente de un secreto. El filtro lista por nombre todo lo que descarta en astro-report.json, así puedes ver qué no viajó.
La IA de tu propia cuenta de ChatGPT hace el trabajo en tu equipo (medir, comparar con el original y corregir). OpenAI procesa aquello con lo que trabaja la IA según las condiciones de tu cuenta, igual que cuando usas ChatGPT de cualquier otra forma.
Cuánto tiempo lo guardamos: borramos el espacio de trabajo 48 horas después de su último cambio. Lo que queda es un resumen criptográfico (un hash). Eso es lo que permite que una repetición del mismo sitio cuente como repetición y no como una segunda conversión.
Los resultados de las comprobaciones
Después de verificar una conversión en local, la skill informa del resultado. Es obligatorio: la siguiente conversión se rechaza hasta que la anterior haya informado. Además es poco, y funciona como lista blanca, no como filtro.
- Se envía: los nombres de las comprobaciones (gates), el resultado (aprobado, fallido o no ejecutado), los recuentos de páginas, el peor porcentaje de fidelidad y las claves de las páginas que fallaron. Las claves son los nombres cortos que elegiste, como
aboutopricing. - No se envía: ninguna URL, ningún dominio, nada de marcado, nada de texto, ninguna captura de pantalla, ninguna ruta de archivo, ninguna clave de licencia, ningún nombre del sitio.
El comando send-verdicts.sh <workspace> --dry-run imprime el contenido exacto del envío y no envía nada.
Por qué es obligatorio: las comprobaciones se ejecutan en tu equipo, contra un WordPress que el servicio nunca ve. Sin ellas, el servicio puede saber que una conversión no terminó con un error fatal, pero nada en absoluto sobre si fue correcta. Guardamos los resultados 365 días.
El registro de la conversión
Una fila por conversión: cuántas páginas, cuántas variantes de chrome, si tenía blog o tienda, si fue una repetición, qué etapa la rechazó si alguna lo hizo, y los avisos del propio generador sobre sí mismo. Los avisos se anonimizan: los nombres de archivo de las páginas y las URL se sustituyen antes de escribir la fila. Guardamos el registro 365 días. No contiene contenido, ni direcciones, ni identificadores del sitio.
Informes de defectos
Si envías uno con POST /v1/report, guardamos su texto tal como lo escribiste y lo enviamos por correo a través de Resend a una persona que lo lee. Lo guardamos 90 días. No pegues en él nada que no quieras que se guarde durante ese tiempo.
Cómo te identificamos
- Sin clave: las conversiones se cuentan por dirección IP, tal como la ve Cloudflare. La guardamos como un hash truncado, nunca como la dirección en sí.
- El país en el que estaba ese hash, en dos letras, a partir de la cabecera que añade Cloudflare. Está junto al contador anterior y en ningún otro sitio. En particular, no está en el registro de la conversión, que no contiene nada que te ubique. El país nos dice en qué países se usa html2wp, pero no qué conversión fue la tuya. Los casos desconocidos y Tor llegan como
XXyT1, y los guardamos así en lugar de adivinar. - Con licencia: por la clave de licencia, también guardada como hash. La validamos contra UpdatePulse (
updates.designready.studio), que ve la clave. - Al comprobar una clave o descargar Visual Edit Pro: la página de descarga y el comprobador
npx html2wp-licenseenvían la clave que introduces, y nada más, a ese mismo servidor de licencias para leer su estado. La respuesta no contiene datos personales, y ni la página ni el comprobador guardan la clave.
Comprar una licencia
Vendemos los planes a través de Paddle. Paddle.com Market Limited es el Merchant of Record, el vendedor en la transacción. Para el pago es un responsable del tratamiento independiente, no un encargado que actúa por nuestra cuenta. En el checkout, Paddle recoge tu nombre, tu correo, tu país y tu código postal, tus datos de pago y, si lo indicas, un NIF-IVA. Los trata según su propio aviso de privacidad.
- Lo que Paddle nos pasa: tu correo, nombre y país, los identificadores de la transacción y de la suscripción, y qué producto compraste. Es lo necesario para emitir la clave a la persona correcta y para encontrar el pedido cuando nos escribes.
- Lo que guardamos: en UpdatePulse, nuestro servidor de licencias en
updates.designready.studio, la clave de licencia, tu correo y tu nombre, el identificador de la transacción, las fechas de compra y de caducidad y el estado de la licencia. - El correo con la clave sale a través de Resend, que solo lo entrega y no hace nada más con él.
- Los datos de empresa para la factura (razón social o nombre comercial, dirección, opcionalmente un número de IVA y el correo) van de tu navegador directamente al checkout de Paddle si eliges For a business or freelancer antes de pagar. Paddle los imprime después en la factura. Este sitio no los envía a nuestros servidores ni los guarda.
- Los datos de la tarjeta nunca nos llegan. Van de tu navegador a Paddle, y no podríamos verlos aunque quisiéramos.
- El script de Paddle, Paddle.js, solo se carga en la página de precios, desde
cdn.paddle.com, porque es ahí donde se abre el checkout. Ninguna otra página de este sitio lo carga.
Plazo de conservación: durante la vida de la licencia y, después, durante el tiempo que la normativa contable nos obligue a conservar los registros de compra.
Gestionar una suscripción
Gestionas la suscripción en el portal de clientes de Paddle, en el propio sitio de Paddle. Cancelar, cambiar la tarjeta y descargar facturas son asuntos entre tú y Paddle, y nosotros solo vemos el resultado. Para cambiar Pro de mensual a anual, la página de gestión de la suscripción envía a Paddle el correo que introduces para encontrar tu suscripción. Si existe, el enlace sale por correo a través de Resend a la dirección que tiene Paddle. No guardamos la dirección que escribiste.
El formulario de contacto
El formulario para escribirnos es el otro lugar de este sitio donde escribes algo sobre ti. Pide un correo, que es obligatorio, un sitio web u organización, que es opcional, y tu mensaje. El formulario también tiene un campo oculto llamado company que las personas nunca ven. Está ahí para que los bots que rellenan todos los campos se delaten.
Antes de enviar un mensaje, Cloudflare Turnstile comprueba que lo envía una persona y no un script. Solo se ejecuta en las páginas con un formulario que lo usa: la página de contacto y la página de la suscripción. Se carga desde challenges.cloudflare.com. Para decidir, Cloudflare mira tu dirección IP, el User-Agent de tu navegador y su huella TLS. Cloudflare afirma que son estrictamente necesarios para distinguir personas de bots. No lee lo que escribes en el formulario. Nosotros recibimos un aprobado o un suspenso y nada más. El anexo de privacidad de Turnstile de Cloudflare tiene los detalles.
Tu mensaje llega a una persona por correo, a través de Resend. No va a un CRM ni a una lista de correo. Lo guardamos mientras lo necesite la conversación y lo borramos en un plazo máximo de 24 meses. Si lo pides antes, se borra.
Datos de usuario de Google
html2wp usa una sola API de Google, la Google Ads API, y solo para nuestra propia investigación de palabras clave: qué términos de búsqueda usa la gente, con qué frecuencia y cuánta competencia tienen. Es una herramienta interna. Nadie ajeno a nuestro equipo inicia sesión con Google en ninguna parte de html2wp, y el conversor nunca te lo pide.
- Qué solicitamos: el ámbito
https://www.googleapis.com/auth/adwords, concedido por un miembro de nuestro equipo para cuentas de Google Ads que son nuestras. Se usa para leer datos de Keyword Planner: ideas de palabras clave, volumen de búsqueda histórico, competencia y rangos de pujas. - Qué no tocamos: campañas, anuncios, audiencias, facturación ni ninguna cuenta de Google que no sea la nuestra. No se escribe nada de vuelta en Google Ads.
- Dónde se guarda: el token de inicio de sesión se queda en el llavero del sistema operativo del equipo en el que se concedió. Los resultados de palabras clave acaban en nuestra propia planificación de contenidos, como cifras sobre términos de búsqueda, no sobre personas.
- Quién más lo ve: nadie. No lo vendemos, no lo compartimos y no lo usamos para publicidad ni para entrenar modelos de IA.
- Cómo retirarlo: revocas el acceso en myaccount.google.com/permissions. Borramos todo lo que se derive de él si lo pides en hello@html2wp.dev.
El uso que html2wp haga de la información recibida de las API de Google, y su transferencia a cualquier otra aplicación, cumplirá la Google API Services User Data Policy, incluidos los requisitos de uso limitado (Limited Use).
Quién más interviene
- Cloudflare (Estados Unidos) aloja este sitio web y ejecuta sus pequeñas funciones del lado del servidor (el formulario de contacto, la descarga de Visual Edit Pro y el webhook de pagos). También está delante de la API de conversión. Termina la conexión TLS, así que ve cada petición y la dirección de la que viene. En las páginas de contacto y de la suscripción ejecuta además Turnstile, la comprobación antibots descrita arriba. Para esa comprobación, Cloudflare es nuestro encargado del tratamiento. Solo es responsable cuando usa esas mismas señales para mejorar la detección de bots.
- UpdatePulse en nuestro propio servidor, para validar licencias. Como las licencias se venden, también guarda el correo y el nombre del cliente junto a la clave.
- Paddle (Paddle.com Market Limited, Reino Unido) es el Merchant of Record de cada compra y responsable independiente de los datos de pago que recoge.
- Resend (Estados Unidos) entrega cuatro tipos de correo: claves de licencia tras una compra, enlaces de gestión de la suscripción, mensajes enviados con el formulario de contacto e informes de defectos del conversor.
- Coolify en nuestro propio servidor, para alojar el servicio de conversión y el servidor de licencias.
- agentmods.dev sirve la pequeña insignia de medición del plugin que aparece en el pie de cada página. Al cargar esa imagen le llegan tu dirección IP y los datos de tu navegador, como con cualquier imagen de otro sitio. No se comparte nada más con él.
- Umami, la herramienta de analítica de código abierto, funciona en umami.agentmods.dev y se usa solo en este sitio web. Cuenta las páginas vistas y unos pocos clics: qué botón se pulsó, no quién lo pulsó. Sin cookies, sin identificador entre sitios, nada guardado en tu dispositivo. Por eso este sitio no tiene un banner de cookies que tengas que cerrar.
Sin publicidad, sin rastreo entre sitios, sin venta de datos
La única herramienta de analítica es la que no usa cookies, mencionada arriba, y funciona en este sitio web. El tema que recibes nunca llama a un servidor nuestro al ejecutarse. Esa afirmación se refiere al sitio entregado, y es exacta. No se vende nada y no se comparte nada con ningún anunciante.
Salida de la UE
Nuestros servidores están en la UE. Cloudflare y Resend son empresas estadounidenses. El tráfico hacia este sitio web y hacia la API pasa por la infraestructura de Cloudflare, igual que la comprobación de Turnstile en los formularios. Los correos con claves, los enlaces de gestión de la suscripción, los mensajes del formulario de contacto y los informes de defectos pasan por la infraestructura de Resend. Ambos casos pueden implicar una transferencia fuera de la UE. Esas transferencias se basan en las cláusulas contractuales tipo de la Comisión Europea. Paddle está en el Reino Unido, que la Comisión Europea reconoce como país con un nivel de protección adecuado, y trata los datos de pago según su propio aviso de privacidad. La insignia del pie y el script de analítica vienen de agentmods.dev, un sitio servido a través de la red global de Cloudflare. Por eso no controlamos dónde se responden esas peticiones. Nada más de esta lista sale de la UE.
Base jurídica
Según el RGPD, cada uno de estos tratamientos necesita una base jurídica. Esta es la que se aplica a cada uno:
El servicio de conversión
- Recibir y convertir tu sitio: ejecución de un contrato (art. 6.1.b RGPD). Pediste una conversión, y no puede hacerse sin la subida.
- Contar las conversiones por dirección IP: interés legítimo (art. 6.1.f RGPD). Un plan gratuito que no se puede contar acaba agotado, y un hash truncado es lo mínimo con lo que podíamos identificarlo.
- Registrar en qué país estaba esa dirección: interés legítimo (art. 6.1.f RGPD). Saber dónde se usa un producto decide qué admite. Dos letras junto a un contador ya seudonimizado es la forma menos precisa que responde a esa pregunta. No añade nada a lo que el hash por sí solo podría identificar.
- Validar una clave de licencia: ejecución de un contrato (art. 6.1.b RGPD).
- Los veredictos de las comprobaciones y el registro de la conversión: interés legítimo (art. 6.1.f RGPD). Saber qué etapa falla con qué tipo de sitio es la única forma de que el conversor mejore. Antes de escribirlos, quitamos todo lo que identifica el sitio.
- Un informe de defectos que envías: interés legítimo (art. 6.1.f RGPD). Tú decides si envías uno o no.
Compras de licencias
- Emitir y gestionar una licencia comprada: ejecución de un contrato (art. 6.1.b RGPD).
- Conservar los registros de compra: obligación legal (art. 6.1.c RGPD). La normativa contable dice durante cuánto tiempo.
Este sitio web
- El formulario de contacto: aplicación de medidas precontractuales a petición tuya, o interés legítimo en responder a la persona que nos escribió (art. 6.1.b o f RGPD).
- La comprobación antibots de los formularios de contacto y suscripción: interés legítimo (art. 6.1.f RGPD). El objetivo es mantener el spam automático fuera de un formulario que lee una persona. Solo usa las señales que Cloudflare necesita para eso, nada más.
- Contar las páginas vistas de este sitio web: interés legítimo (art. 6.1.f RGPD). Esto se sostiene justamente porque la herramienta no guarda nada en tu dispositivo y no puede seguirte fuera de este sitio.
Decisiones automatizadas
El servicio rechaza una conversión de forma automática cuando se ha agotado la cuota de conversiones o un sitio es demasiado grande. Es solo aritmética sobre un contador y no produce efectos jurídicos para nadie. Si nos escribes al respecto, te responde una persona. No hacemos elaboración de perfiles.
Tus derechos
Según el RGPD puedes pedirnos cualquiera de las siguientes cosas, y basta con un correo a hello@html2wp.dev.
- Acceso: recibes una copia de lo que tenemos sobre ti (art. 15).
- Rectificación: si los datos son incorrectos, los corregimos (art. 16).
- Supresión: borramos los datos (art. 17).
- Limitación: conservamos los datos pero dejamos de usarlos mientras haya algo en disputa (art. 18).
- Portabilidad: recibes lo que nos diste en un formato legible por máquina (art. 20).
- Oposición: puedes oponerte a cualquier cosa que hagamos sobre la base del interés legítimo, incluida la analítica (art. 21). Paramos, salvo que podamos acreditar motivos que prevalezcan sobre los tuyos.
Respondemos en el plazo de un mes. No cobramos nada. No te pedimos que demuestres quién eres más allá de lo necesario para estar seguros de que no entregamos tus datos a otra persona.
Un límite: la mayor parte de lo que guarda el servicio está en forma de hash o agregado y no se puede vincular a una persona, ni siquiera por nosotros. Así que en esas filas no hay nada que entregar, corregir o borrar. El sitio subido desaparece solo pasadas 48 horas.
Si nos equivocamos
Puedes presentar una reclamación ante la autoridad de control eslovaca: Úrad na ochranu osobných údajov Slovenskej republiky, Hraničná 12, 820 07 Bratislava, dataprotection.gov.sk. Si vives en otro país de la UE, puedes acudir en su lugar a tu propia autoridad. Escribirnos primero es más rápido, pero no es un requisito.
Los informes de vulnerabilidades van a la dirección de la página de seguridad, no a un issue público.
Quién es el responsable
El responsable del tratamiento es BELNEM s.r.o., Beckovská 5, Bratislava, Eslovaquia, IČO 53713486. Correo: hello@html2wp.dev. No somos lo bastante grandes para estar obligados a nombrar un delegado de protección de datos y no lo hemos nombrado. La dirección anterior llega a las personas que deciden estas cuestiones.
Darnos datos nunca es un requisito legal. Simplemente, una conversión necesita el sitio, y una licencia necesita una dirección a la que enviar la clave.