From 1b21b034d51c8cb2acf53dda0f9b9fa730636b2c Mon Sep 17 00:00:00 2001 From: Justin Mclean Date: Thu, 22 Oct 2026 11:30:29 +1100 Subject: [PATCH] content(site): add a meetups page Lists past community meetups with their recording and summary, starting with the 7 Oct meetup. Adds Meetups to the nav, the footer and the sitemap. --- src/app/(site)/meetups/page.tsx | 138 ++++++++++++++++++++++++++++++++ src/components/site-footer.tsx | 1 + src/lib/layout.shared.tsx | 2 + src/lib/site.ts | 1 + 4 files changed, 142 insertions(+) create mode 100644 src/app/(site)/meetups/page.tsx diff --git a/src/app/(site)/meetups/page.tsx b/src/app/(site)/meetups/page.tsx new file mode 100644 index 0000000000..83c4aadc46 --- /dev/null +++ b/src/app/(site)/meetups/page.tsx @@ -0,0 +1,138 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import Link from "next/link"; +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Meetups", + description: "Recordings of past Apache Iggy community meetups and the next scheduled event", +}; + +const meetups = [ + { + date: "2026-10-07", + title: "Apache Iggy community meetup, 2026-10-07", + summary: + "Piotr Gankiewicz on clustering in 0.9.0, followed by questions from the room and the chat.", + recording: "https://youtu.be/n3a8VJdpeGc", + notes: "https://github.com/apache/iggy/discussions/4440", + }, +]; + +export default function MeetupsPage() { + return ( +
+
+

+ Meetups +

+

+ The Apache Iggy™ community meets online. Each meetup is recorded + and published on the{" "} + + Apache Iggy YouTube channel + + . +

+ +

+ Next meetup +

+

+ No meetup is scheduled. Dates are announced on the{" "} + + dev mailing list + {" "} + and in{" "} + + GitHub Discussions + + . +

+ +

+ Past meetups +

+
+ + + + + + + + + + + {meetups.map((m) => ( + + + + + + + ))} + +
+ Date + + Meetup + + Recording + + Summary +
+ {m.date} + + {m.title} +
+ {m.summary} +
+ + YouTube + + + + Summary + +
+
+
+
+ ); +} diff --git a/src/components/site-footer.tsx b/src/components/site-footer.tsx index a1b4d2922a..6187ad94eb 100644 --- a/src/components/site-footer.tsx +++ b/src/components/site-footer.tsx @@ -39,6 +39,7 @@ const footerSections = [ links: [ { text: "Blogs", url: "/blogs" }, { text: "Downloads", url: "/downloads" }, + { text: "Meetups", url: "/meetups" }, { text: "GitHub", url: "https://github.com/apache/iggy" }, { text: "Benchmarks", url: "https://benchmarks.iggy.apache.org" }, ], diff --git a/src/lib/layout.shared.tsx b/src/lib/layout.shared.tsx index 4bb04a1307..0d1e17d20c 100644 --- a/src/lib/layout.shared.tsx +++ b/src/lib/layout.shared.tsx @@ -41,6 +41,7 @@ const sharedLinks: BaseLayoutProps["links"] = [ { text: "Docs", url: "/docs" }, { text: "Blogs", url: "/blogs" }, { text: "Downloads", url: "/downloads" }, + { text: "Meetups", url: "/meetups" }, { text: "Powered By", url: "/powered-by" }, { type: "custom", @@ -121,6 +122,7 @@ export function docsOptions(): BaseLayoutProps { { text: "Home", url: "/" }, { text: "Blogs", url: "/blogs" }, { text: "Downloads", url: "/downloads" }, + { text: "Meetups", url: "/meetups" }, { text: "Powered By", url: "/powered-by" }, { type: "custom", diff --git a/src/lib/site.ts b/src/lib/site.ts index c30d5d571f..6c283c4dc1 100644 --- a/src/lib/site.ts +++ b/src/lib/site.ts @@ -45,6 +45,7 @@ export const STATIC_ROUTES = [ "/", "/blogs", "/downloads", + "/meetups", "/powered-by", "/community", "/community/become-a-committer",