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:
bbe
2026-04-04 21:55:34 +02:00
parent 586b572f73
commit 78271ea110
37 changed files with 1555 additions and 301 deletions

View File

@@ -6,10 +6,11 @@ import { Footer } from "@/components/public/Footer";
export const metadata: Metadata = {
title: "Terms of Use",
description:
"Terms of use for the Belgian Bitcoin Embassy website. Community-driven, non-commercial Bitcoin education platform in Belgium.",
"Terms of use for the Belgian Bitcoin Embassy website, including education-only scope, risk warnings, and user responsibilities.",
openGraph: {
title: "Terms of Use - Belgian Bitcoin Embassy",
description: "Terms governing the use of the Belgian Bitcoin Embassy platform.",
description:
"Terms governing access, risk disclosures, no-investment-advice scope, and liability limits for the Belgian Bitcoin Embassy platform.",
},
alternates: { canonical: "/terms" },
};
@@ -20,34 +21,56 @@ export default function TermsPage() {
<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">Terms of Use</h1>
<h1 className="text-4xl font-black mb-3">Terms of Use</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">About This Site</h2>
<h2 className="text-xl font-bold text-on-surface mb-4">Acceptance and Changes</h2>
<p>
The Belgian Bitcoin Embassy website is a community-driven, non-commercial
platform focused on Bitcoin education and meetups in Belgium. By using
this site, you agree to these terms.
By accessing or using this website, you agree to these Terms of Use. We may
update these terms from time to time, and continued use after updates means you
accept the revised terms.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Content</h2>
<h2 className="text-xl font-bold text-on-surface mb-4">Nature of the Service</h2>
<p>
Blog content on this site is curated from the Nostr network. The
Belgian Bitcoin Embassy does not claim ownership of third-party
content and provides it for educational purposes only. Content
moderation is applied locally and does not affect the Nostr network.
This website provides general Bitcoin education and community information.
Nothing on this website is financial, investment, legal, or tax advice.
We do not make recommendations to buy, sell, or hold Bitcoin or any other
crypto-asset. Content is general in nature and not tailored to your personal
circumstances.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">No Financial Advice</h2>
<h2 className="text-xl font-bold text-on-surface mb-4">Crypto Risk Warning</h2>
<p>
Nothing on this website constitutes financial advice. Bitcoin is a
volatile asset. Always do your own research and consult qualified
professionals before making financial decisions.
Crypto-assets are highly volatile and you can lose all of your money.
Crypto-assets are not regulated in the same way as traditional financial
products. Regulatory rules may change, and availability may differ by
jurisdiction. Always do your own research and consult a qualified professional
before making financial decisions.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">MiCA and Regulatory Position</h2>
<p>
Belgian Bitcoin Embassy presents this website as an educational platform and not
as a crypto-asset service provider. If the nature of our activities changes, we
may update these terms and related legal pages.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Content and Third Parties</h2>
<p>
Some content is curated from the Nostr network. We do not claim ownership of
third-party content. Local moderation may hide or limit content on this site,
but does not change content on the Nostr network itself.
</p>
</section>
@@ -61,11 +84,48 @@ export default function TermsPage() {
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Liability</h2>
<h2 className="text-xl font-bold text-on-surface mb-4">Paid and Commercial Features</h2>
<p>
The Belgian Bitcoin Embassy is a community initiative, not a legal
entity. We provide this platform as-is with no warranties. Use at
your own discretion.
Certain features may involve Lightning payments, such as paid public board
messages. Any such feature is optional and does not change the educational
nature of the site.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Affiliate and Sponsorship Transparency</h2>
<p>
As of the last updated date above, we do not earn referral fees from links on
this website. If sponsored or affiliate content is added in the future, it will
be clearly disclosed.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Disclaimer and Liability</h2>
<p>
This platform is provided on an &quot;as is&quot; and &quot;as available&quot; basis without
warranties of any kind. To the maximum extent permitted by law, Belgian Bitcoin
Embassy is not liable for losses or damages resulting from your use of this site
or reliance on its content.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Governing Law</h2>
<p>
These terms are governed by Belgian law, without prejudice to mandatory consumer
protections that apply in your jurisdiction.
</p>
</section>
<section>
<h2 className="text-xl font-bold text-on-surface mb-4">Contact</h2>
<p>
For terms-related questions, contact us through our{" "}
<Link href="/#community" className="text-primary hover:underline">
community channels
</Link>.
</p>
</section>
</div>