LyraCoreProject

1. React and TypeScript for the public site

Date: 2026-08-12

Status

Accepted

Context

LyraCore is an all-Rust project. The obvious tools for a docs-and-landing site keep it that way: mdBook is a Rust binary and gives book-shaped guides for free, and Zola is a single Rust binary that covers a templated landing page, markdown guides, and news posts without npm.

The site has to be two things at once — a public landing page for the project and a home for guides. mdBook covers only the second, so it would need a hand-written index.html beside it. Zola covers both.

Against that: the maintainer works in React daily and in neither of the Rust site generators. The site’s value comes from iterating on how it reads and looks, and that iteration is only as fast as the maintainer’s feedback loop. The landing page is also the one part of the project likely to grow interactive elements — a realm status widget, an online-player count — which the static generators do not do.

Decision

Build the site with Vite, React, and TypeScript. Author guides in MDX. Build to static files and deploy to GitHub Pages with a GitHub Actions workflow.

Consequences

An npm dependency tree and a node toolchain now exist in the LyraCoreProject org. This is contained: the site repo has no path dependency on any other repo, its build never runs in another repo’s CI, and nothing in LyraCore learns about node. The blast radius of the choice is this repo.

The cost is a second ecosystem to keep patched, and a contributor who only has a Rust toolchain cannot build the site locally. Accepted in exchange for the maintainer being able to make the site good.