Interactive demo · all data fictional
A local-first, AI-native personal CRM for relationship-driven business development. One SQLite file, three doors in — a web app, Claude Desktop via MCP, and built-in AI features that draft the busywork while you keep the judgment.
Best experienced starting at the Dashboard — every page has an ⓘ explainer of what it does and how it works.
Everything lives in one SQLite file on your own machine. No cloud, no accounts, no sync — the web app, the MCP server, and the AI features all read and write the same database, so nothing is ever stale.
Claude runs headless with explicit read-only tool grants — web search for intake research, Zoom/Gmail readers for logging, Calendar+Gmail+web for meeting prep. It drafts; a human review screen approves. Nothing writes itself.
Not a sales pipeline with contacts bolted on: urgency buckets ask "whose move is it?", cadences keep warm relationships warm, and profiles capture relationship intelligence — origin, mutuals, strategy — in editable markdown.
The demo is the full app running on a fictional dataset — 16 people, 9 companies, 10 deals, and a month of activity. Click anything; changes are live and reset periodically. AI features are scripted simulations of the real flows.
One screen answering "whose move is it?" — overdue items, live deals, contacts due for a touch, recent activity.
Paste a LinkedIn profile or raw notes; Claude researches, writes the profile in house style, finds network connections, and proposes next steps — reviewed before saving.
Turn a meeting or email thread into log entries on the right contacts — Claude can fetch the Zoom transcript or Gmail thread itself, then closes stale to-dos.
A 3-minute meeting brief: where things stand, what changed since last touch (Gmail, calendar, web — source-attributed), objectives, talking points, watch-outs.
Every outstanding item in urgency buckets — overdue, this week, awaiting the other party, log gaps — checked off in one click.
Kanban of opportunities across consultant-shaped stages: Identified → In conversation → Scoping → Negotiating → Engaged.
Every contact scored against a per-person follow-up cadence; logging an interaction resets the clock.
Live force-directed relationship graph — people, companies, made and owed intros. Hover isolates a node's network.
Rich profiles: Relationship Intelligence, Business Context, Engagement Strategy — every section editable in place, with per-profile interaction logs.
The production app is Next.js (App Router) with React Server Components and server actions over better-sqlite3 — no client-side state libraries, no ORM, forms are plain HTML posting to server actions. The database is the single source of truth for three clients: this web UI, Claude Desktop (through a 16-tool MCP server), and Claude Code sessions in the repo.
The AI features spawn the locally installed Claude Code CLI in headless mode — same subscription as Claude Desktop, no API key — each with a minimal read-only tool grant. Every AI output lands on a review screen before anything is saved.
This demo swaps SQLite for an in-memory fictional dataset and the CLI calls for scripted simulations, so it deploys anywhere Node runs — but the pages, components, and flows are the real ones.
┌─────────────┐ ┌────────────────┐ ┌──────────────┐
│ Web app │ │ Claude Desktop │ │ Claude Code │
│ (Next.js) │ │ (MCP server, │ │ (sessions │
│ │ │ 16 tools) │ │ in repo) │
└──────┬──────┘ └───────┬────────┘ └──────┬───────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────┐
│ data/crm.db (SQLite) │
│ single source of truth │
└─────────────────────────┘
▲
│ headless claude -p (read-only grants)
┌──────┴───────────────────────────────┐
│ ✨ Intake ✎ Log 🗓 Prep │
│ web search Zoom/Gmail Cal+Gmail │
└──────────────────────────────────────┘