- TypeScript 46.4%
- Dockerfile 36.6%
- Rust 10.6%
- Shell 5.1%
- CSS 1.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .devcontainer | ||
| .vscode | ||
| crates | ||
| docs | ||
| frontend/styles | ||
| frontend-js | ||
| .gitignore | ||
| Cargo.toml | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Weaving Realms
Weaving Realms is a local-first world-building application designed for authors, game masters, and setting designers.
It combines markdown notes, interactive maps, knowledge graphs, timelines, genealogies, and custom calendars into a single desktop application.
The project is built using Rust, Tauri, Leptos, SQLite, and WebAssembly.
Features
Notes
- Markdown-based notes
- Directory-style notes organization
- Tags
- Wiki links
- Backlinks
- Typed notes
Knowledge Graph
- Visualize relationships between notes
- Custom relation types
- Filter by type, tag, directory, or relation
- Explore connected entities
Interactive Maps
- Attach notes to locations on fictional maps
- Multiple maps per project
- Zoomable and pannable map view
- Regions, markers, and layers
Timelines
- Historical events
- Character timelines
- Multiple timeline support
- Custom calendar integration
Genealogy
- Family trees
- Dynasties
- Successions
- Custom lineage relationships
Calendars
- Custom months
- Custom eras
- Fictional date systems
- Multiple calendars per world
Local First
- SQLite storage
- No account required
- No cloud dependency
- Exportable data
Philosophy
Weaving Realms treats everything as a note.
Characters, places, factions, events, religions, species, items, and concepts are all notes with:
- A type
- Metadata
- Relations
This allows every entity in a world to participate in the graph, map, timeline, and search systems.
Architecture
Note
├── Markdown
├── Type
├── Metadata
└── Relations
Organization
Folder = organization
Tag = loose grouping
Type = entity classification
Relation = meaning
Technology Stack
Backend
- Rust
- Tauri
- SQLite
- SQLx
Frontend
- Leptos
- WebAssembly
- TypeScript
Visualization
- Leaflet.js
- Cytoscape.js
- CodeMirror
Styling
- Tailwind CSS
- Lucide
Development Environment
Requirements:
- Rust stable
- Node.js 24+
- pnpm
- SQLite
Recommended:
- VSCode
- Dev Containers
Setup
Clone the repository:
git clone
cd weaving-realms
Install frontend dependencies:
pnpm install
Create the database:
sqlx database create
sqlxmigrate run
Run the application:
pnpm tauri dev
Workspace Layout
crates/
├── core/
├── db/
├── app/
└── desktop/
frontend/
frontend-js/
migrations/
Core
Domain objects and business rules.
DB
Repositories and SQLx integration.
App
Leptos frontend and application services.
Desktop
Tauri shell and native commands.
Roadmap
Version 0.1
- Notes
- Directories
- Tags
- Search
- Markdown editor
Version 0.2
- Relations
- Graph view
- Backlinks
Version 0.3
- Interactive maps
Version 0.4
- Timelines
Version 0.5
- Genealogy
Version 0.6
- Custom calendars
Future
- Templates
- Attachments
- Import/export improvements
- Synchronisation
License
GNU GPLv3