Print Preview & Check

PRIVACY NOTICE

Privacy Notice

Version privacy-2026-10-13-v2. Effective 13 October 2026.

Operator and contact

Alastair Mackay operates Print Preview & Check. Contact handydesk.contact@gmail.com about privacy, account data or a deletion that needs support.

Account and connection data

Firebase Authentication handles email/password or Google sign-in and email verification. Cloud Firestore in London stores a consent record under each account ID: the Terms version and acceptance time and record creation time. If the inline “Sign up to marketing” choice is selected and the form is submitted, the same record also contains the marketing choice, update time, transfer-consent version and acceptance time. Without that optional selection those optional fields are absent. Existing older marketing fields are not silently converted into new consent. The Render service verifies account eligibility and handles the ChatGPT OAuth connection. It stores temporary OAuth grants, tokens and related state in Firestore; opaque bearer identifiers are hashed for document IDs. Firestore also holds server-side rate-limit counters, account-deletion status markers and, for the closed multiuser test, manually managed admission records. Support email creates correspondence outside the account database. The app has no external marketing sender or analytics integration.

Why this data is used

The following Korean Personal Information Protection Act bases apply to the purposes described below. Article 15(1) sets out these categories.

Requested account service — Article 15(1)(4). Account and verification data, Terms-acceptance records and temporary OAuth connection records are used to provide and manage the account and ChatGPT connection you request, to the extent necessary to perform the service agreement or take steps you request toward it.

Limited service protection — Article 15(1)(6). Rate-limit, access-control and deletion-blocking records help prevent misuse and protect accounts. This legitimate-interest basis applies only where that processing is necessary, substantially related to the interest, within reasonable bounds, and the operator’s interest clearly outweighs the individual’s rights.

Statutory privacy requests — Article 15(1)(2). Information needed to handle a request is used where processing is unavoidable to meet an applicable legal duty.

Optional marketing — Article 15(1)(1). The “Sign up to marketing” choice is separate from Terms acceptance and unchecked by default. Selecting it records your request to receive email marketing about Alastair Mackay’s products and services, including future paid products, and your consent to the associated overseas processing described beside the choice and in this notice. Leaving the choice unchecked or withdrawing it does not prevent account or checker use. Optional fields are saved only when the choice is selected and the form is submitted. A legacy marketing field without evidence of this agreement is treated as off for enrollment until fresh agreement. The current service has no marketing sender and does not send marketing messages. Any future email use would require the specific consent and disclosures applicable to those messages.

Artwork

For a PNG selected inside the website checker or current ChatGPT widget, the current application code reads pixels and makes measurements and previews in the browser. It does not send the selected artwork, generated preview or measurements to Firebase, Render or the MCP server. The current MCP server exposes the browser widget and synthetic examples. A separate file-analysis adapter exists in the repository but is not registered by the current server startup. A file you separately upload to ChatGPT is a separate ChatGPT-hosted action, outside this application's account flow.

Access and choices

The account record is readable through browser Firestore rules only by its signed-in, email-verified owner. Collection listing and access to another user's record are denied. Marketing and its overseas-processing consent are optional. Account controls remove all four optional fields on withdrawal without changing Terms or tool access. The server reads the whole consent document for account checks, so it can receive optional fields but decides access using Terms fields, not marketing. After recent reauthentication, a user can request account deletion there; the server first blocks renewed access, removes the consent record, and requests deletion of the Firebase Auth account. If Firebase Auth deletion fails, the user can retry or contact support.

Storage and deletion

The core consent record remains while the account exists unless the user deletes it. Optional marketing and transfer-consent fields remain only until withdrawal of the optional choice or account deletion. Legacy optional fields remain in existing records until the owner withdraws or deletes the account; they do not count as fresh overseas consent. The OAuth implementation checks expiry on use and allows state to last no more than seven days. Rate-limit counters expire after about two minutes. The service removes expired records at startup and hourly while running; a sleeping service resumes cleanup when it starts again. A completed deletion marker remains for eight days before cleanup. A pending marker has no automatic expiry, so access remains blocked until retry or support resolution. A manually managed admission record is not removed automatically by account deletion.

