- Replace apps/game (TypeScript/Vite/R3F) with a Bevy 0.16 Rust client featuring main menu, star map, and flight states - Add services/auth: Express + better-auth server with SpacetimeDB token exchange endpoint - Delete archive/legacy-static/ (old JS demos, CSS, assets) - Update docs pages (architecture, gameplay, roadmap, social, overview) to reflect Bevy pivot - Clean up workspace config: remove apps/game from pnpm workspace, update dev scripts, tsconfig, and AGENTS.md files - Add .vscode/settings.json for Rust tooling
43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
# VOID::NAV — Monorepo Root
|
|
|
|
Single-player open-world space exploration RPG. Windward Horizon in space with FTL-style combat.
|
|
|
|
## Directory Map
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| `apps/docs` | Living design docs, interactive demos, and vertical-slice prototype |
|
|
| `apps/game` | Playable game shell connected to SpacetimeDB |
|
|
| `apps/site` | Public landing page |
|
|
| `packages/ui` | Shared UI primitives and design tokens |
|
|
| `services/spacetimedb` | SpacetimeDB TypeScript backend module |
|
|
| `scripts/` | Dev tooling (dev.sh startup script) |
|
|
| `archive/` | Legacy pre-monorepo files kept for reference |
|
|
| `src/module_bindings/` | Empty; generated bindings go to `apps/game/src/module_bindings` |
|
|
|
|
## Key Files
|
|
|
|
- `package.json` — pnpm workspace scripts (`dev`, `build`, `check`, `generate:bindings`)
|
|
- `pnpm-workspace.yaml` — workspace glob patterns
|
|
- `spacetime.json` — SpacetimeDB module path and binding generation config
|
|
- `tsconfig.base.json` — Shared TypeScript config (ES2020, React JSX)
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
pnpm dev # Full stack: SpacetimeDB + game (port 5175)
|
|
pnpm dev:docs # Docs only (port 5173)
|
|
pnpm dev:site # Site only (port 5174)
|
|
pnpm dev:game # Game frontend only (requires running SpacetimeDB)
|
|
pnpm build # Build all apps
|
|
pnpm check # Typecheck all packages
|
|
pnpm generate:bindings # Regenerate SpacetimeDB TypeScript bindings
|
|
```
|
|
|
|
## Conventions
|
|
|
|
- SpacetimeDB is the persistence layer from day 1 — no localStorage for game state
|
|
- All UI uses Tailwind CSS v4 with custom design tokens from `packages/ui`
|
|
- 3D rendering uses React Three Fiber + Drei + Three.js
|
|
- Module bindings are auto-generated — never edit `module_bindings/` by hand
|