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

@@ -106,6 +106,8 @@ interface EventJsonLdProps {
location?: string;
url: string;
imageUrl?: string;
organizerName?: string;
organizerUrl?: string;
}
export function EventJsonLd({
@@ -115,7 +117,11 @@ export function EventJsonLd({
location,
url,
imageUrl,
organizerName,
organizerUrl,
}: EventJsonLdProps) {
const orgName = organizerName || "Belgian Bitcoin Embassy";
const orgUrl = organizerUrl || siteUrl;
return (
<JsonLd
data={{
@@ -141,8 +147,8 @@ export function EventJsonLd({
: {}),
organizer: {
"@type": "Organization",
name: "Belgian Bitcoin Embassy",
url: siteUrl,
name: orgName,
url: orgUrl,
},
image:
imageUrl || `${siteUrl}/og?title=${encodeURIComponent(name)}&type=event`,