PRIVACY

What we collect, and what we deliberately don't

Plain language, because that is the whole philosophy here. This is the full version: who is responsible, what is stored, why we are allowed to store it, how long it stays, and what you can demand at any moment. Last updated 2026-09-11.

WHO IS RESPONSIBLE FOR YOUR DATA

KWS Labs is run by Ilan Kushnir, an individual maker based in Israel. For data-protection purposes that person is the controller: there is no separate company standing between you and the person who reads your email.

Contact for anything on this page, including every right listed below: [email protected]. There is no separate data-protection officer, because the operation is not large enough to require one; the address above reaches the operator directly.

The services behind this site (the site itself, the API, the mailing-list system, the analytics, the support inbox and the blog) run on our own hardware in Israel, not on a rented cloud. The short list of outside companies that do see something is named further down, in full.

WHAT WE COLLECT, WHY, AND FOR HOW LONG

Each entry names the data, the purpose, the legal basis under the GDPR, and the retention. Where the basis is consent, you can withdraw it at any time and we act on it without asking why.

General updates list. Your email address, and, if you chose one, which build interests you. Purpose: writing to you about Build My Homelab and the blog. Basis: consent, confirmed twice (you ask, then you confirm from a link we email you; nothing is sent until you confirm). Retention: until you unsubscribe or ask us to remove you, after which the address is deleted from the list. Every email carries an unsubscribe link that works without contacting anyone.

Founding Access purchase intent. Collected on the landing page at /build-my-homelab/. Your email, which offer you asked for (its id and price), when you asked, and, if your visit carried them, short campaign tags such as utm_source. Purpose: sending you the checkout link when it opens, and counting how many people asked. Basis: consent, confirmed twice: we email you a confirmation link, and your address stays unconfirmed on that list until you click it. Retention: until the offer closes or you ask to be removed. No payment details exist to collect: no card is entered anywhere in this flow. This lives on its own separate list with exactly one purpose, and it is never merged into the general updates list. If that list is unreachable at the moment you submit, the record waits in a private fallback store on our own server instead, and our server keeps retrying automatically until the list accepts it - at which point your confirmation email goes out and the local copy of your address is deleted. Duplicate submissions are collapsed into one, and a fallback email becomes eligible for deletion after 180 days and is then removed by an automatic cleanup that runs every six hours, so no later than 180 days and six hours after it was stored. Once the list has your address, the local copy keeps only the anonymous experiment numbers, not your email.

Your Founding Access reservation. Separate from the record above, and disclosed separately because it works differently. When you ask for Founding Access we also write one small row that says which page you asked from, which offer and which printed terms (the price, the currency, the length of the window), when we first saw you, and where your reservation stands - waiting for you to confirm, active, or withdrawn. Purpose: honouring at checkout the price the page you were on promised you, and telling a signup from the main page apart from one from a persona page. Basis: legitimate interest in being able to keep the offer we made you, which is also the only way you get the price.

That row does not contain your email address, your name, your message or your campaign tags. Instead of your address it holds a keyed pseudonym: a one-way HMAC-SHA256 of your address computed with a secret key that only this server holds. It cannot be turned back into your address, and destroying the key destroys the link for good - but it is not anonymous either, because anyone who types the same address into checkout computes the same pseudonym, which is exactly how your reservation is found. So we call it what it is: pseudonymous data about you.

Retention: for the life of the offer, because that is the whole point of it - it has to outlive the signup and still be readable when checkout opens. It deliberately does not expire with the fallback retention clock described above, which covers raw email addresses only.

How it is kept current: there is no tracking of your inbox and no webhook. When checkout looks your reservation up, the server asks the mailing list, at that moment, whether your membership of the Founding Access list is confirmed - and records what it is told. Confirming from the link in your email makes the reservation active. Unsubscribing withdraws it, both in the list and in this row, and no price is held for a withdrawn row. If the list cannot be reached, nothing is honoured and nothing is guessed. There is no page or endpoint anywhere on this site that will answer "does this address have a reservation" - that question is only ever answered inside checkout, to the person who just typed their own address into it.

Deletion: asking us to remove your purchase-intent email removes this row too, in the same request. The operator tool that does it deletes the fallback record and every reservation row your address resolves to, and reports back only how many of each went.

Questions you send us. Your email and the text of your question, plus the reply thread. Purpose: answering you, and remembering the conversation if you write again. Basis: consent when you send it, and our legitimate interest in keeping a support history. Retention: while the conversation is useful, and deleted on request. Submissions are scanned for things that look like passwords or keys and rejected: we refuse to store secrets even by accident.

Your account. Your email address, an optional display name, a hashed password (never the password itself), and the sign-in sessions you have open. Purpose: letting you sign in and carry your build between your own devices. Basis: performance of a contract with you. Retention: for as long as the account exists. Ask us to delete it and the account and everything synced to it goes.

Your build documents. Four documents: the questionnaire answers, your Blueprint, your lesson progress, and the Server Passport. Purpose: the product itself. Basis: performance of a contract. Retention: until you delete them or delete the account. They are scanned for anything resembling a password, key or token, and a save containing one is refused in full rather than stored.

