html2wp / Gegevens
Wat html2wp met je gegevens doet
Een eenvoudige beschrijving van wat je machine verlaat, waarom, en hoe lang we het bewaren. De README noemt dezelfde dingen alleen terloops. Dit is de versie waar je een klant naar kunt verwijzen.
De conversie zelf
Om een site om te zetten, moet de dienst die site ontvangen. Wanneer je fase 3 draait, uploadt de skill één archief naar api.html2wp.dev:
conversion-manifest.json, de beslissingen die je over de site hebt genomenastro-report.json, de inventaris van de delen die pagina's gemeen hebben (de chrome) uit fase 1astro-project/, inclusiefdist/, de gebouwde sitechrome-at-rest/,chrome-groups.jsonenstyle-specimens/als ze bestaan
Dat is de website van je klant: de opmaakcode, stijlen, scripts en afbeeldingen. Een site omzetten zonder haar te versturen kan niet, en elke formulering die anders suggereert, zou onwaar zijn. SKILL.md noemt de exacte bestanden onder What goes up. Wil je het liever controleren dan ons op ons woord geloven, dan is convert-remote.sh een leesbaar shellscript.
Wat niet in dat archief zit
Je invoermap zit er niet in, want alleen de gebouwde uitvoer gaat mee. node_modules ook niet. En ook niets wat op inloggegevens lijkt: .env en .env.*, *.pem, *.key, id_rsa, credentials.json, .npmrc, .netrc, .ssh/, .aws/, plus elk bestand waarvan de inhoud een privésleutelblok of een duidelijke toewijzing van een geheim bevat. Het filter noemt alles wat het weglaat bij naam in astro-report.json, zodat je kunt zien wat niet is meegegaan.
AI uit je eigen ChatGPT-account stuurt het werk op je computer aan (meten, vergelijken met het origineel en reparaties). OpenAI verwerkt waar de AI aan werkt onder de voorwaarden van je account, net als wanneer je ChatGPT op een andere manier gebruikt.
Hoe lang we het bewaren: we verwijderen de werkruimte 48 uur nadat ze voor het laatst is gewijzigd. Wat overblijft, is een digest (een hash). Daardoor telt een herhaalde run van dezelfde site als herhaalde run en niet als tweede conversie.
De resultaten van de controles
Nadat je een conversie lokaal hebt gecontroleerd, meldt de skill de uitkomst. Dat is verplicht: de volgende conversie wordt geweigerd tot de vorige haar resultaat heeft gemeld. De melding is ook klein, en ze werkt met een witte lijst in plaats van een filter.
- Verstuurd: namen van de controles, het resultaat (geslaagd, mislukt of niet gedraaid), aantallen pagina's, het slechtste percentage voor de getrouwheid en de sleutels van de pagina's die faalden. Sleutels zijn de korte namen die je zelf koos, zoals
aboutofpricing. - Niet verstuurd: geen URL, geen domein, geen opmaakcode, geen tekst, geen screenshots, geen bestandspaden, geen licentiesleutel, geen naam van de site.
Het commando send-verdicts.sh <workspace> --dry-run drukt de exacte inhoud af en verstuurt niets.
Waarom het verplicht is: de controles draaien op je machine, tegen een WordPress die de dienst nooit ziet. Zonder die resultaten weet de dienst dat een conversie niet is gecrasht, maar helemaal niets over de vraag of ze klopte. We bewaren de resultaten 365 dagen.
Het conversieverslag
Eén regel per conversie: hoeveel pagina's, hoeveel chromevarianten, of er een blog of shop was, of het een herhaalde run was, welke fase eventueel weigerde, en de waarschuwingen van de generator over zichzelf. De waarschuwingen worden geanonimiseerd: bestandsnamen en URL's van pagina's worden vervangen voordat de regel wordt geschreven. We bewaren het verslag 365 dagen. Het bevat geen inhoud, geen adressen en geen kenmerken van de site.
Foutmeldingen
Stuur je er een met POST /v1/report, dan slaan we de tekst op precies zoals je hem schreef en mailen we hem via Resend naar een mens die hem leest. We bewaren hem 90 dagen. Plak er niets in wat je niet zo lang bewaard wilt hebben.
Hoe we je herkennen
- Zonder sleutel: conversies worden geteld per IP-adres, zoals Cloudflare dat ziet. We slaan het op als ingekorte hash, nooit als het adres zelf.
- Het land waarin die hash zich bevond, als twee letters, uit de header die Cloudflare toevoegt. Dat staat naast de teller hierboven en nergens anders. In het bijzonder staat het niet in het conversieverslag, dat niets bevat wat jou lokaliseert. Het land vertelt ons in welke landen html2wp wordt gebruikt, maar niet welke conversie van jou was. Onbekend en Tor komen binnen als
XXenT1, en zo bewaren we ze ook, zonder te gokken. - Met licentie: aan de licentiesleutel, die ook als hash wordt opgeslagen. We valideren hem bij UpdatePulse (
updates.designready.studio), dat de sleutel ziet. - Een sleutel controleren of Visual Edit Pro downloaden: de downloadpagina en de controletool
npx html2wp-licensesturen de sleutel die je invult, en verder niets, naar diezelfde licentieserver om de status op te vragen. Het antwoord bevat geen persoonsgegevens, en de pagina en de tool slaan de sleutel niet op.
Een licentie kopen
We verkopen abonnementen via Paddle. Paddle.com Market Limited is de Merchant of Record, de verkoper in de transactie. Voor de betaling is Paddle een zelfstandige verwerkingsverantwoordelijke, geen verwerker die namens ons handelt. Bij het afrekenen verzamelt Paddle je naam, e-mailadres, land en postcode, je betaalgegevens en, als je dat opgeeft, een btw-nummer. Paddle verwerkt ze onder een eigen privacyverklaring.
- Wat Paddle aan ons doorgeeft: je e-mailadres, naam en land, de id's van de transactie en het abonnement, en welk product je kocht. Dat is wat nodig is om een sleutel aan de juiste persoon te geven en de bestelling terug te vinden als je ons schrijft.
- Wat we opslaan: in UpdatePulse, onze licentieserver op
updates.designready.studio, de licentiesleutel, je e-mailadres en naam, de transactie-id, de aankoop- en vervaldatum en de status van de licentie. - De e-mail met de sleutel gaat via Resend, dat hem alleen bezorgt en er verder niets mee doet.
- Bedrijfsgegevens voor de factuur (bedrijfs- of handelsnaam, adres, eventueel een btw-nummer en het e-mailadres) gaan rechtstreeks van je browser naar de checkout van Paddle als je vóór het betalen Voor een bedrijf of freelancer kiest. Paddle zet ze daarna op de factuur. Deze site stuurt ze niet naar onze servers en slaat ze niet op.
- Kaartgegevens bereiken ons nooit. Ze gaan van je browser naar Paddle, en we zouden ze niet kunnen zien, zelfs als we dat wilden.
- Het script van Paddle, Paddle.js, laadt alleen op de prijspagina, van
cdn.paddle.com, omdat de checkout daar opent. Geen andere pagina van deze site laadt het.
Bewaartermijn: zolang de licentie bestaat, en daarna zolang de boekhoudwetgeving ons verplicht aankoopgegevens te bewaren.
Een abonnement beheren
Je beheert een abonnement in het klantenportaal van Paddle, op de eigen site van Paddle. Opzeggen, de kaart wijzigen en facturen downloaden regel je met Paddle, en wij zien alleen het resultaat. Om Pro van maandelijks naar jaarlijks over te zetten, stuurt de pagina voor abonnementsbeheer het e-mailadres dat je invult naar Paddle om je abonnement te vinden. Bestaat er een, dan gaat de link via Resend per e-mail naar het adres dat Paddle heeft. Het adres dat je typte, slaan we niet op.
Het contactformulier
Het formulier waarmee je ons schrijft is de andere plek op deze site waar je iets over jezelf typt. Je geeft er een e-mailadres op, dat verplicht is, een website of organisatie, die optioneel is, en je bericht. Daarnaast heeft het formulier een verborgen veld met de naam company dat mensen nooit zien. Dat veld is er zodat bots die elk veld invullen, zichzelf verraden.
Voordat een bericht wordt verstuurd, controleert Cloudflare Turnstile of een mens het verstuurt en geen script. Het draait alleen op de pagina's met een formulier dat het gebruikt: de contactpagina en de abonnementspagina. Het laadt van challenges.cloudflare.com. Om te beslissen, kijkt Cloudflare naar je IP-adres, de User-Agent van je browser en de TLS-vingerafdruk ervan. Volgens Cloudflare zijn die strikt nodig om mensen van bots te onderscheiden. Wat je in het formulier typt, leest het niet. Wij ontvangen een geslaagd of mislukt en verder niets. Het privacyaddendum van Turnstile van Cloudflare geeft de details.
Je bericht bereikt een mens per e-mail, via Resend. Het gaat niet naar een CRM of op een mailinglijst. We bewaren het zolang het gesprek dat nodig heeft en verwijderen het binnen 24 maanden. Vraag je het eerder, dan verdwijnt het eerder.
Gebruikersgegevens van Google
html2wp gebruikt één API van Google, de Google Ads API, en alleen voor ons eigen zoekwoordonderzoek: welke zoektermen mensen gebruiken, hoe vaak, en hoeveel concurrentie er is. Het is een interne tool. Niemand buiten ons team logt ergens op html2wp in met Google, en de converter vraagt je dat nooit.
- Wat we aanvragen: de scope
https://www.googleapis.com/auth/adwords, verleend door een lid van ons team voor Google Ads-accounts die van ons zijn. Hij wordt gebruikt om gegevens uit de Zoekwoordplanner te lezen: zoekwoordideeën, historisch zoekvolume, concurrentie en biedbereiken. - Waar we niet aankomen: campagnes, advertenties, doelgroepen, facturering of enig ander Google-account dan het onze. Er wordt niets naar Google Ads teruggeschreven.
- Waar het wordt bewaard: het inlogtoken blijft in de sleutelhanger van het besturingssysteem op de computer waarop het werd verleend. Zoekwoordresultaten komen in onze eigen contentplanning terecht, als cijfers over zoektermen, niet over mensen.
- Wie het verder ziet: niemand. We verkopen het niet, delen het niet en gebruiken het niet voor advertenties of om AI-modellen te trainen.
- Het verwijderen: je trekt de toegang in op myaccount.google.com/permissions. Alles wat ervan is afgeleid, verwijderen we op verzoek, gestuurd naar hello@html2wp.dev.
Het gebruik door html2wp van informatie die het van Google API's ontvangt, en de overdracht ervan aan een andere app, voldoet aan het Google API Services User Data Policy, inclusief de vereisten voor beperkt gebruik (Limited Use).
Wie er verder bij betrokken is
- Cloudflare (Verenigde Staten) host deze website en draait de kleine serverfuncties ervan (het contactformulier, de download van Visual Edit Pro en de betalingswebhook). Het staat ook vóór de conversie-API. Het beëindigt TLS en ziet dus elk verzoek en het adres waar het vandaan komt. Op de contact- en abonnementspagina draait het ook Turnstile, de botcontrole die hierboven staat beschreven. Voor die controle is Cloudflare onze verwerker. Het is alleen verwerkingsverantwoordelijke wanneer het dezelfde signalen gebruikt om de botdetectie te verbeteren.
- UpdatePulse op onze eigen server, voor het valideren van licenties. Omdat licenties worden verkocht, bewaart het naast de sleutel ook het e-mailadres en de naam van de klant.
- Paddle (Paddle.com Market Limited, Verenigd Koninkrijk) is de Merchant of Record voor elke aankoop, en een zelfstandige verwerkingsverantwoordelijke voor de betaalgegevens die het verzamelt.
- Resend (Verenigde Staten) bezorgt vier soorten e-mail: licentiesleutels na een aankoop, links voor abonnementsbeheer, berichten via het contactformulier en foutmeldingen over de converter.
- Coolify op onze eigen server, voor de hosting van de conversiedienst en de licentieserver.
- agentmods.dev levert de kleine meetbadge voor de plugin in de footer van elke pagina. Bij het laden van die afbeelding krijgt het je IP-adres en browsergegevens, zoals bij elke afbeelding van een andere site. Verder wordt er niets mee gedeeld.
- Umami, de opensource-analysetool, draait op umami.agentmods.dev en wordt alleen op deze website gebruikt. Het telt paginaweergaven en een handvol klikken: welke knop werd ingedrukt, niet wie hem indrukte. Geen cookies, geen identificatie over sites heen, niets opgeslagen op je apparaat. Daarom heeft deze site geen cookiebanner om weg te klikken.
Geen advertenties, geen tracking over sites heen, geen verkochte gegevens
De enige analysetool is de cookieloze tool hierboven, en die draait op deze website. Je thema belt tijdens het draaien nooit naar onze servers. Die bewering gaat over de opgeleverde site, en ze is exact. Er wordt niets verkocht en niets gedeeld met een adverteerder.
Buiten de EU
Onze servers staan in de EU. Cloudflare en Resend zijn Amerikaanse bedrijven. Verkeer naar deze website en naar de API loopt via de infrastructuur van Cloudflare, net als de Turnstile-controle op de formulieren. E-mails met sleutels, links voor abonnementsbeheer, berichten via het contactformulier en foutmeldingen lopen via de infrastructuur van Resend. Bij beide kan er een doorgifte buiten de EU plaatsvinden. Die doorgiften zijn gebaseerd op de modelcontractbepalingen (Standard Contractual Clauses) van de Europese Commissie. Paddle zit in het Verenigd Koninkrijk, dat volgens de Europese Commissie een passend beschermingsniveau biedt, en het verwerkt de betaalgegevens onder een eigen privacyverklaring. De badge in de footer en het analysescript komen allebei van agentmods.dev, een site die via het wereldwijde netwerk van Cloudflare wordt geleverd. Waar die verzoeken worden beantwoord, hebben we dus niet in de hand. Niets anders in deze lijst verlaat de EU.
Rechtsgrond
Volgens de AVG (de Europese privacywet, in het Engels GDPR) heeft elk van deze verwerkingen een rechtsgrond nodig. Dit is welke voor elk geldt:
De conversiedienst
- Je site ontvangen en omzetten: uitvoering van een overeenkomst (art. 6, lid 1, onder b AVG). Je vroeg om een conversie, en die kan niet zonder de upload.
- Conversies tellen per IP-adres: gerechtvaardigd belang (art. 6, lid 1, onder f AVG). Een gratis versie die niet te tellen is, wordt leeggezogen, en een ingekorte hash is het minste waarmee we haar kunnen herkennen.
- Vastleggen in welk land dat adres zich bevond: gerechtvaardigd belang (art. 6, lid 1, onder f AVG). Weten waar een product wordt gebruikt, bepaalt wat het ondersteunt. Twee letters naast een teller die al gepseudonimiseerd is, is de grofste vorm die die vraag beantwoordt. Het voegt niets toe aan wat de hash alleen al zou kunnen identificeren.
- Een licentiesleutel valideren: uitvoering van een overeenkomst (art. 6, lid 1, onder b AVG).
- Uitkomsten van de controles en het conversieverslag: gerechtvaardigd belang (art. 6, lid 1, onder f AVG). Weten welke fase faalt bij welk type site is de enige manier waarop de converter beter wordt. Voordat we ze wegschrijven, halen we alles weg wat de site identificeert.
- Een foutmelding die je stuurt: gerechtvaardigd belang (art. 6, lid 1, onder f AVG). Je beslist zelf of je er een stuurt.
Aankoop van licenties
- Een gekochte licentie uitgeven en beheren: uitvoering van een overeenkomst (art. 6, lid 1, onder b AVG).
- Aankoopgegevens bewaren: wettelijke verplichting (art. 6, lid 1, onder c AVG). De boekhoudwetgeving bepaalt hoe lang.
Deze website
- Het contactformulier: stappen op jouw verzoek voordat er een overeenkomst is, of gerechtvaardigd belang bij het beantwoorden van wie ons schreef (art. 6, lid 1, onder b of f AVG).
- De botcontrole op het contact- en abonnementsformulier: gerechtvaardigd belang (art. 6, lid 1, onder f AVG). Het doel is geautomatiseerde spam weg te houden uit een formulier dat een mens leest. Er worden alleen de signalen gebruikt die Cloudflare daarvoor nodig heeft, niets meer.
- Paginaweergaven op deze website tellen: gerechtvaardigd belang (art. 6, lid 1, onder f AVG). Dit is verdedigbaar juist omdat de tool niets op je apparaat opslaat en je niet buiten deze site kan volgen.
Geautomatiseerde besluiten
De dienst weigert een conversie automatisch als het conversietegoed op is of een site te groot is. Dat is alleen rekenwerk met een teller, en het heeft voor niemand rechtsgevolgen. Schrijf je ons erover, dan antwoordt een mens. We doen niet aan profilering.
Je rechten
Volgens de AVG kun je ons om elk van de volgende dingen vragen, en één e-mail naar hello@html2wp.dev is genoeg.
- Inzage: je krijgt een kopie van wat we over je hebben (art. 15).
- Rectificatie: als de gegevens onjuist zijn, corrigeren we ze (art. 16).
- Wissing: we verwijderen de gegevens (art. 17).
- Beperking: we bewaren de gegevens maar gebruiken ze niet meer zolang er iets wordt betwist (art. 18).
- Overdraagbaarheid: je krijgt wat je ons gaf in een machineleesbare vorm (art. 20).
- Bezwaar: je kunt bezwaar maken tegen alles wat we op basis van gerechtvaardigd belang doen, inclusief de analyse (art. 21). We stoppen ermee, tenzij we gronden kunnen aantonen die zwaarder wegen dan die van jou.
We antwoorden binnen een maand. Er zijn geen kosten aan verbonden. We vragen je niet om meer bewijs van wie je bent dan nodig is om zeker te weten dat we je gegevens niet aan iemand anders geven.
Eén beperking: het meeste wat de dienst bewaart, is gehasht of samengevoegd en niet tot een persoon te herleiden, ook niet door ons. Voor die regels valt er dus niets af te geven, te corrigeren of te verwijderen. De geüploade site verdwijnt na 48 uur vanzelf.
Als we het fout doen
Je kunt een klacht indienen bij de Slowaakse toezichthoudende autoriteit: Úrad na ochranu osobných údajov Slovenskej republiky, Hraničná 12, 820 07 Bratislava, dataprotection.gov.sk. Woon je in een ander EU-land, dan mag je in plaats daarvan naar je eigen autoriteit gaan. Eerst ons schrijven gaat sneller, maar het is geen voorwaarde.
Meldingen van kwetsbaarheden gaan naar het adres op de beveiligingspagina, niet naar een openbare issue.
Wie verantwoordelijk is
De verwerkingsverantwoordelijke is BELNEM s.r.o., Beckovská 5, Bratislava, Slowakije, IČO 53713486. E-mail: hello@html2wp.dev. We zijn niet groot genoeg om verplicht een functionaris voor gegevensbescherming aan te stellen en hebben er ook geen aangesteld. Het adres hierboven bereikt de mensen die hierover beslissen.
Gegevens aan ons geven is nooit een wettelijke verplichting. Een conversie heeft nu eenmaal de site nodig, en een licentie een adres om een sleutel naartoe te sturen.