Development
Repository structure
Where the frontend, Rust backend, data files, and documentation live.
The repositories are separate and have different stacks. The desktop repository contains the application; the website repository contains this site and its structured project data.
Desktop application
src/ Vanilla HTML, CSS, and ES modules
app.js Bootstrap, router wiring, page lifecycle
components/ Persistent shell and reusable UI
pages/ Dashboard, machines, storage, media, settings
services/ Tauri command wrappers and preferences
state/ Shared host and machine state
styles/ Tokens, layout, components, and page styles
vendor/novnc/ Bundled noVNC client and licenses
assets/brand/ Local Wave VM brand SVGs
src-tauri/src/
commands/ Narrow Tauri command handlers
config/ Versioned configuration and atomic persistence
host/ Host diagnostics, memory/storage, KVM probe
qemu/ Executable discovery, safe version probing
qmp/ QMP client over a private Unix socket
vm/ VM models, validation, disk creation, lifecycle
error.rs Shared serialized application errors
state.rs Application state and tracked QEMU processes
src-tauri/capabilities/ Tauri capability scope
src-tauri/tauri.conf.json Window, CSP, bundle, and icon configurationWebsite
src/app/ Next.js App Router pages and layouts
src/components/ Shared header, footer, page, docs, and roadmap UI
src/data/ Roadmap, feature, documentation, and status data
src/assets/ Local Wave VM brand SVGs
src/app/globals.css Global tokens and reset
next.config.mjs Next.js configuration
package.json Scripts and dependenciesThe website's roadmap, feature, and documentation navigation are driven by structured data files. Status text should be updated at the source rather than copied into multiple pages.
Build output
The desktop release binary is written under src-tauri/target/release/. The website production build is written under .next/. Both are generated artifacts and are ignored by version control.
Independence
The website does not import desktop source files or read the desktop repository at build time. The desktop application does not read the website repository. Brand assets are copied into each project rather than linked across repositories.
Continue with Build and checks.