Anonymous analytics. Page views, referrers, country, and which of a short list of page events fired. Purpose: knowing which pages work. Basis: legitimate interest in running a site we can improve, balanced by the fact that the data is aggregate and identifies nobody. Retention: aggregated counts only. We use self-hosted Umami: no advertising trackers, no cross-site identifiers, no cookies for analytics, and the data never leaves our own server.

Anti-bot check. When you submit a form, Cloudflare Turnstile checks that a browser, not a script, is submitting it, and Cloudflare receives your IP address as part of that. Purpose: keeping automated junk out of forms that email real people. Basis: legitimate interest in the security of the service. Retention: we store nothing from the check beyond pass or fail at the moment of submission.

Server logs. Standard web-server records: IP address, timestamp, requested path, response code, user agent. Purpose: security, abuse prevention and debugging. Basis: legitimate interest. Retention: short-lived operational logs, rotated on our own server.

Payments. Nothing yet: no product is for sale on this site today, and no card details are collected anywhere. When purchases open, payment will run through a licensed payment provider that handles card data on its own systems. We will see who paid, what for, and when, and never the card number. This page will be updated to name that provider before the first payment is possible.

WHERE YOUR PROGRESS LIVES

The portal (questionnaire answers, your Blueprint, lesson progress, the Server Passport) is written first to your own browser's localStorage. Clearing your browser data clears that copy.

While you are signed out, that local copy is the only copy. Nothing about your build is sent to us.

While you are signed in, the same four documents are synchronized to your account on our own server, so the build follows you between devices. We store them as you saved them. Deleting your account deletes them.

The account itself is invite-only while we prepare for the official opening.

WHO ELSE SEES ANYTHING

The full list of outside companies involved in running this site, and exactly what each one gets. Nobody else receives your data, and none of these are advertising companies.

  • Cloudflare (USA/global) sits in front of the site as network and bot protection, and provides the Turnstile check. It processes your IP address and connection metadata.
  • Resend (USA) sends transactional email: confirmations, replies and notifications. It processes the recipient address and the message.
  • Apple iCloud Mail (USA/EU) hosts the kwslabs.com mailboxes, so an email you send us is stored there as well as in our own support system.
  • Google Fonts (USA) serves the typefaces this site uses, which means your browser requests them from Google and Google sees your IP address in doing so.
  • A payment provider, once purchases open. It will be named here first.

Everything else, including the mailing-list system, the analytics, the support inbox, the blog and the product itself, runs on our own machines. We do not sell, rent or share your data with anyone, for any purpose, ever.

International transfers. We are based in Israel, which the European Commission recognizes as providing an adequate level of data protection, so transfers from the EEA to us need no further mechanism. The companies above may process data in the United States and elsewhere; where that involves an EEA transfer, they do so under the European Commission's Standard Contractual Clauses or their own adequacy framework. We can point you to a given provider's terms on request.

COOKIES AND LOCAL STORAGE

There is no cookie banner here because there is nothing to consent to: we set no advertising or tracking cookies at all, and the analytics work without cookies.

Two things are stored in your own browser. A sign-in session cookie, set only when you sign in, which is strictly necessary to keep you signed in and disappears when you sign out. And localStorage, which holds your build documents and a few interface preferences on your own device. Neither is shared with anyone, and clearing your browser data removes both.

YOUR RIGHTS

If the GDPR applies to you (you are in the EEA or the UK), you have all of the following. We apply them to everyone who asks, wherever they live, because splitting people into rights tiers is not something we want to do.

  • Access a copy of what we hold about you
  • Rectify anything wrong or out of date
  • Erase it (the "right to be forgotten")
  • Restrict or object to processing, including anything based on our legitimate interest
  • Port your data to yourself or another provider in a machine-readable form
  • Withdraw consent at any time, without affecting what was lawful before you withdrew it
  • Complain to a supervisory authority in your country

To use any of them, write to [email protected]. We answer without undue delay and in any case within one month, free of charge. We may ask you to confirm you control the email address in question, which is a protection for you, not an obstacle. If we ever refuse a request we will say why, and you can complain to your supervisory authority regardless.

Israeli residents have parallel rights under the Protection of Privacy Law, including access to your data and correction of it, and may address the Privacy Protection Authority.

There is no automated decision-making here that produces legal or similarly significant effects. Your Blueprint is generated from your own answers and is a recommendation you are free to ignore.

SECURITY, CHILDREN, CHANGES

Security. Traffic is encrypted in transit, passwords are stored only as salted hashes, admin surfaces sit behind a separate identity gate, and paste surfaces actively refuse anything shaped like a secret. No system is perfect: if a breach ever affects your data, we will tell the people affected and the relevant authority, promptly and in plain language, rather than quietly.

Children. This site is not directed at children and accounts are for people aged 18 or over. We do not knowingly collect data from children. If you believe a child has given us data, write to us and it will be deleted.

Changes. When this page changes materially we update the date at the top, and if you are on a list or hold an account we tell you by email before the change takes effect. Older versions are available on request.

YOUR DATA, YOUR CALL

Want your email removed from a list, your question deleted, or a copy of everything we hold? Write to [email protected] and it is done, including removing a purchase-intent email from the list, from the fallback store, from your Founding Access reservation row, or from all of them - the internal deletion tool clears the fallback record and the reservation row in one action. This page is written by the builder, in his own words, and reviewed against the obligations above. If anything here is unclear, ask, and see also the Terms.