DEV Community

Chen Tao
Chen Tao

Posted on

How I Built a Game Wiki with 38 Pages Using Next.js Static Export

I recently built Gakuran Guide (gakuranguide.wiki), a comprehensive wiki for a Roblox fighting game. It has 38 static pages, rich SEO metadata, and builds in under 30 seconds. Here's how.

The Stack

  • Next.js 14 with App Router
  • Static Export (output: 'export')
  • Tailwind CSS for styling
  • JSON-LD Structured Data for every guide page
  • Dynamic Sitemap with auto-detection of all routes

Why Static Export?

The Gakuran game data changes weekly, but I rebuild weekly — making SSR/ISR overkill. Static export means:

  • Files served from a CDN (Cloudflare Pages — free)
  • No server costs. Zero.
  • 100/100 Lighthouse scores
  • No hydration issues

JSON-LD: Rich Results Without SSR

Every guide page has structured data:

export default function GuidePage() {
  const buildDate = new Date().toLocaleDateString('en-US', {
    month: 'short', day: 'numeric', year: 'numeric'
  });

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{
          __html: JSON.stringify({
            "@context": "https://schema.org",
            "@type": "Article",
            "headline": "Fighting Styles Tier List",
            "dateModified": buildDate,
            // ...
          })
        }}
      />
      {/* page content */}
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Since new Date() runs at build time for static export, the date is always fresh without any runtime overhead.

Auto-Updating Build Dates

Every page has an "Updated [date]" badge. No cron, no API — it's just:

const buildDate = new Date().toLocaleDateString('en-US', {
  month: 'short', day: 'numeric', year: 'numeric'
});
Enter fullscreen mode Exit fullscreen mode

Rebuild → new date. Simple.

SEO Results (3 weeks in)

  • First-page Google ranking for "gakuran tier list"
  • Featured snippet for "gakuran codes"
  • All 38 pages indexed within 48 hours

Key Takeaways

  1. Static export is underrated. For content sites, it's faster and cheaper than SSR
  2. JSON-LD works perfectly with static export. Just bake it in at build time
  3. Incremental improvement works. Ship the first 10 pages, then add more
  4. Footer architecture matters. Every page should be reachable via footer links — we fixed this mid-project

Full site: gakuranguide.wiki

Happy to answer questions about building game wikis with Next.js!

Top comments (0)