feat: organizers, meetups UI, Plausible analytics, and migration tooling
- Add organizer model/API, admin and public organizer pages, meetup cards - Refresh events/home/contact; add calendar dialog and carousel components - Optional Plausible via NEXT_PUBLIC_PLAUSIBLE_* env vars in root layout - Prisma migration, seed updates, baseline-and-migrate script Made-with: Cursor
This commit is contained in:
@@ -6,10 +6,11 @@ import { Footer } from "@/components/public/Footer";
|
||||
export const metadata: Metadata = {
|
||||
title: "Privacy Policy",
|
||||
description:
|
||||
"Privacy policy for the Belgian Bitcoin Embassy website. We collect minimal data, use no tracking cookies, and respect your sovereignty.",
|
||||
"GDPR-oriented privacy policy for the Belgian Bitcoin Embassy. Learn what data we process, why we process it, and your rights.",
|
||||
openGraph: {
|
||||
title: "Privacy Policy - Belgian Bitcoin Embassy",
|
||||
description: "How we handle your data. Minimal collection, no tracking, full transparency.",
|
||||
description:
|
||||
"How we process data for account access, moderation, and community features, with clear GDPR rights and transparency.",
|
||||
},
|
||||
alternates: { canonical: "/privacy" },
|
||||
};
|
||||
@@ -20,43 +21,93 @@ export default function PrivacyPage() {
|
||||
<Navbar />
|
||||
<div className="min-h-screen">
|
||||
<div className="max-w-3xl mx-auto px-8 pt-16 pb-24">
|
||||
<h1 className="text-4xl font-black mb-8">Privacy Policy</h1>
|
||||
<h1 className="text-4xl font-black mb-3">Privacy Policy</h1>
|
||||
<p className="text-sm text-on-surface-variant mb-8">Last updated: April 3, 2026</p>
|
||||
|
||||
<div className="space-y-8 text-on-surface-variant leading-relaxed">
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Overview</h2>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Who We Are</h2>
|
||||
<p>
|
||||
The Belgian Bitcoin Embassy values your privacy. This website is designed
|
||||
to collect as little personal data as possible. We do not use tracking
|
||||
cookies, analytics services, or advertising networks.
|
||||
Belgian Bitcoin Embassy is a community initiative focused on Bitcoin education
|
||||
and meetups in Belgium. We aim to process the minimum data needed to run this
|
||||
website safely and reliably.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Data We Collect</h2>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">What Data We Process</h2>
|
||||
<p>
|
||||
If you log in using a Nostr extension, we store your public key to
|
||||
identify your session. Public keys are, by nature, public information
|
||||
on the Nostr network. We do not collect email addresses, names, or
|
||||
any other personal identifiers.
|
||||
If you log in with Nostr, we process your public key, role, and optional
|
||||
username. We also process content needed to operate the site, such as posts,
|
||||
submissions, media metadata, and moderation records. Some Nostr-related data
|
||||
may be cached on our servers to improve performance.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Nostr Interactions</h2>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Why We Process Data</h2>
|
||||
<p>
|
||||
Likes and comments are published to the Nostr network via your own
|
||||
extension. These are peer-to-peer actions and are not stored on our
|
||||
servers beyond local caching for display purposes.
|
||||
We process data to provide core site features, maintain account sessions,
|
||||
prevent abuse, moderate community interactions, and keep the service secure.
|
||||
Our legal bases are contract (or steps requested by you before using features)
|
||||
and legitimate interests (security, integrity, and service operation).
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Local Storage</h2>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Cookies and Local Storage</h2>
|
||||
<p>
|
||||
We use browser local storage to persist your authentication session.
|
||||
You can clear this at any time by logging out or clearing your
|
||||
browser data.
|
||||
We currently do not use third-party analytics or advertising cookies. We do use
|
||||
browser local storage to keep your authentication session active. You can clear
|
||||
this data at any time by logging out or clearing browser storage.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Recipients</h2>
|
||||
<p>
|
||||
When you interact through Nostr, your actions are published on the Nostr network,
|
||||
which is public by design. We may also use infrastructure providers to host and
|
||||
secure the website.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Retention</h2>
|
||||
<p>
|
||||
We keep account and operational data only as long as needed for service operation,
|
||||
security, and moderation. Technical logs may be retained for a limited period.
|
||||
You can remove local browser data at any time.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Your GDPR Rights</h2>
|
||||
<p>
|
||||
Depending on applicable law, you may have rights to access, rectify, erase, restrict,
|
||||
object to, or request portability of your personal data. You also have the right to
|
||||
lodge a complaint with the Belgian Data Protection Authority.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">International Transfers</h2>
|
||||
<p>
|
||||
If technical providers process data outside the EEA, we aim to rely on appropriate
|
||||
safeguards as required under GDPR.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Children</h2>
|
||||
<p>This website is not directed at children under the age of 16.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-xl font-bold text-on-surface mb-4">Policy Updates</h2>
|
||||
<p>
|
||||
We may update this Privacy Policy from time to time. Material changes are reflected
|
||||
by updating the date at the top of this page.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user