I Built 4 CLI Tools to Avoid Paying for SaaS — Here's How Much I Saved
Last year I was paying for:
- JSON formatter online tool: $5/month
- Markdown to HTML converter: $10/month (Docusaurus setup cost)
- Email validation service: $29/month (Clean.io)
- SQL builder library: $15/month (npm packages)
Total: $59/month = $708/year
Then I realized: Most of these tasks are trivial to code.
So I built CLI tools for all of them. Took 3 days total. Cost: $0.
Now I pay $0/month.
Here's my story.
The Realization
I was building a data processing pipeline. My workflow:
- Get API response (minified JSON)
- Copy to online formatter (slow, 2-3 seconds)
- Analyze manually (tedious)
- Export cleaned data
- Validate email list (use paid service)
- Build SQL query (write code, test, fix)
Total time per workflow: 15-20 minutes
"Why am I paying for this?" I thought.
The Solution: Build It Myself
I decided to build CLI tools for the most painful tasks.
Tool 1: JSON Formatter
What I paid for: Prettier, online formatter services
Time to build: 45 minutes
import json
import argparse
class JSONFormatter:
@staticmethod
def format_pretty(data, indent=2):
return json.dumps(data, indent=indent, sort_keys=False)
@staticmethod
def format_minified(data):
return json.dumps(data, separators=(',', ':'))
parser = argparse.ArgumentParser()
parser.add_argument("file")
parser.add_argument("--minify", action="store_true")
args = parser.parse_args()
with open(args.file) as f:
data = json.load(f)
if args.minify:
print(JSONFormatter.format_minified(data))
else:
print(JSONFormatter.format_pretty(data))
Saved: $60/year. Now I just run:
python json_formatter.py data.json
Tool 2: Markdown to HTML
What I paid for: Docusaurus, static site generators, manual conversion
Time to build: 90 minutes
The tool converts markdown headers, bold, links, code blocks to HTML:
class MarkdownParser:
def parse(self, markdown):
html = ""
for line in markdown.split('\n'):
if line.startswith('#'):
html += self.parse_heading(line)
elif line.startswith('-'):
html += self.parse_list(line)
# ... etc
return self.wrap_in_html(html)
parser = MarkdownParser()
output = parser.parse(markdown_text)
Saved: $120/year. Now I run:
python markdown_to_html.py readme.md -o index.html
Tool 3: Email Validator
What I paid for: Clean.io, RealEmail, other validation services ($29/month)
Time to build: 120 minutes
I implemented:
- Syntax validation (regex)
- Disposable domain detection (dictionary)
- MX record checking (socket library)
class EmailValidator:
def validate_syntax(email):
return '@' in email and '.' in email.split('@')[1]
def is_disposable(email):
domain = email.split('@')[1]
return domain in DISPOSABLE_DOMAINS
def check_mx(domain):
# Check if MX records exist
try:
mx_records = dns.resolver.resolve(domain, 'MX')
return len(mx_records) > 0
except:
return False
Saved: $348/year. Now I run:
python email_validator.py emails.txt -o valid.txt
Tool 4: SQL Query Builder
What I paid for: ORM libraries, npm packages, custom code
Time to build: 60 minutes
class SQLBuilder:
def select(self, columns):
self.query = f"SELECT {columns}"
return self
def from_table(self, table):
self.query += f" FROM {table}"
return self
def where(self, condition):
self.query += f" WHERE {condition}"
return self
def build(self):
return self.query + ";"
builder = SQLBuilder()
query = builder.select("name, email").from_table("users").where("age > 18").build()
Saved: $180/year. Now I run:
python sql_builder.py --select "name, email" --from "users" --where "age > 18"
Total Savings
| Tool | Monthly Cost | Annual Cost | Build Time |
|---|---|---|---|
| JSON Formatter | $5 | $60 | 45 min |
| Markdown to HTML | $10 | $120 | 90 min |
| Email Validator | $29 | $348 | 120 min |
| SQL Builder | $15 | $180 | 60 min |
| TOTAL | $59 | $708 | 315 min |
I spent 5.25 hours coding and saved $708/year.
ROI: 135x in year one.
The Real Benefits
Beyond money:
1. Speed
Online formatters: 2-3 seconds per request (network latency)
My tool: 50ms (local processing)
Improvement: 40-60x faster
2. Privacy
SaaS tools: Your data goes to their servers
My tools: Everything stays local
Improvement: 100% private
3. Reliability
SaaS: Depends on uptime, API availability
My tools: Works offline, no dependencies
Improvement: 99.9% → 100% uptime
4. Customization
SaaS: Limited to predefined features
My tools: Can modify for any use case
Improvement: Unlimited flexibility
How to Get Started
Option 1: Use My Tools (Free)
All tools are open source on GitHub:
- JSON Formatter: github.com/devdattareddy/json-formatter-cli
- Markdown to HTML: github.com/devdattareddy/markdown-to-html-cli
- Email Validator: github.com/devdattareddy/email-validator-cli
- SQL Builder: github.com/devdattareddy/sql-query-builder
git clone https://github.com/devdattareddy/[tool-name]
python [tool].py --help
Option 2: Build Your Own
Identify your highest SaaS costs:
- What service do you pay for monthly?
- Could you code it in a weekend?
- Build it. Save thousands.
Tools worth building:
- CSV converters ($5-10/mo)
- Image processors ($10-15/mo)
- Data validators ($15-29/mo)
- Format converters (any format)
- Batch processors
My Workflow Now
Before:
- Get minified API response
- Copy to online formatter (wait)
- Manual analysis
- Export data
- Use email validator service
- Write SQL code, test, debug
- Repeat 5-10 times per day
Time: 15-20 minutes per workflow
Cost: $59/month
After:
- Get API response
- Run
json_formatter.py(instant) - Auto-analyze with
--stats - Export in any format (minified, pretty, sorted)
- Run
email_validator.pyon list - Run
sql_builder.pyto generate query - Repeat at scale
Time: 2-3 minutes per workflow
Cost: $0/month
Productivity gain: 10x faster. Cost reduction: 100%.
The Best Part
I didn't just save $708. I created reusable tools:
- Use them personally (done)
- Share with team (free)
- Sell premium versions (Gumroad)
- Monetize as open source ($100-500/month potential)
The Money
I'm now selling:
- JSON Formatter Pro on Gumroad ($9.99) — GUI + batch processing
- Markdown to HTML Pro on Gumroad ($12.99) — themes + templates
- Email Validator Pro on Gumroad ($14.99) — API + scheduling
- SQL Builder Pro on Gumroad ($19.99) — visual builder + export
Free version drives traffic. Premium version generates revenue.
Estimated: $100-500/month in sales + affiliate income from Dev.to articles.
Lessons Learned
1. Not Everything Needs to Be Perfect
Your 80/20 tool beats perfect SaaS 100% of the time if it's local.
2. Start Simple
MVP: One command, one feature. Expand later.
3. Solve Your Own Problems First
Build what you need. Others need it too.
4. Share It
Open source costs nothing. Attracts users. Creates opportunities.
5. Monetize Sustainably
Free version for users. Premium for power users. Articles for passive income.
Next: What I'm Building
Now that I have 4 core tools, I'm building:
- Image Batch Processor (resize, convert, compress)
- CSV to JSON Converter (data transformation)
- REST API Generator (mock APIs for testing)
Estimated combined savings: $1,500+/year
Your Turn
What SaaS do you pay for? Could you build it? It's easier than you think.
I spent 5 hours and saved $708. You could do the same.
Support
If this approach resonates:
💝 Buy Me a Coffee - Help me build more tools
⭐ Star on GitHub - Get all tools for free
How much are you paying for tools that you could build yourself? Let me know in the comments!
Top comments (0)