DEV Community

Cover image for How I Built & Grew CoverLetterGPT to 5,000 Users and $200 MRR
vincanger for Wasp

Posted on

How I Built & Grew CoverLetterGPT to 5,000 Users and $200 MRR

Hey, I’m Vince…

Image description

I’m a self-taught developer that changed careers during the Covid Pandemic. I did it because I wanted a better career, enjoyed programming, and at the same time, had a keen interest in IndieHacking.

If you’re not aware, IndieHacking is the movement of developers who build potentially profitable side-projects in their spare time. And there are some very successful examples of IndieHackers and “solopreneurs” out there inspiring others, such as levels.io and Marc Lou.

This thought of being able to build my own side-project that could generate profit while I slept was always attractive to me.

Image description

So I’m happy to report that I’ve finally done it with my first software-as-a-service (SaaS) app, CoverLetterGPT.xyz, which I launched in March 2023!

I’ll be the first to admit that the results aren’t spectacular, but they’re still something I’m very proud of:

  • over 5,000 registered users
  • $203 monthly recurring revenue (MRR)

Below, I’m going to share with you how I built it (yes, it’s open-source!), how I marketed and monetized it, along with a bunch of helpful resources to help you build your own profitable side-project.

What the heck is CoverLetterGPT?

CoverLetterGPT.xyz was an idea I got after the OpenAI API was released. It’s an app that allows you to upload a PDF of your CV/resumé, along with the job description you’re applying to, and it will generate and edit unique cover letters for you based on this information.

It also lets you save and manage your cover letters per each job, making it easy to make and apply to multiple jobs without having to keep copy and pasting all your important info into ChatGPT!

What’s the Tech Stack?

Image description

CoverLetterGPT is entirely open-source, so you can check out the code, fork it, learn from it, make your own, submit a PR (I’d love you forever if you did 🙂)… whatever!

I built it using the Wasp full-stack framework which allowed me to ship it about 10x faster.

Why?

Because Wasp as a framework allows you to describe your app’s core features in a main.wasp config file. Then it continually compiles and “glues” these features into a React-ExpressJS-Prisma full-stack app for you.

All you have to focus on is writing the client and server-side logic, and Wasp will do the boring stuff for you, like authentication & authorization, server config, email sending, and cron jobs.

BTW, Wasp is open-source and free and you can help the project out a ton by starring the repo on GitHub: https://www.github.com/wasp-lang/wasp 🙏

https://media1.giphy.com/media/ZfK4cXKJTTay1Ava29/giphy.gif?cid=7941fdc6pmqo30ll0e4rzdiisbtagx97sx5t0znx4lk0auju&ep=v1_gifs_search&rid=giphy.gif&ct=g

⭐️ Thanks For Your Support 🙏

For the UI, I used Chakra UI, as I always do. I like that it’s a component-based UI library. This helps me build UI’s a lot faster than I would with Tailwind or vanilla CSS.

For payments, I used Stripe, (I’ll go into the details of monetization below).

The Server and Postgres Database are hosted on https://railway.app, with the client on Netlify.com’s free tier.

Image description

By the way, If you’re interested in building your own SaaS with almost the same stack as above, I also built a free SaaS template you can use that will save you days of work!

How I Marketed It

My biggest take-away from this whole project was that open-sourcing it was the best way to market it!

This seems counter-intuitive, right? Why would making the code available for anyone to see and copy be good for a business? You’re basically rolling out a red carpet for competitors, aren’t you?

Well, not quite.

First of all, the number of people who will realistically spend the time and energy launching a direct competitor is low. Also, most people interested in your open-source code want to learn some aspect of it and apply it to their own ideas, not just copy yours directly.

Secondly, and most importantly, the fact that it’s open-source makes people a lot more receptive to you talking about it.

Image description

When you present something you’ve built and give people the opportunity to learn from it, they’re much more welcoming! As a result, they’re more likely to upvote it, share it, use it, and recommend it to others.

This is exactly what happened with CoverLetterGPT! As a result of me sharing the open-source code, it get featured on the IndieHackers.com newsletter (>100k subscribers), shared on blogs, and talked about on social media platforms.

Image description

And even though it’s a small, simple product, I tried launching it on Product Hunt, where it also performed considerably well.

So, all together, these initial efforts combined gave my product a good initial marketing presence. To this day, I haven’t really done much else to market it, except some twitter posts (and this post, if you want to consider it marketing 🤑).

How I Monetized It

When I first launched in March 2023, I didn’t really expect anyone to pay for the product, but I wanted to learn how to use Stripe as a payments processor, thinking that the skills might be useful in the future.

So I started simple, and just put a one-time payment link for tips. No paywall, no subscriptions. It was entirely free to use with any tip amount welcome.

To my surprise, tips started coming in, with some as high as $10 dollars!

This encouraged me to force users to login to use the product, and add a paywall after users used up 3 credits.

My initial payment options were:

  • $4.95 for a 3 months access
  • $2.95 for 10 cover letter generations

Image description

That went reasonably well until I implemented the ability for users to use GPT to make finer edits to their generated cover letters. That’s when I changed my pricing and that’s when better profits started to come in:

  • $5.95 / month subscription with GPT-4
  • $2.95 / month subscription with GPT-3.5-turbo

Currently, over 90% of my customers choose the more powerful, more expensive plan with GPT-4, even though the 3 trial credits use the GPT-3.5-turbo model.

(I also integrated Bitcoin Lightning payments — check out the repo if you want to learn how — but haven’t received any yet.)

Now, with an MRR of ~$203, my monthly profit of course depends on my costs, which are:

  • Domain Name: $10/year
  • OpenAI bill: ~ $15/month
  • Hosting bill: ~ $3/month

Which leaves me at about ~ $183/month in profits 😀

Future Plans

One of the most surprising aspects about CoverLetterGPT.xyz’s success is that, on the surface, the product is very simple. Also, I’ve done very little in the way of SEO marketing, and haven’t continued to market it much at all. The current growth is mostly organic at this point thanks to my initial marketing efforts.

But I still have some plans to make it better:

  • buy a better top-level domain (TLD), like CoverLetterGPT.ai
  • add more features, like the ability to generate interview questions based on the cover letters
  • improve the UX and make it look more “professional”

If you have any other ideas how I could improve it, drop me a comment, message me on twitter/x, or submit a PR to the repo.

Final Words + More Resources

My intention with this article was to help others who might be considering launching their own SaaS product. So I hope that’s been the case here. If you still have any questions, don’t hesitate to ask.

Here are also the most important links from this article along with some further resources that will help in building and marketing your own profitable side-project:

Oh, and if you found these resources useful, don't forget to support Wasp by starring the repo on GitHub!

https://res.cloudinary.com/practicaldev/image/fetch/s--OCpry2p9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bky8z46ii7ayejprrqw3.gif

⭐️ Thanks For Your Support 🙏

Top comments (23)

Collapse
 
rudolfolah profile image
Rudolf Olah • Edited

Amazing use of a batteries-included framework! There are a few others like that for Django/Python and Ruby on Rails that can give a headstart to product development:

Every product and startup needs auth, email sending, a way to accept payments and deployments. Great to see this!

  • $5.95 / month subscription with GPT-4
  • $2.95 / month subscription with GPT-3.5-turbo

The tiered pricing based on model is also very interesting.

What's the quality difference and are you upselling people into GPT-4 in some way?

Collapse
 
vincanger profile image
vincanger

Yep! Wasp is kinda like rails for js.

Nope. Not upselling. Most users just choose GPT4

Collapse
 
iamwillpursell profile image
Will Pursell

This is exactly the story I was looking for!

I have really enjoyed playing around with different SAAS ideas and additionally integrating it with new technology (like GPT-3/4), but I have wanted to hear about others experiences as well.

The fact that the majority of your customers also prefer the more expensive subscription is also really interesting. I'll give Wasp a look!

Collapse
 
vincanger profile image
vincanger

nice!

yeah let me know if you try out the SaaS template and if there's anything I can do to improve it :)

Collapse
 
dotenv profile image
Dotenv

My first time coming across Wasp. I'm a big Rails fan. Wasp looks great!

What are you guys using for secret management in Wasp? It looks like simple .env files. Rails uses it's credentials files. Have you considered using .env.vault files for your framework users? They are sort of a combination of both - encrypted .env files.

I just wrote about them here the other day: dev.to/dotenv/what-is-a-envvault-f...

Collapse
 
vincanger profile image
vincanger

that's awesome. If you give it a try, let us know your thoughts in our discord. our todo app tutorial is a good start (~20mins): wasp-lang.dev/docs/tutorial/create

.env files seem to be good enough for most usecases at the moment. why would encrypting them be necessary when working locally?

Collapse
 
martinsos profile image
Martin Šošić

Env vault is interesting for sure, for easy sharing of secrets! We might give it a look at some point for sure -> once we get closer to the 1.0 release of Wasp!

Collapse
 
matijasos profile image
Matija Sosic

A very cool story, I always love reading about how something came to be from the day 0, thanks for sharing :)

Collapse
 
vincanger profile image
vincanger

thanks!

Collapse
 
cmgustin profile image
Chris Gustin

Thanks for sharing! IndieHacking is what initially got me interested in web dev too. The idea of being able to learn the skills cheap or free, and then build cool products quickly and inexpensively, potentially for a nice payday, still gets me fired up to keep learning and progressing.

Appreciate you going into so much detail to share your journey, definitely inspires me to try and finish a few of the side projects I have in my head. Love the tip about open sourcing as a marketing tactic too.

Collapse
 
vincanger profile image
vincanger

That's great to hear! That's why I made the free SaaS template, to inspire others. Plus I learned so much from other open-source projects, so it's kinda my way to pay it forward.

Collapse
 
nevodavid profile image
Nevo David

I also want to build and sell stuff.
Probably should use Wasp for it

Collapse
 
vincanger profile image
vincanger

cuts your dev time in half!

Collapse
 
digital-nomad profile image
Olu

As someone launching similar tool, this was a great post! What else would you do the market your product ?

Collapse
 
vincanger profile image
vincanger

Everything I mentioned in the article, including what I wrote in the future plans section :)

Collapse
 
infomiho profile image
Mihovil Ilakovac

Will you be doing some upselling on this project for your future projects? I know others do it successfully

Collapse
 
vincanger profile image
vincanger

possibly! another idea is to offer a white-label version of this for recruiters so they can use it as funnel to find new talent

Collapse
 
llxd profile image
Lucas Lima do Nascimento

Really nice article as always, Vince! How did you figured out the first and second prices?

Looking forward to know the insights on pricing software services 👀

Collapse
 
vincanger profile image
vincanger

Thanks, Lucas!

the prices were just trial and error. I wasn't expecting so many users, so I felt I had nothing to lose and just went for it. I think I'll stick at the current prices though now

Collapse
 
zach_sents profile image
Zach Sents

I wanted to laugh at posting about $200 MRR, then remembered I'm at $0.00000 MRR.

Collapse
 
vincanger profile image
vincanger

Since posting this I'm now at $220 MRR ;)

Collapse
 
martinsos profile image
Martin Šošić

Hah yeah, there is a big gap between 0 and something :D.