Knowledge Tree
Minimalist graph-based knowledge management system inspired by Zettelkasten. Visualize and connect your thoughts in an interactive network β fully keyboard-driven.
Knowledge Tree Kn-π¦-β-π³
A minimalist graph-based knowledge management system inspired by Zettelkasten methodology. Navigate your entire knowledge network without leaving the keyboard.
Idea
I wanted a simple UI/web tool where I could manage my knowledge as a graph, similar to Zettelkasten, without using Obsidian with millions of plugins.
Overview
Knowledge Tree helps you build a personal knowledge base through interconnected notes. Each note becomes a node in your knowledge graph, with relationships that form meaningful connections between ideas and thoughts. The dashboard is fully controllable via Vim keybindings, with dark/light theme support persisted across sessions.
Tech Stack
- Frontend: Next.js 15, React, TypeScript, TailwindCSS
- Visualization: Sigma.js with Graphology
- Backend: tRPC, Prisma ORM
- Database: PostgreSQL
- Authentication: NextAuth.js
Theme
Toggle between dark and light mode via the theme button in the top bar. Preference is saved in localStorage.
Vim Keybindings
The entire dashboard is keyboard-driven. Press ? at any time to open the in-app reference.
Node List
-
j/kβ move down / up the list -
lorEnterβ open node in editor -
nβ create new node -
ddβ delete node (with confirmation) -
/β search by title or content -
gorTabβ toggle graph view
Editor β Normal Mode
-
h/l/j/kβ move cursor -
w/b/eβ next / prev / end of word -
0/$/^β line start / end / first non-blank -
gg/Gβ document top / bottom -
i/a/A/o/Oβ enter Insert mode -
dd/yy/p/Pβ delete / yank / paste line -
dw/cw/ccβ delete / change word / line -
ci"ci(ci[β change inside pair -
u/Ctrl+Rβ undo / redo (50-level history) -
vβ Visual mode -
Spaceβ open link panel -
qβ save and return to list -
Ctrl+Sβ save note
Link Panel (Space)
-
h/lβ cycle link type -
j/kβ navigate sections -
EnterorSpaceβ create link -
dβ delete connection -
Escβ close panel
Connecting Ideas
- Select a node and press
Spaceto open the link panel - Choose relationship type:
- Parent/Child β hierarchical connections (one parent per node, no cycles)
- Reference β related concepts
- Example β concrete instances
- Contradiction β conflicting ideas
- Navigate to a candidate and press
Enterto link
Wiki-links
Type [[ in Insert mode to trigger autocomplete against existing node titles. Selecting a suggestion inserts a [[Node Title]] inline link.
Graph Navigation
- Click β select node and open in editor
- Hover β preview node content
- Drag β pan around the graph
- Scroll β zoom in/out
- Double-click (empty space) β create node at position
Database Schema
Node - Stores individual knowledge units, belongs to a user, contains title and content
Edge - Connects two nodes, types: parent, reference, example, contradiction
User - Authentication and ownership, isolated knowledge graphs per user
Knowledge Tree GitHub Repository
Contributors
Live Demo
Create an account and build your first knowledge network