Blog

  • The SaaS Tools Most Small Teams Pay For But Barely Use

    The Problem With the Modern SaaS Stack

    The average small team of five people carries a SaaS bill between $800 and $2,000 per month. Most of it is not one big tool — it is eight or ten tools at $15 to $30 each that nobody has audited since the credit card was put on file.

    The pattern is always the same: a tool gets added to solve a specific problem, the problem gets solved or changes shape, but the subscription keeps running.

    This is not a budgeting failure. It is a visibility failure. Nobody can see the full stack at once, and nobody owns the question of whether it is still working.

    The Five Categories Where We See It Most

    1. Scheduling Tools

    Common tools: Calendly, Acuity, SavvyCal

    Typical cost: $8-15/user/month

    What most teams actually use: The ability to share a link that lets someone book a 30-minute call and sends a confirmation email.

    That is a Python script with an HTML form and an SMTP send. It is a 2-hour build. Most teams pay for it monthly for years.

    2. Form and Survey Tools

    Common tools: Typeform, JotForm, SurveyMonkey

    Typical cost: $25-50/month

    What most teams actually use: A form that collects a few fields and emails the results to someone.

    That is a static HTML form with a POST endpoint. It is a 45-minute build. The branded progress bars and animated cards are not worth $600 a year.

    3. Transactional Email

    Common tools: Resend, Postmark, Mailgun, SendGrid

    Typical cost: $15-35/month

    What most teams actually use: Sending a confirmation email when someone signs up or submits a form.

    An SMTP relay from your hosting provider plus a 50-line Python function handles this. We rebuilt Resend's core use case in 135 minutes.

    4. Internal Notification Tools

    Common tools: PagerDuty, Opsgenie, parts of Slack Pro

    Typical cost: $10-25/user/month

    What most teams actually use: Getting an alert when something breaks.

    A webhook endpoint that posts to a Slack channel or sends an SMS via Twilio covers this. It is an afternoon build. The incident management dashboards and on-call rotation software are for teams ten times your size.

    5. Simple Reporting and Dashboards

    Common tools: Datadog (lite tier), Grafana Cloud, Retool

    Typical cost: $20-50/month

    What most teams actually use: A table or chart that shows one or two key numbers updated daily.

    A Flask app with a SQLite backend and a Chart.js frontend handles this for most small teams. The enterprise observability stack is not what you need.

    The Audit Question

    Before renewing any tool, ask one question: if this tool disappeared tomorrow, how long would it take us to rebuild what we actually use?

    If the answer is less than a day, the tool is a candidate for replacement.

    What We Do About It

    We do not suggest canceling everything at once. We suggest running one rebuild experiment per month. Pick the tool with the highest cost-to-usage ratio. Build a replacement. If it works, cancel the subscription. If it does not, you learned something and kept the backup.

    Over a year, a team that runs twelve of these experiments typically eliminates $400 to $800 per month from their SaaS bill.


    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.


  • 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.


  • We Replaced Resend With a Custom Email System Built in 2 Hours

    The Problem

    Resend costs $20/month. For many small teams, that is money spent on a tool they only partially use. We asked: can we rebuild the core functionality ourselves?

    What We Built

    A replacement for Resend using Python, Flask, and SMTP. The system handles transactional email delivery, basic template rendering, and send logging — covering the 80% use case for small teams.

    How We Did It

    Stack: Python, Flask, SMTP

    Estimated time: 135 minutes

    Build Steps

  • [done] Step 1: Scaffold Flask app and SMTP connection layer (Python, Flask, SMTP) – 20min
  • [done] Step 2: Implement send_email() with template variable substitution (Python, Jinja2) – 25min
  • [done] Step 3: Add send logging to SQLite (Python, SQLite) – 20min
  • [done] Step 4: Build REST endpoint POST /send (Flask) – 15min
  • [done] Step 5: Write validation layer and error handling (Python) – 20min
  • [done] Step 6: Test against live SMTP relay (SMTP, Python) – 15min
  • [done] Step 7: Document and package (Python) – 20min
  • Results

  • Steps completed: 7/7
  • Total build time: 135 minutes
  • Completion: 100%
  • Verdict: COMPLETE
  • Build vs Buy

    Buy (Resend) Build (Custom) Cost $20/month Time investment only Stack Managed SaaS Python, Flask, SMTP Setup Time Minutes 135 minutes Ongoing Cost $20/month $0 (self-hosted)

    Limitations of the Rebuild

  • No hosted deliverability infrastructure (you need your own SMTP relay)
  • No open/click tracking without additional build work
  • No GUI dashboard – API and logs only
  • Not suitable for high-volume bulk email without relay configuration
  • Verdict

    The rebuild is complete. We successfully replaced Resend with a custom solution built in 135 minutes using Python, Flask, SMTP. The ongoing cost is $0.


    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.