The frontend has two Astro apps:

  • apps/site renders /, /news/*, /docs, support docs, and static content.
  • apps/play renders the browser game host under /play.

The site app does not import React, Zustand, protocol fixtures, UI primitives, or the renderer. It can explain the game, link to the game, and publish docs, but it does not hydrate the game shell.

The play app owns storage consent, fake local login, WebSocket connection, React UI chrome, and Canvas viewport mounting.