A companion web app for mystery and adventure games. Track quests, insights, items, maps, and threads between people and places—then follow those threads in a loom (network) view to visualize relationships and progress.
A companion app for mystery and adventure games that lets users track quests, insights, items, maps, and threads between people and places.
- Thread-oriented — Clear visualization of relationships and pathways; set a target and follow a thread to reach it. The loom surfaces a followable network, not a flat map of everything.
- Contextual progression — Surface threads you can follow based on current items and insights; highlight what is actionable now.
- Spoiler-friendly — Hide information until you have the required progression to uncover it.
- User-driven logging — You drive progression, notes, and your own solutions; not a fixed checklist to search and check off.
| Entity | Description |
|---|---|
| Quest | Objectives, goals, and progress tracking |
| Insight | Key information, lore, and understanding that helps solve or advance |
| Item | Inventory and key objects |
| Map | Spatial context and location tracking |
| Person | Characters and NPCs |
| Place | Locations and rooms |
| Thread | Links between entities (e.g., Person ↔ Place); the loom is the graph view |
Design and specification docs live in docs/:
| Doc | Description |
|---|---|
| Design Spec | Vision, differentiators, principles, scope, core entities |
| Features | Feature list and user stories |
| Data Models | Entity schemas and relationships |
| Architecture | Tech stack and project structure |
| Implementation Plan | Phased plan for local-first build and redirectability |
QuestLoom/
├── docs/ # Design and spec
├── public/ # Static assets
├── src/
│ ├── components/ # UI components
│ ├── features/ # Feature modules (quests, insights, items, etc.)
│ ├── hooks/ # Shared hooks
│ ├── lib/ # Data layer (repositories, Dexie)
│ ├── stores/ # State management (Zustand)
│ ├── types/ # TypeScript types / data models
│ ├── utils/ # Utilities
│ ├── App.tsx
│ ├── main.tsx
│ └── index.css
├── index.html
├── package.json
├── vite.config.ts
├── tailwind.config.js
├── tsconfig.json
└── eslint.config.js
Prerequisites: Node.js 18+ and npm.
-
Install dependencies
npm install
-
Run the app
npm run dev
Open the URL shown. You should see the QuestLoom shell (header + main area).
-
Validate build and lint
npm run build npm run lint npm run format
Phase 0 (bootstrap) is complete: Vite + React + TypeScript, Tailwind, Zustand, Dexie, ESLint, Prettier, and folder structure. Next: Phase 1 (local data foundation).
TBD.