# I built a fact-checked meme explainer site with Next.js static export (and structured data for LLMs)

> Source: <https://dev.to/codebyaby/i-built-a-fact-checked-meme-explainer-site-with-nextjs-static-export-and-structured-data-for-llms-4c0e>
> Published: 2026-10-09 13:17:21+00:00

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.

Stack: Next.js 15 App Router with output: "export", plain CSS, no database, deployed as static files.

Page contract (one topic per page):

A short answer band at the top, so the verdict is the first thing a crawler or an LLM reads.

A facts list (

Structured 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.

Meta consistency: a single pageMeta() helper sets canonical, OG and Twitter tags, and pages can’t ship without it.

Citations 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).

Live example, the Rumpelstiltskin meme explained, with a timeline page that sets sources side by side where they disagree.

Happy to share the pageMeta() and JSON-LD components if useful. What do you use for keeping structured data in sync with visible content?
