Privacy policy
We collect as little as the tools need to work, keep it only as long as it’s useful, and never sell it. Here is exactly what that means.
The short version
- If you sign up for alerts or early access, we keep your email address and what you signed up for, after you confirm it.
- If you use Expiry Watch, we keep the domains you watch and their check results. Check history is deleted after 90 days.
- Chart Link draws charts in your browser. The data you paste is not sent to us.
- If you send us a note from the site, we keep it, with your name and email address if you gave them, for 12 months.
- If you email us, Hal, the AI agent that runs Boring Utils, reads it, and we keep the conversation for 12 months.
- We don’t use tracking cookies, run ads or sell data. Our analytics are cookieless.
- Paid plans are sold through Paddle, our merchant of record, takes the payment, so your card details never reach us.
- On a paid plan, we also keep the alert addresses you add (each confirms itself first), your client group names and what you import.
- Unsubscribe or ask, and we delete your data within 30 days.
Who is responsible for your data
Boring Utils (boringutils.com) is operated by Lucas Puhl Gasperin, based in Brazil, who is the controller of the personal data described here (the “controlador” under Brazil’s LGPD). Contact for anything in this policy: hello@boringutils.com.
What we collect, why, and for how long
- Email address
- Collected when you sign up for Expiry Watch alerts or a plan’s early-access list, to confirm the address (double opt-in) and send what you asked for. Kept until you unsubscribe or ask us to delete it, then deleted within 30 days. If you never confirm it, we delete it a week after the confirmation link expires.
- Confirmation and unsubscribe records
- When and how you confirmed, to prove you asked for our email and to make unsubscribing one click. Kept as long as the email address.
- Sign-in records
- When you sign in to your plan’s page, which every address has, a fingerprint of the one-time link we emailed you (a hash, not the link), deleted once it’s used or an hour has passed, and a record of the signed-in browser: a fingerprint of its cookie, the address it belongs to, and when it started, was last used and stops working. Never your IP address, browser or location. Deleted when you sign out, after 14 days without use, or with your email address.
- Early-access choices
- Which planned plan you left your email on, to tell you when it opens. Kept as long as the email address.
- Watched domains
- The domains you add to Expiry Watch monitoring, to check them daily (and hourly, on a paid plan) and alert you. Kept until you remove them or unsubscribe, then deleted within 30 days.
- Alert addresses you add
- On a paid plan, the other email addresses you add to receive alerts, including a Slack or Teams channel’s email address. Each one confirms itself before it gets any email, and can unsubscribe at any time. Kept until you remove it or it unsubscribes, then deleted within 30 days. If it unsubscribes, we keep a one-way fingerprint of it (a hash, not the address) for a year, so the same plan can’t add it again; after each confirmation email we keep one for two days, so removing and adding it again can’t email it sooner.
- Client groups and imports
- On an Agency or MSP plan, the names you give client groups and the domains you import from a spreadsheet, to organize and run your plan. Kept like watched domains: until you remove them, then deleted within 30 days.
- Scheduled jobs and their pings
- If you use scheduled-job checks (the free plan has one job), each job’s name and schedule, and its client group on an Agency or MSP plan, to run it, and when its latest ping arrived, to tell you when it’s late. We keep a fingerprint of each job’s link, never the request itself or the address it came from. A job is kept until you delete it or unsubscribe, then deleted within 30 days; its ping times are kept like check history.
- Check results and history
- For domains you monitor, we keep what each daily check found for 90 days, to spot changes and decide when to alert. One-off checks, on the website or through our MCP server, don’t create monitoring history. Domain registration lookups are cached and shared by everyone, and cleared after about 7 days without a new lookup. The checker’s logs record which domains were checked and are kept for up to 5 weeks.
- DNS records of watched domains
- For each domain you watch, its latest public DNS records: its mail, SPF, DMARC, CAA and name server records, which can include the addresses its DMARC reports go to. We keep them to spot changes, with the domain’s check results, and delete them with those.
- Notes you send us
- What you write in the note form on the home page, the page you sent it from, and, only if you fill them in, your name and email address, so we can read it and reply. Each note is also forwarded to our inbox by email. Kept for 12 months, then deleted.
- Email you send us
- Hal is the AI agent that runs Boring Utils. If you write to hello@boringutils.com or hal@boringutils.com, we keep your message, your address and our replies, so Hal can read and answer them. Kept for 12 months, then deleted.
- Server logs
- Created on any visit or request, to deliver the site, keep it working and stop abuse. Kept for a short period set by our hosting provider.
Check results describe the domain, not you: certificate dates, issuer and chain, whether the certificate matches the hostname, the domain’s registration expiry, registrar, statuses and nameservers, and failed checks. Server logs include your IP address, browser user agent, the address requested and the time; they are processed by Cloudflare, which hosts the site.
We also keep anonymous daily counters, such as how many checks ran or how many people signed up on a given day. They contain no personal data. They also record which kind of site sent the visit, such as a search engine, as a category, never the address of the page you came from.
What we don’t collect
- Chart data. Chart Link’s builder runs entirely in your browser, so the CSV or JSON you paste and the charts you make are never sent to us. If you choose to share an editor link, it carries all the data you pasted, including columns the chart leaves out, to whoever receives it. An exported PNG or SVG contains just the rendered chart.
- Tracking cookies. We set no tracking cookies. When you press the button in a sign-in email, we set one cookie on that browser so it stays signed in to your plan’s page for 14 days; it’s used for nothing else, and Sign out removes it. Our analytics use Cloudflare Web Analytics, which is cookieless and, in Cloudflare’s words, “does not collect or use your visitors’ personal data”. Cloudflare may set strictly necessary cookies to protect the site, for example after a security challenge.
- Your theme choice (light, dark or system) is saved in your browser’s local storage, on your device only. We never receive it.
- Payment details. You pay Paddle, and your card or bank details go to Paddle, never to us.
How Expiry Watch checks a domain
To check a certificate, our checker opens a TLS connection on port 443 to each of the domain’s public addresses (up to 4 IPv4 and 4 IPv6), reads the certificate each presents, and closes the connection. For a domain you watch, we keep the addresses checked and the certificate each served, with the check results. It doesn’t fetch pages, follow redirects or connect to private networks. For a domain you watch, it also looks up the domain’s public DNS records, such as its mail, CAA and name server records, through the DNS resolvers our server uses. To check a domain’s registration expiry, we look up its public registration data over RDAP. The CAA record checker asks Cloudflare’s public DNS resolver for the CAA records of the name you enter. The site you check may see our checker’s IP address in its logs, once per address.
For a certificate from a certificate authority that publishes a suggested renewal window (Let’s Encrypt, Google Trust Services, ZeroSSL and Sectigo), we ask that authority for it, sending only the certificate’s public identifiers. While a watched certificate’s renewal looks late or its expiry is near, and for up to 30 days after it expires, we also search the public Certificate Transparency logs for newer certificates for the name: through crt.sh (run by Sectigo), and through Cert Spotter (by SSLMate) if we start using it. These services receive the domain name, never your email address.
Why we’re allowed to process it
- Your consent for alert and early-access emails (LGPD article 7, I; GDPR article 6(1)(a)). You give it by confirming your address, and you can withdraw it at any time by unsubscribing.
- Providing the service you asked for, such as monitoring the domains you added, or reading and answering a note or an email you sent (LGPD article 7, V; GDPR article 6(1)(b)).
- Legitimate interests in keeping the site secure and working, and in understanding how it’s used through anonymous counts (LGPD article 7, IX; GDPR article 6(1)(f)).
- Legal obligations, such as keeping records of paid-plan payments (LGPD article 7, II; GDPR article 6(1)(c)).
Who processes data for us
We use a few providers to run the service. Each processes data only to provide its service to us, under its own data processing terms.
- Cloudflare
- Hosts the website and API, stores data in its D1 database, and provides cookieless analytics. It handles all the data above, and server logs. Its Turnstile check confirms that a person, not a bot, sent a form; it doesn’t read what you type into the form.
- Resend
- Sends our email: confirmations, alerts and early-access notices, and forwards notes sent from the site to our own inbox. It handles email addresses and the content of those emails.
- OpenAI
- Provides the AI models Hal runs on. It handles the email you send us and our replies.
- Hostinger
- Runs the servers that perform certificate checks and run Hal. It handles the domains being checked and their results, and the email Hal reads.
These providers may process data outside Brazil and outside the European Economic Area, including in the United States. We don’t sell personal data or share it with advertisers. Checking a domain means asking others about it: registries (over RDAP), certificate authorities and certificate-log search services receive the domain names being checked, never an email address, as How Expiry Watch checks a domain describes. Apart from that, we disclose personal data to anyone else only if the law requires us to.
When you buy a paid plan
The paid plans (Plus, Agency and MSP) are sold through Paddle.com, our online reseller and merchant of record. You give your payment details to Paddle, which handles them under its own privacy notice. Paddle shares with us what we need to provide and support your plan, such as your email address, your country, what you bought, and whether each payment or refund went through. We keep only what runs the plan: its plan, status and billing period and Paddle’s ids for you and your subscription, as long as your email address; each event Paddle sends us (its id, kind and time) for 90 days; and the id of a subscription replaced or cancelled as a duplicate for 400 days, so late events about it change nothing. Paddle keeps the payment records.
A paid plan belongs to the email address that bought it: we link Paddle’s records to that address to run your plan, and you manage it from links we email you. There is no password.
Your rights
Under Brazil’s LGPD (article 18) and, if you are in the European Economic Area or the United Kingdom, the GDPR, you can ask us to:
- confirm whether we hold data about you, and give you a copy;
- correct data that is wrong or incomplete;
- delete your data, or anonymize it;
- send your data to you or another provider in a portable format;
- tell you who we share it with;
- stop processing it, or object to processing based on legitimate interests;
- withdraw consent, which you can also do by unsubscribing.
To use any of these rights, email hello@boringutils.com from the address the request is about (or tell us the domain, for monitoring data). We may ask you to confirm the request from that address. We reply within 15 days.
You can also complain to a data protection authority: in Brazil, the Autoridade Nacional de Proteção de Dados (ANPD); in the EEA or the UK, the authority where you live or work. We’d appreciate the chance to fix the problem first.
Unsubscribing and deletion
Every email we send has a one-click unsubscribe link. When you unsubscribe, or ask us to delete your data, we delete your email address, your early-access choices, your watched domains and their check history, your scheduled jobs and their pings, and, on a paid plan, the alert addresses and client groups that belong to it, within 30 days. If the address has a paid plan that is still running, unsubscribing stops our email but not the plan, which Paddle bills until you cancel it: we pause its domains instead of removing them, keep the plan’s data while it runs, and delete it within 30 days after the plan ends. Deleted data can stay in our database provider’s point-in-time recovery history for a limited period, after which it is gone. Anonymous counters are not affected, because they contain nothing about you. The exception is the few paid-plan records When you buy a paid plan lists, kept for the times it gives.
Security
The site and its API are served over HTTPS. Confirmation tokens are stored as hashes, access to production systems is limited to the people and services that run them, and secrets are never stored in our code. No system is perfectly secure; if we ever learn of a breach that affects your data, we will tell you and the authorities as the law requires.
Children
Boring Utils is made for adults using it for work or their own projects. It isn’t directed at children, and we don’t knowingly collect their data.
Changes to this policy
When this policy changes in substance, we update the date at the top. If a change affects how we use your email address or your watched domains, we tell confirmed subscribers by email before it takes effect. See also our terms and acceptable use policy.