A multi-user Kanban dashboard for organizing links, notes, and documents into draggable columns. Built with SvelteKit 2, Svelte 5, and SQLite.
- Kanban board — Organize content into columns with drag-and-drop reordering
- Three item types — Links (with auto-fetched metadata & favicons), markdown notes, and file uploads
- Spaces — Isolated workspaces, each with its own categories, items, and file storage
- Space sharing — Share spaces with other users (read-only or read-write permissions)
- Multi-user auth — Registration with invite codes, email verification, and session-based login
- Admin panel — Manage users, invite codes, and per-user storage quotas
- Single-user mode — Self-host without authentication (
SINGLE_USER=true) - Hierarchical categories — Nest subcategories for deeper organization
- Tags & filtering — Colored tags with multi-tag filtering, combined with search
- Search — Full-text search across titles, descriptions, and content
- Drag and drop — Reorder items and columns, or drop URLs and files directly onto a column
- Export & import — Back up and transfer spaces as ZIP archives
- Markdown — Notes render full markdown with syntax highlighting and sanitized HTML
- Theming — Light, dark, and system-following themes with 8 accent colour palettes
- Keyboard shortcuts —
/orCtrl+Kto search,Ctrl+Nfor new item,Ctrl+Shift+Nfor new category
git clone https://github.com/TomGem/Pane.git
cd Pane
pnpm install
pnpm devOpen http://localhost:5173. The first user to register becomes the admin (no invite code needed). After logging in, create a space or click Load Sample Data on an empty board to get started.
For single-user mode (no auth): SINGLE_USER=true pnpm dev
No Node.js required — just Docker:
docker run -d -p 3000:3000 -v ./data:/app/data -v ./storage:/app/storage ghcr.io/tomgem/pane:latestOr clone and build locally:
git clone https://github.com/TomGem/Pane.git
cd Pane
docker compose up -dOpen http://localhost:3000. Data persists in ./data/ and ./storage/.
| Guide | Description |
|---|---|
| Getting Started | Installation, requirements, and first run |
| User Guide | How to use Pane — spaces, items, tags, sharing, shortcuts |
| Architecture | Technical overview for developers |
| Deployment | Production builds and self-hosting |
- SvelteKit 2 — Full-stack framework with SSR and API routes
- Svelte 5 — Runes-based reactivity (
$state,$derived,$effect) - better-sqlite3 — Synchronous SQLite driver with WAL mode
- svelte-dnd-action — Drag-and-drop for columns and items
- marked + DOMPurify — Markdown rendering with XSS sanitization
MIT — see LICENSE.
