Mycorzha Map is an interactive exploration companion for the fungal realms of Mycorzha. The app pairs a richly illustrated React interface with a Tauri desktop shell so you can browse regional lore, track creatures, and manage local data whether you are online or off.
- Interactive regional atlas driven by
react-leaflet, custom SVG layers, and animated navigation. - Creature compendium sourced from individual JSON files in
src/data/creatures/, with desktop access to local saves via the Tauri file-system plugin. - Smooth navigation & gestures including idle auto-advance and fullscreen support optimized for kiosks.
- Cross-platform desktop build powered by Tauri 2.0 for Windows, macOS, and Linux, alongside a Vite-powered browser experience.
| Layer | Technologies |
|---|---|
| Frontend | React 19, TypeScript, Vite 7, Emotion, Sass, Framer Motion |
| Mapping | Leaflet 1.9, React Leaflet 5, custom assets in src/assets |
| Desktop Shell | Tauri 2, Rust, plugins for dialog, filesystem, and opener |
- Node.js ≥ 22 (LTS recommended)
- pnpm (recommended) — see https://pnpm.io/installation; this repo pins
[email protected]viapackageManagerinpackage.json - Rust toolchain (stable) with
cargo - Tauri CLI:
cargo install tauri-cliorpnpm add -g @tauri-apps/cli - Git LFS (optional, but recommended if you add large media assets)
git clone https://github.com/Morelitea/Mycorzha-Map.git
cd Mycorzha-Map
corepack enable
pnpm installpnpm run devVisit the printed local URL (usually http://localhost:1420). Hot-module reloading keeps React changes instant.
pnpm run tauri devThis launches the integrated Tauri shell, unlocking filesystem access for importing creatureData.json from local storage.
| Command | Description |
|---|---|
pnpm run dev |
Start the Vite development server for the browser build. |
pnpm run tauri dev |
Launch the Tauri desktop shell with live reload. |
pnpm run build |
Type-check and create a production bundle in dist/. |
pnpm run preview |
Serve the production bundle locally for validation. |
pnpm run tauri build |
Package platform-specific binaries (requires platform tooling). |
Mycorzha-Map/
├── src/ # React UI source
│ ├── components/ # UI components (Creature cards, navigation, accordions...)
│ ├── data/ # Region definitions, per-creature sample JSON, utilities
│ ├── types/ # Shared TypeScript types for regions, creatures, etc.
│ ├── utils/ # Custom hooks and helpers (idle navigation, gestures)
│ └── assets/ # Map banners, region art, icons, and other static media
├── src-tauri/ # Rust workspace for Tauri commands and configuration
├── public/ # Static files served as-is by Vite
└── dist/ # Production output (generated)
- The desktop app reads creature data from per-creature JSON files stored under
AppData/creatures/. Keep the bundled samples insrc/data/creatures/aligned with the runtime schema defined insrc/types/Creatures.tsandsrc/types/Regions.ts. - Regional metadata lives in
src/data/regionDefinitions.tswith per-region narrative files insrc/data/regionData/. Route IDs must match the/region/:regionIdpattern to keep navigation stable. - Update
src-tauri/tauri.conf.jsonif you add new Tauri capabilities (filesystem scopes, protocol handlers, etc.).
- Create a feature branch from
main. - Run
pnpm run dev(browser) andpnpm run tauri dev(desktop) to sanity check your changes. - Ensure
pnpm run buildandpnpm run tauri buildsucceed before opening a pull request. - Describe region or data changes clearly, and attach screenshots or screen recordings of new map interactions whenever possible.
- Missing Rust dependencies: Install the platform-specific build toolchain (e.g.,
build-essentialon Debian/Ubuntu, Xcode tools on macOS, MSVC on Windows). - Assets not loading: Confirm filenames in
src/assetsmatch imports exactly; Vite is case-sensitive on non-Windows hosts. - Creature data import issues: Validate JSON against the type definitions. When testing desktop-only flows, use
pnpm run tauri devso the filesystem plugin is available.
Built by the Morelitea team to bring the mushroom realms to life in both browser and desktop experiences.