notes/README.md

87 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

# Graph Notes
A local-first, graph-based note-taking app built with Tauri, React, and Rust. Think Obsidian meets Roam — your notes live as plain Markdown files on disk, connected by `[[wikilinks]]` and visualized as an interactive knowledge graph.
## Features
**Core Editing**
- Rich contenteditable editor with inline Markdown styling
- `[[Wikilink]]` autocomplete with note creation on the fly
- Slash commands, heading folding, split-pane editing
- Tabbed editor with drag-reorder
**Knowledge Graph**
- Force-directed graph visualization with semantic zoom
- Graph filtering, focus mode, orphan detection
- Local backlink graph and analytics dashboard
**Organization**
- Sidebar file tree with drag-and-drop, folders, favorites, pinning
- Full-text search, command palette (`⌘K`), tags
- Calendar view, timeline view, kanban board
**Advanced**
- Frontmatter properties panel and database views (table/gallery/list)
- Dataview queries — inline `TABLE ... SORT ...` blocks
- Canvas whiteboard for freeform visual thinking
- Spaced repetition flashcards (SM-2 scheduling)
- Note encryption (AES-256-GCM with Argon2 key derivation)
- Git sync (commit/push/pull panel)
- Version history with inline diff viewer
**Customization**
- 5 built-in themes with live preview
- Custom CSS snippets editor
- Configurable keyboard shortcuts
- Workspace layouts (save/restore window arrangements)
**Import / Export**
- Export vault as ZIP, individual notes as HTML or PDF
- Import Markdown folders from Obsidian, Notion, etc.
## Tech Stack
| Layer | Technology |
|---|---|
| Desktop shell | [Tauri v2](https://tauri.app) |
| Frontend | React 19, TypeScript, Vite |
| Backend | Rust (filesystem, search, encryption, graph) |
| Styling | Tailwind CSS 4 + custom design tokens |
| Graph engine | [@blinksgg/canvas](https://github.com/blinksgg), d3-force, graphology |
## Development
```bash
# Install dependencies
npm install
# Run in development mode (starts both Vite dev server and Tauri)
npm run tauri dev
# Build for production
npm run tauri build
```
### Prerequisites
- [Node.js](https://nodejs.org) ≥ 18
- [Rust](https://rustup.rs) toolchain
- [Tauri v2 prerequisites](https://v2.tauri.app/start/prerequisites/)
## Project Structure
```
├── src/ # React frontend
│ ├── components/ # 33 UI components
│ ├── lib/ # Commands, frontmatter, wikilinks, note cache
│ └── index.css # Design system (tokens, component styles)
├── src-tauri/ # Rust backend
│ └── src/lib.rs # Tauri commands (notes, graph, search, encryption, git)
├── vault/ # Default vault directory (gitignored)
└── package.json
```
## License
MIT