I Killed a $2K/Month Tool With 40 Lines and a Cron Job
A teardown of when rebuilding one feature beats renewing the whole platform, and the larger set of cases where it does not.
I killed a $2,000-a-month subscription last quarter and replaced it with 40 lines of Python and a cron job.
Here is the part that stings: I had paid that tool roughly $46,000 over two years. When I finally looked at what we actually used, it was one feature. One. A scheduled scrape of competitor pricing pages, normalized into a table, dropped into Slack every morning. The other 90% of the platform sat untouched, a museum of dashboards nobody opened.
So I rebuilt the one thing. It took an afternoon. It has run every morning since without a bill.
This is not a build-everything-yourself manifesto. Those people are wrong too, and I will get to why. This is a sober look at the small, specific set of cases where building beats buying for a lean operator, and the much larger set where it absolutely does not.
What I actually replaced
The tool was a competitive-intelligence platform. Slick onboarding, a customer success manager named Brandon, the works. Pricing started at $2,000 a month on the annual plan.
We used it to watch eleven competitor pricing pages. Every morning it told us if anyone changed a price. That signal was genuinely valuable, so when the renewal came up I almost clicked the button on autopilot.
Instead I wrote down the job in plain English: fetch eleven URLs, pull the price elements, compare to yesterday, post the diffs to Slack. Then I asked what part of that needed a $24,000-a-year platform. The honest answer was none of it.
Comparison
The competitive pricing watch
Before
$2,000/mo SaaS, 11 dashboards we never opened, a CSM, a 14-month contract
After
40 lines of Python, one cron job, $0/mo, runs in 9 seconds
The replacement is a single script. It uses Playwright to load each page, a few CSS selectors per competitor, and a Slack webhook. Cron fires it at 6 a.m. Total runtime is about 9 seconds. Total cost is the rounding error of a server I already run.
$24,000/yr
recurring cost removed by rebuilding one feature
The rule I use now
After this I stopped trusting my gut on build versus buy, because my gut said renew. I built a cheap test instead.
For any subscription, I score it on two axes: how much of the product I actually use, and how core the job is to my business. That gives four quadrants, and only one of them says build.
Build it
- Core to the business
- I use one slice
- e.g. my pricing watch
Keep paying
- Core to the business
- I use most of it
- e.g. Stripe, the CRM
Cancel it
- Not core
- I barely touch it
- the easy delete
Downgrade
- Not core
- I use a lot
- drop to a cheaper tier
How much of the product I use →
The top-left quadrant is the only one worth building. Core job, but you use a sliver of a sprawling product. That sliver is usually a weekend of code. The top-right is where buying wins and I never touch it: payments, the CRM, anything with compliance, multi-user state, or a support phone number I want to call at 2 a.m.
Build the feature you use. Buy the system you depend on.
When buying still wins, and it is most of the time
I want to be loud about this, because the internet is full of people who rebuilt their own auth and then got owned.
Buy anything that holds money. Buy anything that holds other people’s data. Buy auth, billing, email deliverability, and your accounting. The DIY version of those is cheap to write and ruinous to maintain. I have watched a founder spend three months and a near-breach rebuilding what Clerk does for $25 a month. That math never works.
The honest version of my own story: this works because the job is small, stable, and low-stakes. If my script misses a price change for a day, nobody dies and no money moves. That is exactly why it was safe to build. The moment a job has real downside on failure, the $2,000 is buying you a throat to choke, and that is worth paying for.
What it took, and what it would not survive
The build was not free. It cost me an afternoon to write, an hour every few months to maintain, and the discipline to actually do that maintenance instead of letting it rot. A script nobody owns is worse than no script.
It also would not survive being handed to a non-technical teammate, scaled to 400 competitors, or asked to do anything the platform’s other ten features did. I did not replace the platform. I replaced the one feature I paid for and ignored the rest, which I never needed.
That is the whole move. Not build my own everything. Find the one expensive subscription where you use a sliver of a core job, and reclaim that sliver.
Run this audit on your tool stack this week
- List every SaaS subscription over $100/mo and its annual cost
- Next to each, write the one feature you would miss if it vanished tomorrow
- Score it: is the job core, and do you use most of the product or a sliver?
- Cancel the not-core, barely-used tools today (the easy wins)
- For core-but-sliver tools, time-box a weekend rebuild of that one feature
- Keep paying for anything holding money, data, auth, or compliance
- Set a calendar reminder to maintain whatever you build
Start with your most expensive subscription, not your cheapest. The $2,000 tool you half-use is hiding more savings than the ten $30 ones combined. Look at what you actually open, not what you bought.
Free · 7-Day Action Plan
Find your highest-impact AI opportunity.
Take the AI Readiness Audit. Get a clear, practical 7-day plan you can run on Monday.
Take the audit →