275 lines
11 KiB
TypeScript
275 lines
11 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Link from "next/link";
|
|
import { PageHeader } from "@/components/page-header";
|
|
import { buildOgMeta } from "@/lib/og";
|
|
|
|
const EFFECTIVE_DATE = "June 1, 2026";
|
|
const CONTACT_EMAIL = "support@prabhupadasays.org";
|
|
const OPERATOR = "Krispire Solutions LLP";
|
|
const SERVICE = "Prabhupāda Says";
|
|
const SLA_DAYS = 30;
|
|
|
|
export function generateMetadata(): Metadata {
|
|
return buildOgMeta({
|
|
title: "Data Deletion — Prabhupāda Says",
|
|
quote: "How to delete your account and personal data from Prabhupāda Says.",
|
|
});
|
|
}
|
|
|
|
export default function DataDeletionPage() {
|
|
const subject = "Delete my account";
|
|
const body = `Hello,\n\nI would like to delete my Prabhupāda Says account and all associated personal data.\n\n— Email address registered with the account: \n— Account handle (if known): \n— Reason for deletion (optional): \n\nThank you.`;
|
|
const mailto = `mailto:${CONTACT_EMAIL}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
|
|
|
|
return (
|
|
<div className="min-h-screen bg-background">
|
|
<PageHeader>
|
|
<Link
|
|
href="/"
|
|
className="text-sm text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
← Home
|
|
</Link>
|
|
<h1 className="mt-3 text-3xl font-bold text-foreground">
|
|
Data Deletion
|
|
</h1>
|
|
<p className="mt-1 text-muted-foreground">Effective {EFFECTIVE_DATE}</p>
|
|
</PageHeader>
|
|
|
|
<main className="max-w-3xl mx-auto px-6 py-10 space-y-10 text-[15px] leading-relaxed text-muted-foreground">
|
|
<section className="space-y-3">
|
|
<p>
|
|
You can delete your {SERVICE} account and the personal data
|
|
associated with it at any time. This page explains exactly how to
|
|
request deletion, what we delete, what we keep, and how long the
|
|
process takes.
|
|
</p>
|
|
<p>
|
|
Self-service deletion from within your profile settings is planned
|
|
and will be added in a future release. Until then, please use the
|
|
email process below — we will process every valid request
|
|
within {SLA_DAYS} days.
|
|
</p>
|
|
</section>
|
|
|
|
<Section title="How to request deletion">
|
|
<ol className="list-decimal pl-6 space-y-3">
|
|
<li>
|
|
<p>
|
|
Send an email from the email address registered with your
|
|
account to{" "}
|
|
<a
|
|
href={`mailto:${CONTACT_EMAIL}`}
|
|
className="text-primary underline-offset-4 hover:underline"
|
|
>
|
|
{CONTACT_EMAIL}
|
|
</a>
|
|
.
|
|
</p>
|
|
<p>
|
|
Sending from your registered email helps us verify the request
|
|
is genuinely yours. If you signed up through Google or Facebook,
|
|
send the email from the address linked to that provider.
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
Use the subject line:{" "}
|
|
<code className="px-1 py-0.5 rounded bg-muted text-foreground font-mono text-xs">
|
|
Delete my account
|
|
</code>
|
|
</p>
|
|
</li>
|
|
<li>
|
|
<p>In the body of the email, include:</p>
|
|
<ul className="mt-2 list-disc pl-6 space-y-1.5">
|
|
<li>The email address registered with your account.</li>
|
|
<li>Your account handle, if you remember it.</li>
|
|
<li>
|
|
(Optional) The reason for deletion — this helps us
|
|
improve the Service, but you do not need to share it.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
We will reply to confirm we have received your request,
|
|
typically within 2 business days, and again once the deletion is
|
|
complete.
|
|
</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<div className="mt-6 rounded-lg border border-border bg-card p-4 sm:p-5">
|
|
<p className="text-sm text-foreground">
|
|
Prefer to skip the typing? Click the button below to open a
|
|
pre-filled email in your mail client.
|
|
</p>
|
|
<a
|
|
href={mailto}
|
|
className="mt-4 inline-flex items-center justify-center h-10 rounded-md bg-primary px-5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors"
|
|
>
|
|
Open pre-filled email
|
|
</a>
|
|
</div>
|
|
</Section>
|
|
|
|
<Section title="What we delete">
|
|
<p>
|
|
Once we verify your request, we permanently delete the following
|
|
within {SLA_DAYS} days:
|
|
</p>
|
|
<ul className="list-disc pl-6 space-y-1.5">
|
|
<li>
|
|
Your user account (email address, name, handle, password hash,
|
|
avatar URL, role, reading preferences, and account timestamps).
|
|
</li>
|
|
<li>
|
|
Any linked third-party sign-in identities (Google, Facebook). The
|
|
provider is the source of truth for your account with them; you
|
|
can revoke that link from the provider as well.
|
|
</li>
|
|
<li>Your avatar image stored in our object storage.</li>
|
|
<li>Your posts, bookmarks, collections, and short share links.</li>
|
|
<li>
|
|
Any outstanding password-reset or email-verification tokens.
|
|
</li>
|
|
</ul>
|
|
<p>
|
|
Records linked to your user identifier via foreign keys are removed
|
|
via cascade or set to a deleted-user placeholder at the same time.
|
|
</p>
|
|
</Section>
|
|
|
|
<Section title="What we may retain (and why)">
|
|
<p>
|
|
A small amount of information may be retained after account
|
|
deletion, in line with the law and the legitimate operation of the
|
|
Service:
|
|
</p>
|
|
<ul className="list-disc pl-6 space-y-1.5">
|
|
<li>
|
|
<strong className="text-foreground">Feedback messages</strong> you
|
|
submitted are retained after deletion, but the link to your user
|
|
identifier is removed (so the message remains as anonymous product
|
|
feedback).
|
|
</li>
|
|
<li>
|
|
<strong className="text-foreground">
|
|
Server and security logs
|
|
</strong>{" "}
|
|
may contain references to your activity for a short operational
|
|
window (typically 30 days) before they are deleted or anonymised.
|
|
These logs are not used to reconstruct your account.
|
|
</li>
|
|
<li>
|
|
<strong className="text-foreground">
|
|
Records we are legally required to retain
|
|
</strong>{" "}
|
|
— for example, in connection with a pending legal claim,
|
|
regulatory request, or tax/accounting requirement — will be
|
|
kept only for as long as the law requires and then deleted.
|
|
</li>
|
|
<li>
|
|
<strong className="text-foreground">Backups</strong> taken before
|
|
your deletion request are encrypted and rotate out on a regular
|
|
schedule. Your data will be overwritten as backups roll, typically
|
|
within 30 days.
|
|
</li>
|
|
</ul>
|
|
</Section>
|
|
|
|
<Section title="Timeline">
|
|
<ul className="list-disc pl-6 space-y-1.5">
|
|
<li>
|
|
<strong className="text-foreground">
|
|
Within 2 business days
|
|
</strong>{" "}
|
|
— we acknowledge your request.
|
|
</li>
|
|
<li>
|
|
<strong className="text-foreground">
|
|
Within {SLA_DAYS} days
|
|
</strong>{" "}
|
|
— we complete the deletion in our active systems and send
|
|
you a confirmation email.
|
|
</li>
|
|
<li>
|
|
<strong className="text-foreground">Up to 30 days after</strong>{" "}
|
|
— residual copies in encrypted backups roll out as part of
|
|
our normal backup retention schedule.
|
|
</li>
|
|
</ul>
|
|
</Section>
|
|
|
|
<Section title="If you signed in via Google or Facebook">
|
|
<p>
|
|
Deleting your {SERVICE} account does not automatically remove your
|
|
account with Google or Facebook. To remove your data entirely from
|
|
those providers, also revoke the “Prabhupāda Says” app
|
|
connection in your provider settings:
|
|
</p>
|
|
<ul className="list-disc pl-6 space-y-1.5">
|
|
<li>
|
|
<strong className="text-foreground">Google:</strong> visit your
|
|
Google Account → <em>Security</em> →{" "}
|
|
<em>Third-party apps with account access</em> → select
|
|
“Prabhupāda Says” → <em>Remove access</em>.
|
|
</li>
|
|
<li>
|
|
<strong className="text-foreground">Facebook:</strong> visit{" "}
|
|
<em>Settings & privacy</em> → <em>Settings</em> →{" "}
|
|
<em>Apps and websites</em> → select “Prabhupāda
|
|
Says” → <em>Remove</em>.
|
|
</li>
|
|
</ul>
|
|
</Section>
|
|
|
|
<Section title="Other rights">
|
|
<p>
|
|
Besides deletion, you can also ask us to provide a copy of the
|
|
personal information we hold about you, or to correct information
|
|
that is inaccurate. See our{" "}
|
|
<Link
|
|
href="/privacy"
|
|
className="text-primary underline-offset-4 hover:underline"
|
|
>
|
|
Privacy Policy
|
|
</Link>{" "}
|
|
for the full list of rights available to you.
|
|
</p>
|
|
</Section>
|
|
|
|
<Section title="Need help?">
|
|
<p>
|
|
If you have any trouble with the deletion process or want to verify
|
|
the status of a previous request, write to{" "}
|
|
<a
|
|
href={`mailto:${CONTACT_EMAIL}`}
|
|
className="text-primary underline-offset-4 hover:underline"
|
|
>
|
|
{CONTACT_EMAIL}
|
|
</a>
|
|
. The Service is operated by {OPERATOR}.
|
|
</p>
|
|
</Section>
|
|
</main>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
function Section({
|
|
title,
|
|
children,
|
|
}: {
|
|
title: string;
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-bold text-foreground">{title}</h2>
|
|
{children}
|
|
</section>
|
|
);
|
|
}
|