BrainDump is a rapid-fire idea capture web app with AI categorization and a force-directed graph. It is local-first, persists to SQLite, and runs on Bun + Hono with a static SPA frontend.
- Single input, always focused; press Enter to submit.
- AI categorization via Ollama and a short, constrained prompt.
- Cytoscape graph: large category nodes, small thought nodes, animated layout.
- SQLite persistence with export to JSON.
- Local Docker deployment with a mounted data volume.
- Bun (runtime)
- Ollama running locally (http://127.0.0.1:11434)
- Docker (optional, for containerized setup)
bun install
ollama run qwen2.5-coder:7b
bun run devOpen http://localhost:3000.
make up
make logsThe container expects Ollama reachable at OLLAMA_BASE_URL (default in compose.yaml is http://host.docker.internal:11434).
OLLAMA_BASE_URL(defaulthttp://127.0.0.1:11434)OLLAMA_MODEL(defaultqwen2.5-coder:7b)PORT(default3000)
bun run devormake dev: run the API with live reload.bun run start: run once.make export: export todata/export.json.make clean: remove containers and local data.
GET /api/graph: returns all categories and thoughts.POST /api/thought: categorizes and stores a thought ({ "text": "..." }).DELETE /api/clear: clears all data.GET /api/export: downloads a JSON export.
src/index.ts: Hono app entry + static serving.src/routes/: API routes.src/db.ts: SQLite schema and queries.src/static/: SPA assets (HTML, CSS, JS).data/: SQLite database storage (volume mount).