Back to blog

I Built a SaaS Without Writing a Single Line of Code (Well, Almost)

January 30, 2025 · Poyan Karimi

I'm not a developer. Never have been.

I've been running companies for 12 years – marketing agencies, video platforms, retail tech. But when it came to code? I was the guy who asked developers to "make the button blue" and hoped they understood.

Then I built ReceiptBot. A full SaaS. With a database, OAuth integrations, payment processing, and email parsing.

Here's how.


The problem I couldn't ignore

Every month, same story. Accountant asks for receipts. I open Gmail. 14,000 emails stare back at me.

I'd spend hours searching for Stripe receipts, AWS invoices, Adobe bills. Download. Rename. Organize. Repeat.

After 12 years of this, I snapped. "There has to be a tool for this."

There wasn't. Not one that actually worked the way I needed.

So I decided to build it myself.


Enter Claude Code

I'd been using Claude for writing and research. Then I discovered Claude Code – an AI that can actually write and execute code.

My first prompt was embarrassingly vague:

"I want to build a web app that connects to Gmail and finds all my receipts."

Claude didn't laugh at me. It asked clarifying questions. Then it started building.


What I learned (the hard way)

1. Be specific about what you want

"Make it work" is not a prompt. "Create a function that searches Gmail for emails from stripe.com with the word 'receipt' in the subject line" is.

2. Test in branches

I broke production more times than I'll admit. Now I always create a branch, test on Vercel preview, then merge.

3. You don't need to understand every line

I still don't know what half my codebase does. But I know what it's supposed to do, and I can describe that to Claude.

4. The 80/20 rule is real

Getting the core functionality took 20% of the time. The other 80%? Edge cases, OAuth callbacks, error handling, and "why doesn't this work on Safari?"


The stack (for the curious)

  • Frontend: Next.js, React, Tailwind CSS
  • Backend: Next.js API Routes
  • Database: Supabase (PostgreSQL)
  • Auth: Supabase Auth + Google/Microsoft OAuth
  • Hosting: Vercel
  • AI assistant: Claude Code

I didn't choose this stack. Claude recommended it based on my requirements. Turns out, it's pretty standard for modern web apps.


Would I do it again?

Absolutely.

Not because it was easy – it wasn't. But because the alternative was waiting for someone else to build what I needed, or paying $50-100k for custom development.

Total cost to build ReceiptBot: ~$20/month for Supabase and Vercel. Plus a lot of late nights.


Advice for non-technical founders

  1. Start with a problem you personally have. You'll need that motivation when things break at midnight.

  2. Use Claude Code, not ChatGPT. Claude can actually run code, create files, and debug errors. Game changer.

  3. Ship fast, fix later. My first version was embarrassing. Users didn't care – they cared that it worked.

  4. Learn just enough. You don't need a CS degree. But understanding what an API is, what a database does, and how OAuth works will save you hours.


The result

ReceiptBot launched on Product Hunt. Got 50+ signups in the first week. Users are finding 30-177 receipts per search.

Not bad for someone who couldn't write a for-loop six months ago.

If you're a non-technical founder with an idea – stop waiting. The tools exist now. Go build it.


Want to try ReceiptBot? Get started free