From 4b520d5983a60e8d2963f92fcdab943392981e26 Mon Sep 17 00:00:00 2001 From: Rootul Patel Date: Wed, 15 Jul 2026 21:25:21 -0700 Subject: [PATCH] feat: add FAQ page explaining data source Add a static /faq route answering where TriTimes gets its data (the Competitor.com results API that powers IRONMAN's official results pages), whether it's affiliated with IRONMAN, and how to report issues. Q&A content and schema.org FAQPage JSON-LD live in a tested lib module; the page renders them and a footer link makes it discoverable site-wide. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01ErTFrsFRR8HEUpgL3YphHs --- app/src/app/faq/page.tsx | 41 ++++++++++++++++++++++ app/src/components/Footer.tsx | 6 ++++ app/src/lib/__tests__/faq.test.ts | 40 ++++++++++++++++++++++ app/src/lib/faq.ts | 56 +++++++++++++++++++++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 app/src/app/faq/page.tsx create mode 100644 app/src/lib/__tests__/faq.test.ts create mode 100644 app/src/lib/faq.ts diff --git a/app/src/app/faq/page.tsx b/app/src/app/faq/page.tsx new file mode 100644 index 0000000..789e27f --- /dev/null +++ b/app/src/app/faq/page.tsx @@ -0,0 +1,41 @@ +import type { Metadata } from "next"; +import { FAQ_ITEMS, buildFaqJsonLd } from "@/lib/faq"; + +export const revalidate = false; + +export const metadata: Metadata = { + title: "FAQ", + description: + "Frequently asked questions about TriTimes — where the race data comes from, whether it's affiliated with IRONMAN, and how to report issues.", + alternates: { canonical: "/faq" }, + openGraph: { + title: "FAQ", + description: + "Frequently asked questions about TriTimes — where the race data comes from and how it works.", + url: "/faq", + }, +}; + +export default function FaqPage() { + return ( +
+