No description
  • TypeScript 46.4%
  • Dockerfile 36.6%
  • Rust 10.6%
  • Shell 5.1%
  • CSS 1.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-06-18 14:38:49 +00:00
.devcontainer made git upstream available in container 2026-06-17 22:15:24 +00:00
.vscode updated project information 2026-06-18 14:38:49 +00:00
crates updated project information 2026-06-18 14:38:49 +00:00
docs updated project information 2026-06-18 14:38:49 +00:00
frontend/styles intitial project setup 2026-06-17 21:58:42 +00:00
frontend-js intitial project setup 2026-06-17 21:58:42 +00:00
.gitignore updated project information 2026-06-18 14:38:49 +00:00
Cargo.toml intitial project setup 2026-06-17 21:58:42 +00:00
LICENSE Initial commit 2026-06-16 20:52:37 +00:00
package.json intitial project setup 2026-06-17 21:58:42 +00:00
pnpm-lock.yaml intitial project setup 2026-06-17 21:58:42 +00:00
README.md updated project information 2026-06-18 14:38:49 +00:00
tsconfig.json intitial project setup 2026-06-17 21:58:42 +00:00
vite.config.ts intitial project setup 2026-06-17 21:58:42 +00:00

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