Back to work

Seedbox

Local-firstPaint daubsGitHub
ProblemConsumer AI chat apps send every message to someone else’s cloud. Users who care about privacy need a local-first alternative — but wiring Ollama, a vector DB, and a polished desktop UI is not a weekend project.
My roleSolo — designed + built
OutcomeShipped alpha → beta → alpha-release. Public source-available on GitHub.
CONTEXT

Privacy-first local LLMs, with a polished UI

Consumer AI chat apps send every message to someone else’s cloud. Users who care about privacy need a local-first alternative — but wiring Ollama, a vector DB, and a polished desktop UI together is not a weekend project.

Seedbox packages the whole stack into a single installable app: pick a local model, talk to it, keep everything on your machine.

01 · UI

Chat as a graph, not a transcript

Built the conversation surface on React Flow (Xyflow). Instead of a linear scroll of messages, chats live as nodes on a canvas — you can branch, compare responses side-by-side, and navigate threads spatially. Long exploratory sessions feel structural, not endless.

Seedbox chatroom with React Flow graph
Chat flow as a graph — branch and compare instead of scrolling a transcript.
02 · STACK

Local-first data, end to end

SQLite for chat history, LMDB for vector embeddings, optional Redis for caching. Nothing leaves the device.

A Fastify server runs inside the Electron main process, exposed to the renderer through a custom `app://` protocol — the UI gets the ergonomics of a web app while every byte stays local.

Seedbox main interface — dark theme
Main app surface. Everything is local.
03 · MODELS

Ollama integration with a settings surface

Model selection, system-prompt config, and sampling controls surfaced through a settings panel. Llama 3.2 as the default; any Ollama-compatible model plugs in from the UI.

Seedbox model settings view
Model and sampling controls.
04 · CRAFT

Details that add up

A Three.js animated background so the app doesn’t feel like a stock Electron shell. Light/dark theme with persistent preference. Markdown with math (KaTeX), GFM tables, and remark directives — so technical answers render properly. None of this is the feature, but all of it is what makes the tool feel considered.

Seedbox in-session
Session view with 3D background and theming.
05 · SHIP

Cross-platform builds

electron-builder configs for Windows (NSIS installer), macOS (DMG — code-signing pipeline ready), and Linux (AppImage / Snap / Debian). One codebase, three distributions. Seedbox has shipped alpha → beta → alpha-release; public on GitHub as source-available.

See how I ship with agentsBack to work