Skip to content

TX-220/dendrite

Repository files navigation

Dendrite

A fast, offline-first mind mapping application. Create, organise, and navigate complex idea trees — no account, no internet connection, no data leaving your machine.

Built with Next.js 14, React Flow, Prisma, and SQLite.

Screenshots

Home screen Down branch layout
Home — manage all your maps Top-down tree layout
Bidirectional layout Draggable toolbar
Bidirectional layout (left & right branches) Draggable toolbar with layout controls
Left-directed layout Right-directed layout
Left-directed layout Right-directed layout
Auto-arrange after selecting orientation Right-click context menu
Select orientation → Auto-Arrange Right-click context menu

Features

  • Offline-first — All data stored locally in SQLite. No cloud, no account required.
  • Hierarchical maps — Unlimited parent/child depth with automatic tree layout
  • Layout modes — Top-down, left, right, or bidirectional orientations
  • Node search — Press Ctrl+F to find and navigate to any node instantly
  • File attachments — Attach images and documents directly to nodes
  • Collapse/expand — Hide subtrees to reduce visual noise
  • Auto-arrange — One-click hierarchical layout
  • Colour coding — Per-node visual customisation

Browser Support

Browser Version
Chrome 90+
Edge 90+
Firefox 88+
Safari 14+

Requires ES2020 and the File and localStorage APIs.

Installation

Prerequisites: Node.js 18+, npm (or pnpm)

# Clone the repository
git clone https://github.com/TX-220/dendrite.git
cd dendrite

# Install dependencies
npm install          # or: pnpm install

# Set up environment
cp .env.example .env

# Initialize the database
npx prisma migrate dev --name init

# Start the development server
npm run dev

Open http://localhost:3005 in your browser.

Usage

Action How
Create a map Click Create Project on the home screen
Add a root node Right-click canvas → Add Root Node, or press Ctrl+A
Add a child node Right-click a node → Add Child Node
Edit a node Double-click the node label
Search nodes Ctrl+F — type to filter, Enter to cycle to next, Shift+Enter to previous
Attach a file Right-click a node → Attach File
Auto-arrange Toolbar → Auto-Arrange
Navigate canvas Scroll to zoom, drag to pan

Privacy & Data Storage

Dendrite is fully offline and self-contained.

  • Maps and nodes — Stored in a local SQLite database (prisma/dev.db)
  • Attached files — Stored in public/uploads/ on your local machine
  • No external communication — No data is ever sent to external servers
  • No analytics or tracking — No telemetry, tracking pixels, or third-party services

Your data never leaves your machine.

Storage Capacity

Database (prisma/dev.db)

Dendrite uses SQLite, which has no meaningful size ceiling for personal use:

Metric Limit
Database file size Limited by your local machine's storage capacity (SQLite theoretical max is 281 TB, but practically limited to available disk space)
Number of maps Unlimited
Nodes per map Unlimited; smooth up to ~500, usable beyond
Node label length Unlimited (stored as text)
Edges per map Unlimited

Performance notes:

  • Maps with < 200 nodes render and animate smoothly at all times
  • Maps with 200–500 nodes may have slight layout-calculation delays (~0.5–1s on auto-arrange)
  • Maps with 500+ nodes are supported but layout recalculation becomes noticeably slower; consider splitting into sub-maps

File Attachments (public/uploads/)

Files are written directly to your local filesystem:

Metric Limit
Individual file size No enforced limit — constrained only by disk space
File types All types accepted (images, PDFs, documents, archives, etc.)
Files per node Unlimited
Total attachment storage Constrained only by available disk space

Note: Large files (> 100 MB) may cause slow uploads in development mode (npm run dev) due to Next.js request buffering. For heavy file use, run a production build (npm run build && npm start).

Backup & Restore

To back up all data:

# Copy the database
cp prisma/dev.db prisma/dev.db.backup

# Copy all file attachments
cp -r public/uploads/ ~/dendrite-uploads-backup/

To restore, place both back in their original locations and restart the app.

Development

npm run dev            # Dev server (port 3005)
npm run build          # Production build
npx prisma studio     # Visual database browser
npx prisma migrate dev --name <migration-name>  # Create a schema migration

Author

TX-220 — Concept, design, direction. Claude (Anthropic) — Implementation. Claude Code & — Development. Gemini (UI/styling)

License

MIT — See LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors