YOUR PRIVACY
Your information.
What happens to it.
Last updated 23 September 2026.
Who is responsible
I’m Mandeep Sangwan, based in India. I operate sangwan.me and decide how personal information is used for this site. For privacy questions or to exercise your rights, email mandeep.sangwan.me@gmail.com.
This notice covers the public website and its administration. It distinguishes features available now from features still being developed. 1:1 booking requests and contact messages are open. Moderated comments and newsletter subscriptions are open. Choosing a calendar slot does not reserve it; a booking requires email verification and my approval.
Reading, searching and choosing a time
You do not need an account to read posts or use RSS. Search runs in your browser against a downloaded article index; the site does not send your search words to a search service. Images, fonts and diagrams are served with the site. There are no advertising scripts, embedded social-media trackers or visitor analytics in the application.
Cloudflare hosts and protects the site. Serving a page or checking availability involves connection data such as your IP address, requested URL, request time and browser/network information. Cloudflare may process security and diagnostic information as part of those services. The public availability endpoint uses your IP address for rate limiting. Its one-minute limit is not a promise that every provider log is erased after one minute.
Your browser suggests a timezone, which you can change. An availability request sends the selected date, timezone and meeting duration to the site’s API. It checks a cached availability schedule; it does not give you access to private calendar entries. Selecting a date or time does not create a booking record or send an invitation.
Where GDPR applies, my basis for necessary delivery and security processing is legitimate interests: keeping this publication available, preventing abuse and providing the availability information you request. I do not use this information for advertising or build a marketing profile from it.
Browser storage and cookies
The theme switch stores your chosen light or dark preference in this browser’s local storage under theme. It remains until you change it or clear the site’s browser data. It is not a unique visitor identifier and is not sent to an analytics service.
The public application does not deliberately set advertising or analytics cookies. This is not a claim that every request is cookie-free: Cloudflare security challenges can use cookies if triggered. Its cookie documentation describes those technologies. Necessary storage and user-requested preferences are different from optional tracking; optional non-exempt storage would require an appropriate choice before it is enabled.
The private admin site uses secure login/session cookies and stores its own theme preference. Administrative sessions expire after 15 minutes. Those cookies are for authorised administrators, not a requirement for reading posts. You can clear browser storage in your browser settings; doing so removes saved preferences and may end a login session.
If you email me
If you write to the privacy contact or contact me directly, I receive your email address, message and any name or attachments you provide. My mailbox is provided by Google. I use the information to reply, handle your request and retain a reasonable correspondence record, based on legitimate interests. Please avoid sending passwords, payment details or sensitive personal information that is not needed for the conversation.
My retention policy for enquiries is up to 12 months after the conversation or request is closed. Information needed for an unresolved complaint, legal obligation or legal claim may be retained for that purpose for longer, with access limited. Provider backups and records can have separate deletion cycles. I will explain any relevant exception when handling a deletion request.
Emailing me does not subscribe you to a newsletter.
Sending a message through this website
The message form collects your name, email address and message. Cloudflare stores these in the private admin inbox, together with submission time, read/closed status and notification delivery state. A random submission identifier prevents duplicate messages when you retry. Turnstile and short-lived request limits help prevent abuse; your browser sends a challenge token and Cloudflare processes your IP address for that check. The application does not store that IP address in the message record.
Your name, supplied email address, message and submission time are also sent to my authenticated, self-hosted ntfy service to alert me. The address is not email-verified, and no automatic email is sent to it. If I reply, I use my email service. Messages are used to respond to your enquiry and prevent abuse, on the basis of legitimate interests where GDPR applies. They do not create a booking or newsletter subscription. Closed messages are automatically removed from the application after twelve months; delivered notification and mailbox copies require separate cleanup.
Requesting a 1:1 conversation
The booking form collects your name, email address, conversation context, selected start/end time, duration and timezone. These fields are needed to verify your email, review your request and arrange the conversation. Verification status, booking/cancellation history and limited delivery/security records are also stored. Please do not include passwords, payment information or sensitive information that is unnecessary for the conversation.
Cloudflare provides the application storage and sends verification and confirmation emails. Verification links expire and can be used once. A request remains unconfirmed until I review it. When I approve a request, Google Calendar receives your email address and the necessary meeting details to create the invitation and Google Meet link. Your private conversation context is not copied into the calendar event or confirmation email. Google also processes information when you use Calendar or Meet; this site does not record calls.
Cloudflare Turnstile checks the booking form for abuse. It processes browser/device and network signals, including your IP address, to distinguish legitimate requests from automated traffic. The server validates its response before accepting a booking request. Rate limits and delivery limits may temporarily prevent submissions. See Cloudflare’s privacy policy for its processing. If a security check prevents your request, email me instead.
Where GDPR applies, I rely on legitimate interests in responding to requested correspondence, arranging conversations and preventing abuse; steps at your request before a contract apply where a commercial engagement is involved. Booking does not subscribe you to a newsletter. You can request cancellation, correction or deletion by replying to the booking email or contacting the privacy address above.
Subscribing to the newsletter
The newsletter collects your email address, explicit subscription consent, confirmation time, the consent wording version and subscription status. It does not ask for your name. Cloudflare stores these records and sends the confirmation email; you must confirm before receiving newsletters. Turnstile and request limits help prevent abuse. The application does not store your IP address in the subscription record.
Amazon Web Services (AWS) sends newsletters through Amazon SES in its Mumbai region and provides delivery, bounce and complaint feedback through SNS. AWS receives your email address, the newsletter content, unsubscribe links and delivery identifiers. I keep limited delivery status records to identify failures and stop further sending after a hard bounce or complaint. Open and click tracking are disabled: I do not use tracking pixels or rewrite links to measure your reading.
Where GDPR applies, newsletter sending relies on your consent. You can withdraw it at any time using the unsubscribe link in each newsletter, your mail application’s supported unsubscribe action, or the privacy contact above. Withdrawal does not affect the lawfulness of earlier processing. Booking, commenting or sending a message never subscribes you. Delivery security and minimal suppression records rely on legitimate interests in preventing abuse and respecting your choices.
Unsubscribing stops new newsletter send authorizations; an email already handed to the delivery provider may still arrive. A keyed identifier derived from your email address is retained to prevent unwanted sending. Fresh, explicit signup and confirmation can reverse an ordinary unsubscribe; hard-bounce, complaint and erasure suppressions require review.
Features still being developed
Gravatar and other third-party avatar lookups are not enabled. If offered later, the form must explain the email-derived identifier sent to the provider and obtain the required choice before a lookup. Helpful reactions store the article identifier and a random vote identifier to avoid counting retries twice. Your browser stores that identifier and whether the vote was saved in local storage. Clearing browser storage resets this local preference. We do not store your name, email or IP address with a vote; Cloudflare uses the request IP transiently to rate-limit submissions. The shared website counter stores only a running total. Requests are rate-limited using the IP address transiently; no name, email, IP address or per-visitor history is stored with the counter. Open tabs can share the latest total within your browser without storing a visitor identifier.
Retention
These are the retention periods I apply. Automatic cleanup covers unverified booking requests after seven days, closed enquiries and completed or closed booking records after twelve months, and eligible application security records after 90 days. Cleanup runs in small scheduled batches. Active meetings, work still being processed and unresolved calendar operations are held for review. For bookings, the twelve-month period runs from the later of the meeting ending or the last recorded update; for closed enquiries it runs from closure or a later update. Calendar entries and mailbox copies also require separate deletion; deleting an application record alone does not remove them.
| Record | Retention |
|---|---|
| Unverified requests | No more than 7 days after submission; verification links can expire sooner |
| Enquiries and booking records | Up to 12 months after closure or the meeting, subject to necessary legal exceptions |
| Application security records | Up to 90 days, unless a specific incident requires longer investigation |
| Unconfirmed newsletter signup | 7 days after submission |
| Active newsletter subscription and consent evidence | While subscribed; up to 12 months after unsubscribe |
| Newsletter delivery history | Up to 12 months after the last update, once the campaign is complete or cancelled |
| Newsletter delivery feedback | 90 days |
| Unsubscribe/suppression record | The minimum needed to avoid resubscribing or emailing you unintentionally, while the mailing service operates; reviewed when no longer needed |
Retention for comments is described below. Newsletter cleanup runs in scheduled batches. Records involved in an active send or an unresolved delivery outcome may need review before removal. Backup and provider copies follow their separate retention schedules. Where a legal obligation or claim requires an exception, only the relevant information should be retained. Removing a record from the website must also address associated jobs, invitations, exports and service copies where applicable.
Service providers and international processing
Cloudflare provides hosting, network security and application infrastructure. Google provides my email and connected calendar account; Google Meet provides confirmed calls. AWS provides newsletter delivery and delivery feedback. Code is held privately in Forgejo and mirrored to GitHub for builds. Visitor submissions are not intended to be committed to those repositories or included in build logs.
I operate from India. Cloudflare, Google and AWS may process data in other countries, including the United States; this site does not promise EU-only storage. Cloudflare describes its contractual transfer safeguards in its Data Processing Addendum and its end-user processing in its Privacy Policy. Google’s processing is described in its Privacy Policy. AWS describes how it handles customer content in its Data Privacy FAQ. Selecting the Mumbai sending region does not limit all email routing or provider processing to India. The role and applicable terms of each service depend on how it is used; a personal Google account is not assumed to have business processor terms.
You can contact me for information about the safeguards applicable to your information. A provider’s published compliance statement does not by itself complete this site’s assessment.
I do not sell your information. Information may also be disclosed when required by law or where necessary to establish, exercise or defend legal claims.
Your rights and choices
Where applicable law gives you these rights, you can request access to your information, correction, erasure, restriction, or a portable copy. You can object to processing based on legitimate interests and withdraw consent for processing that depends on consent. These rights have conditions and exceptions; I will explain any refusal rather than assume every request has the same outcome.
Email the privacy contact above. I may ask for proportionate information to verify a request, without asking for unnecessary identification documents. For GDPR requests, the usual response period is one month; if a lawful extension is necessary, I will explain it within that month.
You can complain to your relevant data-protection authority, including in the EEA country where you live or work or where an alleged infringement occurred, or the ICO in the UK. You do not have to contact me first. See the EDPB authority directory.
There is no advertising profiling or solely automated decision-making with legal or similarly significant effects in the current application. Automated security checks may restrict suspicious requests. If that prevents a legitimate enquiry, contact me by email.
Changes
I will update this notice when the site’s processing changes. New features must explain their data use at the point of collection. Material changes will be dated here; where a new consent is required, an updated notice alone will not replace it.
Notifications to me
After you verify a conversation request, your name, email address, message and requested date and time are sent to my self-hosted ntfy service at ntfy.otroid.net so I can review it. Long messages may be shortened in the notification. The topic requires authentication; notifications may also appear on my subscribed devices. This processing supports handling your request and is not used for marketing. Notification copies on the server and devices are separate from the booking record; deleting a booking does not automatically remove those copies. I review and remove them manually in line with the retention periods above.
Comments on articles
Comments collect a display name and the text you choose to submit; an email address is optional and unverified. Turnstile and request limits help prevent abuse. Only after moderation do the display name, comment text and submission date become public. Please do not put private information in the text or display name. Submitted comments are also sent to my authenticated self-hosted ntfy topic for moderation, with the optional email address kept out of the public page. No automatic email, Gravatar lookup or newsletter subscription is triggered.
Where GDPR applies, handling and moderating the discussion relies on legitimate interests in running the publication and preventing abuse. Pending comments are removed after 90 days; rejected comments are removed 90 days after moderation. Optional email addresses are removed from application comment records after 90 days. Published comment text and display names remain as part of the discussion until removed. You can request correction or removal using the privacy contact above; include the article and comment details so I can identify it. Delivered notification copies require separate cleanup. Brief exceptions apply while a notification is actively sending.