Local-first idea-to-project workspace.
Capture raw ideas, promote the ones that matter into projects, plan on a Kanban board, link notes, and track momentum — without shipping your data anywhere by default.
Features • Quick Start • Self-Hosting • Architecture • Contributing • License
🧠 Brain Dump — zero-friction idea capture with Space key shortcut
📁 Multi-Workspace — personal + team workspaces, each with its own projects
📋 Kanban Board — native HTML5 drag-and-drop + keyboard movement
📝 Linked Notes — notes connected to ideas and projects with voice memos
🕸️ Relationship Graph — visual brain map with smooth bezier curves and nebula styling
🎯 Focus Mode — daily slots and distraction-free flow
📊 Stats & Momentum — idea-to-reality ratio, export/import JSON
🤖 8 AI Providers — OpenAI, Anthropic, OpenRouter, Mistral, DeepSeek, Groq, Ollama Cloud (BYOK = free)
🔒 Privacy-First — all data stays on your device unless you explicitly enable cloud
☁️ Optional Cloud — Supabase-powered auth, teams, invites, and workspace sync
🖥️ Desktop App — Electron build for Windows, macOS, and Linux
📱 PWA — installable, works offline with service worker
# Clone
git clone https://github.com/Xelson431/OpenNapse.git
cd OpenNapse
# Install dependencies
pnpm install
# Start development server
pnpm devOpen http://localhost:5173. That's it — no database, no backend, no accounts required.
# Dev mode (requires pnpm dev running in another terminal)
pnpm --filter @opennapse/web electron:dev
# Build installer (.exe / .dmg / .AppImage)
pnpm --filter @opennapse/web electron:buildOpenNapse works in two modes:
Deploy the built frontend to any static host. All data lives in the user's browser (IndexedDB).
pnpm build
# Upload apps/web/dist/ to Cloudflare Pages, Vercel, Netlify, or nginxAdd Supabase for authentication, team workspaces, and the AI credit system.
# 1. Create a Supabase project at https://supabase.com
# 2. Copy env vars
cp apps/web/.env.example apps/web/.env.local
# Edit .env.local with your Supabase URL + anon key
# 3. Run migrations
supabase link --project-ref <your-ref>
supabase db push
# 4. Deploy Edge Functions
supabase functions deploy bootstrap-personal-workspace
supabase functions deploy invite-member
supabase functions deploy accept-invite
supabase functions deploy test-provider-connection
supabase functions deploy run-ai-action
# 5. Start
pnpm devdocker compose upSee docker/ for the self-host scaffolding.
apps/web/ React 19 + Vite + TypeScript frontend
src/
domain/ Zod-validated models (ideas, projects, tasks, notes, workspaces)
stores/ Zustand state management
db/ DBAdapter interface → BrowserLocalAdapter (IndexedDB) or SupabaseCloudAdapter
ai/ Provider registry (8 providers), action costs, consent gates
auth/ Supabase auth hooks, teams service, credits, audit
components/ Extracted UI components
lib/ Shared utilities
electron/ Electron main + preload (compiles to dist-electron/)
e2e/ Playwright end-to-end tests
supabase/
migrations/ Postgres schema (workspaces, content tables, RLS, ops tables)
functions/ Edge Functions (AI gateway, invites, workspace bootstrap)
docs/ Architecture, security, external providers notes
docker/ Self-host scaffolding
- Local-first by default — IndexedDB via
idbwrapper; no backend required - Adapter pattern —
DBAdapterinterface lets the app swap between local and cloud storage - Workspace-scoped — every record has
workspaceId+createdBy; RLS enforces boundaries - BYOK AI — bring your own API key, bypass all credit charges, keys stored in Supabase Vault (never in browser)
- No secrets in the bundle — hosted provider keys are session-only in memory; never persisted to storage
| Script | What it does |
|---|---|
pnpm dev |
Start Vite dev server |
pnpm build |
Typecheck + production build |
pnpm typecheck |
TypeScript project check |
pnpm lint |
ESLint |
pnpm test |
Vitest in watch mode |
pnpm test:run |
Vitest one-shot (48 tests) |
pnpm --filter @opennapse/web electron:dev |
Electron dev mode |
pnpm --filter @opennapse/web electron:build |
Package desktop installer |
pnpm --filter @opennapse/web exec playwright test |
E2E tests |
- Node 20+
- pnpm 10+
We welcome contributions! Please read CONTRIBUTING.md before submitting a PR.
Found a vulnerability? Please report it responsibly. See SECURITY.md.
MIT — use it however you want.
Built with ❤️ for people who think in ideas, not tasks.