These are application settings, not guaranteed deadlines for provider logs or recovery copies. Firebase describes its Authentication retention and deletion practices. The current Firestore console requires a plan upgrade to edit point-in-time recovery and scheduled backups. That observation does not establish a configured backup schedule or prove the absence of provider-managed recovery copies. Google describes scheduled-backup retention when that feature is used. Provider-managed service logs and recovery copies may remain after account deletion under the providers' applicable retention processes; application cleanup times do not determine their deletion deadlines.

Providers and locations

The current implementation uses Firebase Authentication, Google sign-in where selected, Cloud Firestore in London (europe-west2) for account and OAuth records, and a Render-hosted web/OAuth service in Oregon, USA. Firebase says Authentication data is processed in US data centers. Firebase identifies Authentication and Firestore as Google Cloud Platform services, for which Google publishes a Cloud Data Processing Addendum. Render publishes a Data Processing Addendum under its standard service terms. Published processing-entity lists do not establish that every listed entity accessed this project or identify its billing counterparty. Render's workspace log-retention and log-forwarding settings have not been verified; Render describes its service logging. The application server avoids logging request bodies, tokens and artwork in its own error messages. Optional timing logs contain fixed-schema operational measurements. Provider logs and backups are governed separately.

For overseas outsourcing or storage necessary to provide the requested account service, the Korean transfer route is Article 28-8(1)(3)(a): disclose the Article 28-8(2) information in the Privacy Notice. For the optional marketing-related transfer, the basis is consent under Article 28-8(1)(1), recorded through the separate optional “Sign up to marketing” choice and its accompanying overseas-processing disclosure. The optional record contains the account ID, marketing choice and update time, and transfer-consent version and acceptance time. It is sent through the browser’s encrypted Firestore API to the London database when the user agrees; the Render service in Oregon, United States may receive the same record when checking account access. Declining means no optional marketing record is saved and does not affect the account or checker. Withdrawal removes the optional fields while the core account record remains. The optional fields are retained until withdrawal or account deletion, subject to provider logs and recovery copies described above. Relevant published Google processing entities include Google LLC and Firebase, Inc. in the United States, and Global Infrastructure UK Limited and Google UK Ltd. in the United Kingdom; their roles include data-center operations, maintenance and support. This list does not assert that every entity accessed this project. Google contact: googlekrsupport@google.com and Google privacy contact; see the published processing-entity list. Render recipient: Render Services, Inc., privacy@render.com. Necessary account and authentication processing remains described separately: Firebase Authentication processes sign-in data in the United States; Firestore stores account and OAuth records in London, and Render operates the web/OAuth service in Oregon. Account and connection data move over encrypted HTTPS when the user signs in, accepts Terms, uses the checker or connects ChatGPT. Refusing processing necessary for an account means this hosted account service cannot be provided; the optional marketing decision is independent. Where European data protection law applies, any required European transfer mechanism applies separately from the Korean transfer basis.

Your rights and how to ask

You may ask to access your personal information, correct inaccurate information, delete information, suspend processing or withdraw consent, subject to applicable law. Where the law gives you additional rights, including portability or objection to particular processing, you may exercise those too. An authorised representative may make a request for you.

Contact Alastair Mackay at handydesk.contact@gmail.com. Please identify the account and explain what you need. Account controls are also available for marketing withdrawal and account deletion; inability to sign in does not prevent a legal rights request. To protect your data, the operator will verify identity or representative authority using only reasonably needed information. Do not email passwords or unnecessary identity documents.

Requests will be handled without undue delay and within the applicable legal time limit. Any legally permitted refusal, restriction or postponement will be explained with its reason and available challenge route. Account deletion does not guarantee immediate removal from provider backups.

Privacy complaints

Send privacy complaints to Alastair Mackay at handydesk.contact@gmail.com, including the concern and the outcome you seek. The operator will investigate, explain the outcome and provide any applicable escalation route. You may also seek help from the Korean Personal Information Infringement Report Center at privacy.kisa.or.kr (118 within Korea), or the Personal Information Dispute Mediation Committee at kopico.go.kr (1833-6972 within Korea). This does not restrict any competent regulator, court or other remedy available under applicable law.

Changes to this notice

The approved Privacy Notice will show its effective date. Material changes affecting your rights will be brought to your attention before they take effect or, where permitted, when an immediate change is made. Where law requires new consent or another action, that step will be completed before the new use begins. Publishing a revised notice or continued tool use does not by itself give consent to a new processing purpose. Earlier versions will remain available.

Read the Terms · Support