{"slug": "i-built-a-fact-checked-meme-explainer-site-with-next-js-static-export-and-data", "title": "I built a fact-checked meme explainer site with Next.js static export (and structured data for LLMs)", "summary": "A developer built a static Next.js 15 fact-checking site that explains viral memes, using the Rumpelstiltskin AI meme as its live example. The site pairs a short-answer band, a facts list, and a timeline of disagreeing sources with FAQPage, BreadcrumbList, and article JSON-LD generated from the same data that renders the visible FAQ so the two never drift. A single pageMeta() helper enforces canonical, OG, and Twitter tags, and all off-site citations route through one ExternalLink component.", "body_md": "When a meme goes viral, the search intent is simple: what is this, where is it from, is it real? That’s an ideal case for a small static reference site. I built one for the Rumpelstiltskin AI meme, and here’s the setup.\n\nStack: Next.js 15 App Router with output: \"export\", plain CSS, no database, deployed as static files.\n\nPage contract (one topic per page):\n\nA short answer band at the top, so the verdict is the first thing a crawler or an LLM reads.\n\nA facts list (\n\nStructured data: every page ships FAQPage and BreadcrumbList JSON-LD plus an article schema, generated from the same data that renders the visible FAQ so the two never drift.\n\nMeta consistency: a single pageMeta() helper sets canonical, OG and Twitter tags, and pages can’t ship without it.\n\nCitations as data: each fact maps to an entry in a SOURCES list, and off-site links go through one ExternalLink component (new tab, rel=\"noopener\", no noreferrer, so cited sites can see the referrer).\n\nLive example, the Rumpelstiltskin meme explained, with a timeline page that sets sources side by side where they disagree.\n\nHappy to share the pageMeta() and JSON-LD components if useful. What do you use for keeping structured data in sync with visible content?", "url": "https://wpnews.pro/news/i-built-a-fact-checked-meme-explainer-site-with-next-js-static-export-and-data", "canonical_source": "https://dev.to/codebyaby/i-built-a-fact-checked-meme-explainer-site-with-nextjs-static-export-and-structured-data-for-llms-4c0e", "published_at": "2026-10-09 13:17:21+00:00", "updated_at": "2026-10-09 13:21:26.306211+00:00", "lang": "en", "topics": ["structured-data", "generative-engine-optimization", "ai-search", "ai-crawlers", "developer-tools"], "entities": ["Next.js", "Rumpelstiltskin"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-a-fact-checked-meme-explainer-site-with-next-js-static-export-and-data", "markdown": "https://wpnews.pro/news/i-built-a-fact-checked-meme-explainer-site-with-next-js-static-export-and-data.md", "text": "https://wpnews.pro/news/i-built-a-fact-checked-meme-explainer-site-with-next-js-static-export-and-data.txt", "jsonld": "https://wpnews.pro/news/i-built-a-fact-checked-meme-explainer-site-with-next-js-static-export-and-data.jsonld"}}