We Built a Simple CRM to Replace HubSpot Starter in One Afternoon

The Problem

HubSpot Starter costs $20/month. For a small team managing a pipeline of 30 to 50 active deals, most of what HubSpot Starter does is: store contact records, track deal stages, and send a follow-up email reminder when a deal goes cold.

We were not using the marketing automation, the ad attribution, or the reporting dashboards. We were using it as a glorified spreadsheet with a kanban view and email reminders.

We asked: what would it take to build exactly what we use?

What We Built

A lightweight CRM using Python, Flask, and SQLite. It stores contact records, tracks deals through a configurable pipeline, and sends a daily digest of deals that have not been touched in more than five days.

How We Did It

Stack: Python, Flask, SQLite, SMTP, HTML/CSS/Jinja2

Estimated time: 180 minutes

Build Steps

  • [done] Step 1: Design schema — contacts, deals, pipeline stages, activity log (Python, SQLite) – 20min
  • [done] Step 2: Build contacts CRUD — add, edit, view, search (Python, Flask, Jinja2) – 30min
  • [done] Step 3: Build deals CRUD with stage tracking — create deal, move through stages (Python, Flask, SQLite) – 35min
  • [done] Step 4: Activity log — record every stage change and note with timestamp (Python, SQLite) – 20min
  • [done] Step 5: Stale deal digest — daily script identifies deals with no activity in 5+ days, sends email summary (Python, SMTP, SQLite) – 25min
  • [done] Step 6: Pipeline view — one-page kanban-style HTML view of all open deals by stage (Python, Flask, HTML/CSS) – 30min
  • [done] Step 7: Test full workflow: add contact, create deal, move stages, trigger digest (Flask, SMTP) – 20min

Results

  • Steps completed: 7/7
  • Total build time: 180 minutes
  • Completion: 100%
  • Verdict: COMPLETE

Build vs Buy

Buy (HubSpot Starter) Build (Custom)
Cost $20/month Time investment only
Stack Managed SaaS Python, Flask, SQLite
Setup Time Hours (data import, field mapping) 180 minutes
Ongoing Cost $20/month $0 (self-hosted)

Limitations of the Rebuild

  • No email open/click tracking
  • No built-in meeting scheduling or calendar integration
  • No mobile app — browser only
  • No third-party integrations out of the box (Slack, Google Workspace)
  • Search is simple — no fuzzy match or advanced filtering
  • Scales poorly beyond a few hundred contacts without schema optimization

Verdict

The rebuild is complete. A CRM covering our actual daily use case took 180 minutes to build using Python, Flask, and SQLite. The ongoing cost is $0.

For a small team managing a modest pipeline without needing marketing automation, this covers the full use case.


Want us to build this for you?

We help small teams replace expensive SaaS tools with AI-assisted custom builds. If you are paying for a tool you barely use, we can probably rebuild it for less.

Get a free rebuild assessment

Free giveaway: Every month we give away one free rebuild to a qualifying team. Reply to this post or DM us to enter.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *