I built and launched an AI SaaS: lessons, observations, and metrics.
Tags: webdev, ai, gpt3, chatgpt
Published: 2023-09-25 10:37:36

> TL;DR? Chat with this article instead:
> https://app.clarifypdf.com/ask/6d7fb711-23de-428a-95b0-acab7c9f0249


Just over 3 months ago I [launched](https://twitter.com/farez/status/1665036409277644801) ClarifyPDF, an AI SaaS to “chat with your PDF”. One of about hundreds out there.

Against all conventional startup or indie-hacking wisdom, I launched without a problem to solve, without a customer segment to serve, and without even a need for it myself.

So why did I do it?

- I knew that as a developer, I couldn’t ignore AI anymore. I had to up-skill.
- It seemed like anyone launching an AI app is making tonnes of $$$. Yep - I had huge FOMO.

In this post, I will share this journey and some lessons and observations. Hopefully, it’ll be a useful insight for anyone thinking about starting an AI app.

For context: I’m a web developer with 20 years of commercial dev experience. 3 years ago I started indie hacking. I don’t have any practical experience with AI - just the theories I learned at uni.

## Building, Launching, Results

### How I came up with the idea

I started this journey by learning the basics: prompt engineering, large language models, and the OpenAI API. ClarifyPDF [evolved](https://twitter.com/farez/status/1659652247502966784) out of the code I was writing to learn all this. It was my “school project”!

My primary goal was to learn and then to launch something. Anything. I didn’t want to overthink it.

### Learning about building for AI

As I mentioned above, I didn’t have any practical AI development experience. So I had to learn.

I shared my learnings [publicly on Twitter,](https://twitter.com/farez/status/1654942532223086592) but this was the basic sequence:

- [Learning prompt engineering](https://t.co/HZpuUsTA3R)
- [Building with OpenAI API](https://platform.openai.com/docs/quickstart)
- [Creating embeddings](https://cloud.google.com/blog/topics/developers-practitioners/meet-ais-multitool-vector-embeddings)
- [Building a chatbot app from scratch](https://twitter.com/farez/status/1656372795259908117)
- [Digested and summarised what I learned](https://farez.me/how-to-create-a-chatbot-with-openais-api-a-general-architecture/)

### How I validated the idea

The first “validation” was actually by observation. The growth of products like ChatPDF, SiteGPT, and Typing Mind was phenomenal. At least in the short term, the demand for a “better ChatGPT” was clear.

I didn’t try to do any other validation. I was going to let my launch bring in the data.

### How I built it

I didn’t want to overthink it and I knew I had to move fast. It felt like everything was (and still is) changing so quickly in this space anyway, and the only sane approach was to [launch and iterate](https://twitter.com/damengchen/status/1671946089266831360%5C). I used what I already knew (Laravel / PHP / Tailwind).

I did wonder if I should learn Python first because most of the open-source AI code examples and libraries out there are built with Python. But that felt like procrastination and a distraction. If the app takes off I can learn Python later.

For the database, I went with PostgreSQL because it’s the closest to MySQL, which I am already familiar with. I would have preferred to use a cloud vector database to save time, and I did look into various options. But they all required more time to learn. Again, speed to market was **the** priority.

For payments, I strayed from what I knew (Paddle) and went with Lemon Squeezy.

Mistake.

Although it was easy to integrate Lemon Squeezy, at the time it was still a bit buggy. I lost time trying to debug it. I was going to go back to Paddle when they fixed the bugs. So I stayed. This cost me some time.

### Pricing

I went with a one-time purchase model. Simply because this was easier to implement than subscriptions!

I launched with $4.99 per PDF. Which, in hindsight, is insanely expensive for what most competing products allow people to do for free! Well, I didn’t know, did I?

The price evolved after the launch. Through feedback and usage data, it evolved to $1.99 then finally to $0.99 per PDF now.

Interestingly, when I halved the price from $1.99 to $0.99, the number of purchases doubled. So halving it got me the same total revenue.

But, crucially, it got me double the number of customers, which is awesome for feedback.

### How I launched it

Posted on [Twitter](https://twitter.com/farez/status/1665036409277644801) (1,500 followers), [Hacker News](https://news.ycombinator.com/item?id=36179038), and [Indie Hackers](https://www.indiehackers.com/post/building-a-basic-chat-with-a-pdf-app-as-my-ai-learning-project-7c0a3bee90).

Then it got picked up by some of the larger listing sites, the biggest source of traffic being [There’s An AI For That](https://theresanaiforthat.com/). And they listed ClarifyPDF for free.

This is just a guess but I think it got picked up because I was building in public and, at that time, these sites wanted to grow fast so they were sucking up any AI app they can find. I was lucky to launch within the GPT hype window. Most of these listing sites are not free anymore.

Customer feedback was priority #1 at this time. From a previous SaaS, I learned that a chatbox is great for this, so I launched ClarifyPDF with a [Crisp.io](http://crisp.io/) chatbox from day 1.

### Results

First week:

- Visitors: 1,000
- Revenue: $45.42

First month:

- Visitors: 2,800
- Revenue: $115.02

To date:

- Visitors: 11,600
- Revenue: $320.83

## Lessons

Compared to how much the “big” indie AI apps out there are making, ClarifyPDF is tiny! It didn’t make a tonne of money. But I did learn a tonne. I share some lessons and observations below.

Please note that this is based on my narrow experience of building a small, very specific type of AI SaaS - a “chat with document” GPT app. I can’t speak for all of the AI landscape!

### What I Did Right

- Not overthinking it.
- Using what I already know.
- Moving as fast as I could in this competitive space.
- Focusing on learning.
- Building in public.
- Getting in early.
- Automated follow-up emails.
- Crisp chatbox.
- Talking to customers.
- Having analytics in from day 1.

### What I Did Wrong

- Treating it as a “side project”, even after seeing positive signals. I was working on this about 1 day a week. This is a fast-moving sector. It should have dropped everything and worked on this full-time to give it a chance to grow fast.
- Assumed I could mimic the success of others, just by building it. Nope.
- Not doing enough marketing. IMHO, to move fast in this market, your time needs to be at least 50% on marketing.
- Giving in to distractions: other projects, starting new product ideas, starting to work on a course.
- Didn’t offer alternative pricing models. By charging a one-time fee that’s on the ‘expensive’ end of the spectrum, I drove away customers with a need to process lots of documents. A potentially more lucrative market.
- I stopped building in public. My initial efforts of building in public brought some visibility to what I was working on, and I think helped with initial traction. But after the launch, I stalled. I used “need to build fast” as an excuse to not communicate regularly about what I’m working on. This killed off the momentum from earlier efforts.

### General observations - market

- **New innovative platforms create opportunities we can ride on**. I saw this with Notion when they released templates and their API. And then with OpenAI when they released their API. Mass adoption and mass platform growth are market makers. Building and launching quickly on these platforms can really bring in a lot of early traffic. But it doesn’t last long. Catch the wave early and ride it to the beach, before it’s gone.
- **I was too late**. Those who launched early this year saw runaway success because they were first and they caught the wave created by ChatGPT. That wave is now gone.
- But **I’m still early**. That first wave is responsible for creating a huge amount of awareness. This has made it easier for anyone launching now to explain the benefits of AI. It’s an easier sell. Provided you are solving a real problem. And it has opened up a huge market, which indie makers can jump in now and still be early in.
- It WAS about who’s first. Now, it’s about **who’s better**.
- **Students, teachers, and researchers** form one early adopter group for GPT. They are the ones that have to consume and generate lots of documents on a day-to-day basis. Lots of boring manual repeated tasks. This is a market that’s craving AI tools to help them do their work faster and better.
- Businesses want **automation**. Not just a chatbot. “Which manual process can we streamline? Who can we replace?” are questions they ask. The AI solution needs to solve these.
- There is a massive **non-English-speaking market**. AI makes it easy now to handle documents in almost any language, so your customers will be expecting your app to do that. Anyway, there’s no excuse not to because the barrier to supporting multi-language has been lowered by AI.
- I see lots of **opportunities right now in 4** areas: 1) selling “picks and shovels” to other AI builders, 2) selling a focused solution to specific problems, 3) selling training, and 4) selling consulting. I think (3) and (4) are growing and easiest to get into right now for indie makers.

### General observations - product

- The **fundamentals still matter**: start by solving a real problem for a small group of people.
- In the early stages, **user feedback is more valuable than revenue**. I halved my price and got double the number of customers. Same revenue, but more user feedback.
- **A chatbot is not a solution**. It’s just part of the overall solution to a customer’s problem. People need to do something with the answer they get out of a chatbot. Were they lazy and didn’t like reading? Were they overwhelmed with so many documents? Do they need to create other types of content or feed it into their process?
- OpenAI’s API is still the **quickest engineering route to market** so far. And one of the cheapest.
- **Use open-source projects**. They’ll save you time. Most of the backend work I’ve done on ClarifyPDF can now be done in 5 lines of code with [Embedchain](https://github.com/embedchain/embedchain)!
- **Costing is tricky**. LLM providers typically price by tokens used. But this is not the most convenient model for your customers. You’ll need to work out the arbitrage. But you do need to work out your costs properly as they could get out of hand.
- Your **pricing model picks your customers**. ClarifyPDF’s one-time purchase model is fine for single documents. But drove away those with lots of documents to process. This can skew your analytics.

### General observations - engineering

- **Building a chatbot is easy**. You now have all the tools and open-source AI packages you need. Pick one, build a SaaS wrapper around it, launch early and sell like hell.
- Building a **good** chatbot is **hard.** There are so many parameters. So many knobs to turn. And LLMs are black boxes. One size does not fit all - a summarising prompt is different from a data extraction prompt and is different from a content generation prompt.
- **Data extraction is challenging**. You need to deal with this before you can even start using the data with the AI. These include extracting text from PDFs, creating embeddings, strategy for retrieving embeddings and content, database architecture, and metadata.
- **Prompting is an art**. And you’ll never stop tweaking it. Don’t underestimate the need for good prompt engineering skills.
- **Summarisation** is a separate problem to chat. Token limits will force you to be creative with how you summarise large amounts of text.

## What’s next

The signals are good and I will continue to develop ClarifyPDF. These are our focus for the next phase:

- **Flexible pricing**. We need to move away from one-time pricing to a model that’s friendlier to large quantities of documents. The first step is to move to [credit-based pricing](https://clarifypdf.com/?utm_campaign=blog_lessons_learned_3_months&utm_source=blog&utm_medium=content#pricing).
- **Beyond PDFs**. The internet is more than just PDFs. We’re building support for all types of content sources.
- **Serving small businesses**. We will start paying more attention to problems we can solve for small businesses. We have also started offering [consulting and custom solutions](https://clarifypdf.com/custom-build?utm_campaign=blog_lessons_learned_3_months&utm_source=blog&utm_medium=content), with the goal of learning more about our customers’ needs.
- **Expand distribution**. Starting with an attractive affiliate programme. We will then experiment with a few more channels.

Hope my lessons help you in building your own indie AI app.

As always, I’ll be sharing my updates on my **[newsletter on building an indie AI software business](https://farez.substack.com/)**. You can also follow me on [Twitter](https://twitter.com/farez) and [LinkedIn](https://www.linkedin.com/in/farez/).