Security & infrastructure: - Remove unused services/ (auth, spacetimedb) and auth.db - Add .env.example template, expand .gitignore for env/db files - Add GitHub Actions CI + commitlint config and workflows - Add manual vendor chunking and source maps to docs/site vite configs Shared UI & docs app: - Add ARIA props and focus-visible rings to Button/Panel - Add ButtonAsLink primitive; use shared Button in NotFound - Wire @void-nav/ui into docs app; refresh content pages - Replace Todo page with Kanban board Gameplay (Bevy): - Add ai module (behavior, faction, navigation, perception, spawning, states) - Add narrative module (events, history, synthesis, ui) - Refine galaxy contents and in-system flight/scene systems
2.0 KiB
2.0 KiB
VOID::NAV — Monorepo Root
Single-player narrative-driven space exploration saga. Windward meets Stellaris with AI-generated storytelling in the style of The Templin Institute.
Directory Map
| Path | Purpose |
|---|---|
apps/docs |
Living design docs, interactive demos, and vertical-slice prototype (Vite + React) |
apps/game |
Playable game client — Rust + Bevy (independent of the JS/TS workspace) |
apps/site |
Public landing page (Vite + React) |
packages/ui |
Shared UI primitives and design tokens for the TS apps |
scripts/ |
Dev tooling (dev.sh startup script) |
archive/ |
Legacy pre-monorepo files kept for reference |
Key Files
package.json— pnpm workspace scripts (dev,build,check)pnpm-workspace.yaml— workspace glob patterns (covers TS apps only)tsconfig.base.json— Shared TypeScript config (ES2020, React JSX) — does not apply toapps/gameapps/game/Cargo.toml— Rust manifest for the game binary
Commands
JS/TS workspace (docs, site, packages/ui)
pnpm dev # Docs + site servers
pnpm dev:docs # Docs only (port 5173)
pnpm dev:site # Site only (port 5174)
pnpm build # Build all TS packages
pnpm check # Typecheck all TS packages
Rust game (apps/game)
cd apps/game
cargo run # Build + run the game binary
cargo check # Fast typecheck
cargo build # Build without running
cargo clippy # Lint
Architecture Notes
- Two independent toolchains coexist: the pnpm/TS workspace (docs, site, UI lib) and the Cargo/Rust game client. They share no code.
- V1 is single-player with local persistence. Future multiplayer servers will be added as an optional enhancement.
- Naming follows RFC 344: see
apps/game/AGENTS.mdfor Rust/Bevy conventions.
Conventions (TS apps)
- TS apps use Tailwind CSS v4 with custom design tokens from
packages/ui - 3D rendering in
apps/docsuses React Three Fiber + Drei + Three.js