Who is responsible for your data
The data controller is Ievgeniia Onokhova, a sole proprietor based in California, United States, trading as UnHTML. For privacy requests of any kind, email support@unhtml.pro.
There are three separate situations where data comes into it: buying a licence, using the plugin, and visiting this website. They are quite different, so they are described separately below.
Your imported pages never leave your machine
This is the part that matters most for a tool like this, so here it is in detail rather than as a slogan.
When you drop an HTML file, a .webarchive or a scene.json into UnHTML, the whole conversion happens locally, inside Figma, on your computer. The file is parsed there, the layers are built there, and the result goes straight into your Figma document. None of that content is uploaded to us, and we never receive it, see it, or store it. We could not produce a copy of a page you imported if you asked us to.
UnHTML contacts our server for exactly one purpose: checking your licence key. That request carries your key and your Figma user ID, and nothing else. It happens roughly once every 7 days. There is no telemetry, no usage analytics, no crash reporting, and no event tracking inside the plugin.
The one optional exception, and where it goes
The plugin has a setting called Fetch remote resources, which is off by default. With it off, remote references in your page are stripped and no page request is made at all.
If you switch it on, the plugin downloads images the page links to and runs scripts for pages that build themselves with JavaScript. Those requests go directly from your machine to whichever servers that page references. They do not pass through us, we are not a proxy for them, and we receive nothing as a result. In effect it behaves like your browser opening the same page, so the sites involved may see your IP address exactly as they would on a normal visit.
The open-source capture CLI and bookmarklet run entirely on your own machine too, and send nothing to us.
When you buy a licence
UnHTML is sold through Paddle, which is the merchant of record. Checkout is a Paddle overlay on this site, and the payment is handled entirely by Paddle.
We never see or store your card details. They go to Paddle and its payment partners, and never reach us in any form.
Paddle collects what it needs to sell to you and to handle tax, which is typically your name, email address, billing country and postcode, and a tax ID where a business purchase requires one. Paddle is the controller for that data in its own right, and how Paddle handles it is set out in Paddle's Privacy Notice.
Paddle then passes us a small amount of information so we can issue your licence. What we hold as a result is:
- the email address you bought with;
- your licence key;
- the tier you bought, Pro or Studio, and how many seats it covers;
- a Paddle transaction reference, so a licence can be matched to an order for support and refunds;
- the date it was issued and its current status.
We use your email address to send you your licence key, to re-send it if you lose it, and to answer support and refund questions. If a change to the product or these terms genuinely affects licence holders, we may email you about that too. We do not send marketing email and there is no mailing list.
The licence key email is sent through Resend, an email delivery service, and arrives from keys@unhtml.pro. Resend receives your email address and the message itself in order to deliver it.
When the plugin checks your licence
Paid features need a periodic check that a key is valid and that a seat is available. The request sends your licence key and your Figma user ID, which Figma provides to the plugin.
The Figma user ID is hashed with a secret salt the moment it arrives and only the hash is stored. The original ID is never written down anywhere. The hash is what identifies a seat, so we can tell "this is the same editor as last week" without ever holding the identifier itself, and it cannot be reversed to recover your Figma account.
Against a seat, we keep the salted hash, which tier it is entitled to, when it was first claimed, and a last-seen timestamp updated on each check. That timestamp is how a seat can be freed up and how key sharing well beyond the licensed number of editors becomes visible.
The licensing endpoint is rate limited to protect it from abuse, which means your IP address is briefly counted against a limit. That counter is held in memory for a matter of minutes and is never written to the database.
The plugin does not report which pages you import, how many layers you made, which fonts were substituted, or anything else about your work.
When you visit this website
We set no cookies of our own, on any page. There is no analytics cookie, no advertising cookie, and nothing that stores an identifier on your device or follows you to another site. So there is nothing here that needs your consent, and no banner to click past.
One cookie does appear on the home page, and it is not ours. Being precise about it: the checkout script brings a single bot-protection cookie called __cf_bm from Paddle's network, described below. It is a security measure, and security cookies are the one category the law does not require consent for.
We do count visits, using Vercel Web Analytics. It records the page you viewed, the site you arrived from, and rough device and country information, and it derives a temporary daily hash from your request to tell one visit from another. That hash is not stored on your device, cannot be tied back to you, and does not persist beyond the day. There is no cookie, no localStorage, no advertising identifier, and no profile.
We use it to answer one question: are people finding the site and does the page work. We run no advertising, have no ad pixels, and do not use any of this for cross-context behavioural advertising.
This replaced Google Analytics, which set cookies and loaded before we had asked you anything. Rather than put a banner in front of you to make that lawful, we removed the thing that needed consent. The three policy pages you are reading now load no analytics at all and run no JavaScript whatsoever.
The site is hosted on Vercel, which also keeps standard server logs including IP addresses for security and reliability.
The one cookie on this site, and it is Paddle's
The home page loads Paddle's checkout script so that the buy buttons work. That happens when the page opens, not when you click, and it is what brings the __cf_bm cookie: bot protection belonging to the network in front of Paddle, set on Paddle's own domain, lasting about half an hour, and unreadable by JavaScript. It exists to tell a person from an automated attack. It is not analytics, it does not identify you, and we cannot read it.
The three policy pages, including this one, do not load that script. They make no third-party requests at all and set no cookies whatsoever.
If you open the checkout overlay, Paddle may set further cookies of its own to run the payment. Those are Paddle's and are covered by Paddle's Privacy Notice. There is no account to log into here, and no session tracking.
Why we are allowed to process it
For people covered by UK or EU data protection law, our lawful bases are:
| What | Lawful basis |
|---|---|
| Licence records, and emailing you your key | Performance of a contract. We cannot give you what you paid for without them. |
| Support and refund correspondence | Performance of a contract, and our legitimate interest in answering you. |
| The seat check and last-seen timestamp | Legitimate interests: enforcing the licence you agreed to and preventing keys being shared far beyond their seat count. |
| Rate limiting by IP address | Legitimate interests: keeping the endpoint available and resisting abuse. |
| Counting visits with Vercel Web Analytics | Legitimate interests: knowing whether the site works. No consent notice is needed because no cookie or device identifier is used. |
| Records of a sale kept for tax | Legal obligation. Mostly this sits with Paddle as merchant of record. |
Who else processes your data
We use a small number of providers. There are no others, and we do not sell your personal information or share it with data brokers, advertisers or anyone buying access to a list.
| Provider | What it does | What it handles |
|---|---|---|
| Paddle | Merchant of record: takes payment, handles tax, issues refunds | Your name, email, billing country and postcode, tax ID, payment details |
| Vercel | Hosts this website and the licensing endpoint, and counts visits | Server logs including IP addresses; page views and rough device and country information |
| Supabase | Hosted Postgres database holding licence and seat records | Buyer email, licence key, tier, salted seat hashes, last-seen timestamps, Paddle transaction reference |
| Resend | Delivers the email carrying your licence key | Your email address and the contents of that email |
One thing to be transparent about
The same Paddle account serves UnHTML and another product of ours, kott.io, so the code that issues UnHTML licence keys runs on kott.io's infrastructure, and the database holding UnHTML licence records is the one belonging to that project.
The practical effect is that your UnHTML buyer email and licence record live inside systems shared with kott.io. The same person, Ievgeniia Onokhova, is the controller for both, so your data has not gone to a third party. UnHTML records are kept in their own separate tables, they are not merged into any kott.io customer account, and having bought UnHTML does not create a kott.io account or change anything about one you happen to have. UnHTML's own website connects to that database through a deliberately restricted role that can run exactly two licensing operations and cannot read any other table.
Where your data goes
We are based in the United States, and the providers above are US companies or operate globally, so your data is processed in the United States and potentially in other countries where those providers run infrastructure.
If you are in the EEA, the UK or Switzerland, that means your data is transferred outside your home country. Those transfers rely on the safeguards each provider has in place, which are generally the European Commission's Standard Contractual Clauses, the UK Addendum, and where applicable certification under the EU-US and UK-US Data Privacy Framework. Ask us and we will tell you what applies to a particular provider.
How long we keep things
- Licence records are kept for as long as the licence exists. A paid licence is perpetual, so unless you ask us to delete it, the record stays: it is the thing that lets your key keep working and lets us help you when you lose it.
- Seat records are kept while the licence is active and are deleted when a seat is released or a licence is revoked or refunded.
- Refunded and revoked licences keep a minimal record, being the key and its status, so a cancelled key cannot quietly be reactivated. Tax records of the sale are retained by Paddle for as long as its obligations require.
- Support email is kept while it is useful for context and then deleted.
- Rate-limit counters live in memory for minutes and are never stored.
- Server logs and visit statistics are kept for Vercel's standard retention periods, which are not under our long-term control. The visit statistics are aggregate counts, so after the day they were collected there is nothing in them that relates to you individually.
Your rights
Depending on where you live, you have some or all of these rights over your personal data: to access a copy of it, to have it corrected, to have it deleted, to restrict or object to how we use it, to receive it in a portable form, and to withdraw consent where we relied on it.
To use any of them, email support@unhtml.pro and say what you want. You do not need to quote a law or fill in a form. We will reply within 30 days, usually much sooner, and it is free. We may ask you to confirm the email address a licence was bought with, purely so we do not hand your records to someone else.
Your licence record is what makes your key work. If we delete it, the key stops working and the paid features stop, and because there is nothing left to prove the purchase we will not be able to restore it later. It is entirely your call, and we will do it if you ask. We will just make sure you meant it first.
If you are in the EEA or the UK and you think we have handled your data badly, you can complain to your local data protection authority. We would appreciate the chance to fix it first.
If you are in California
California residents have the right to know what personal information is collected and how it is used, to request deletion or correction of it, to opt out of its sale or sharing, and not to be treated worse for exercising any of these rights.
We do not sell personal information, and we do not share it for cross-context behavioural advertising. Everything collected is described above. Use the same email address to make a request.
Children
UnHTML is a professional design tool and is not aimed at children. We do not knowingly collect personal data from anyone under 16. If you believe a child has given us data, email us and we will delete it.
Security
Everything travels over HTTPS. Licence keys are checked server-side rather than trusted from the client. The Figma user ID is salted and hashed before storage, so a copy of the database would not reveal whose Figma accounts hold seats. The website connects to the licence database through a role restricted to two specific operations, so a flaw in the website cannot be used to read data beyond them. Card details never reach our systems at all.
No system is perfect, and we will not pretend otherwise. If you find a security problem, please email support@unhtml.pro and we will take it seriously.
Changes to this policy
If what we do changes, this page changes with it, and the date at the top shows when it last did. If a change materially affects people who already hold a licence, we will email licence holders rather than relying on you re-reading this page.
Contact
Email support@unhtml.pro. Privacy questions, access and deletion requests, and anything you think this page gets wrong all go to the same place, and a person reads it.