Solarpunk Wiki
Fan wiki for an upcoming survival-craft game with 600+ database entries, built to launch alongside the game in Q2 2026.
The Problem
Solarpunk is a survival-crafting game releasing in Q2 2026. Before launch, an active community had already formed around alpha footage and developer updates - but there was no structured reference for the game's systems. Items, buildings, crops, animals, energy mechanics, and the tech tree all needed to be documented in a way that could go live the moment the game shipped.
The brief was tight: build a wiki that could handle 600+ database entries at launch, with a design that matched the game's visual identity, navigation that scaled without getting lost, and a codebase that a non-developer could extend after handover.
What I Built
The Solarpunk Wiki is a statically generated reference site built on Next.js 15 with React 19 and TypeScript. The entire data layer lives in /src/data/ as typed TypeScript files - no CMS, no database, no API calls at runtime. Every entry is a TypeScript object with a defined schema, which means bad data fails at build time, not in production.
Data categories covered at launch:
- Items - consumables, materials, crafting components
- Buildings - structures, their resource requirements, unlock conditions
- Crops - growth stages, yield, soil requirements
- Animals - tameable species, products, habitat needs
- Energy - power sources, storage, consumption rates
- Technology - the full tech tree with prerequisites and unlock paths
Each category has its own page structure, search/filter system, and cross-linking to related entries. An animal page links to the crops it eats; a building page links to the items it produces.
Architecture
Static generation: Next.js 15's generateStaticParams produces one route per entry at build time. With 600+ entries across six categories, Turbopack keeps the build fast even as the dataset grows. The result is a site with zero runtime data fetching - every page is pure HTML + CSS.
Data layer: All entries are typed TypeScript objects in /src/data/. Each category has its own type definition. TypeScript's compiler catches missing required fields and type mismatches before a broken build ships. Adding new entries means editing a TypeScript file - no database migrations, no admin interface.
Design system: The visual language uses a custom Tailwind v4 palette with eight color families derived from the game's art direction: Golden Hour (warm yellows), Leaf (greens), Sky (blues), Terra (earthy browns), Brass (metallic ambers), Dusk (deep purples), Ash (neutrals), and Ember (accent reds). Each content category maps to a color family, making navigation intuitive even before users read the labels.
Navigation: An archipelago-style structure - the homepage is a category map, each category is an index, each entry is a detail page. The hierarchy is always visible in the breadcrumb. There is no sidebar navigation that grows unmanageable as entries accumulate.
Engineering Decisions
TypeScript as the CMS. The alternative was a headless CMS or a flat-file system like MDX. Both add a layer of indirection between the data and the types. With TypeScript objects, the schema is the source of truth. Refactoring a field name is a find-and-replace with compiler verification - not a data migration.
Static over dynamic. A wiki that requires a server for every page request is a reliability liability at launch. When the game ships and traffic spikes, a statically generated site behind a CDN handles the load without autoscaling, database connection limits, or cold starts. The tradeoff is that content updates require a rebuild - acceptable for a game wiki where data changes on a predictable schedule tied to game patches.
Turbopack for development speed. With 600+ routes, dev server startup with standard Webpack was slow enough to interrupt flow. Turbopack brings the dev server to functional state in under 3 seconds regardless of entry count.
Status
The design system, data structure, and routing architecture are complete. All 600+ entries are typed and validated. The site is in pre-launch review pending the game's Q2 2026 release date. On launch day, a single deployment pushes the complete wiki live.

