Contacts and a deal pipeline are a genuinely buildable core — the same shape as any CRM already on the register. The gap opens up if you want email tracking or automated follow-ups instead of manual logging.
Borderline
Effort: a weekendRunning cost: $0/mo to start
Why CanICodeThis says Borderline
Contacts, companies, and deals moving through pipeline stages on a kanban board is a well-understood, bounded build
A simple activity log (calls, emails, notes) attached to each contact is ordinary CRUD
For tracking your own client relationships solo, this covers the real day-to-day need
The parts that'll cause problems
Automatic email tracking (open/click logged against the right contact) needs a real transactional-email integration, not just a database field
Follow-up reminders that actually fire on schedule need a background job, not just a due-date column
If you want a second person using it too, basic multi-user permissions add real scope
How I'd build this
frontend
Next.js
database
Supabase (Postgres)
auth
Supabase Auth
hosting
Cloudflare Pages / Vercel
MVP scope
Contacts and companies with basic fields
Deals on a kanban board with stages you define
A manual activity log per contact (notes, calls, meetings)
Single-user login
Postpone to v2
Automatic email open/click tracking
Scheduled follow-up reminders
A second team member with shared access
Reporting dashboards
What it actually costs to build
AI agent — with a subscription (Claude Pro/Max, Cursor, etc.)
$0 marginal
AI agent — pay-per-use API, no subscription
$43–$86 one-time
Hosting, once it's running
$0/mo (free tier)
Domain name, if you want your own
~$12/yr
Existing tools solving a similar problem typically run $14.9–$49/mo — see how they compare below.
The build prompt
Build me a personal CRM, genuinely achievable in a weekend:
1. Contacts and companies with custom fields — ordinary CRUD.
2. Deals on a drag-and-drop kanban board with stages you define yourself.
3. A manual activity log (notes, calls, meetings) per contact, newest first.
4. List view and board view over the same deal data — two renderers, one dataset.
A keyboard shortcut to quickly log a new activity is a nice, cheap addition worth including. That's a real, complete personal CRM. Out of scope: automatic email open/click tracking, which needs a transactional email provider's webhooks wired in as a separate integration, and a second team member with shared access, real multi-user permission scope beyond single-user use.