Skip to content

Commit 9c9ec7e

Browse files
authored
Merge pull request wasp-lang#345 from wasp-lang/coverletter-making-550
Adding a new blog post about cover letter gpt microsaas
2 parents 6e41a10 + 83231af commit 9c9ec7e

File tree

8 files changed

+187
-0
lines changed

8 files changed

+187
-0
lines changed
17.8 KB
Loading
798 KB
Loading
63 KB
Loading
70.5 KB
Loading
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
interface Props {
3+
trailingText?: string;
4+
}
5+
6+
const { trailingText = 'and support open-source tools for builders, by builders!' } = Astro.props;
7+
---
8+
9+
<div class="bg-yellow-300 p-4 text-center text-md font-bold rounded-lg text-black">
10+
<span>
11+
⭐️ Star the{' '}
12+
</span>
13+
<a href="https://github.com/wasp-lang/open-saas" class="!text-yellow-800 underline hover:!text-yellow-600">
14+
Open SaaS repo
15+
</a>
16+
<span>
17+
{trailingText}
18+
</span>
19+
</div>
20+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
interface Props {
3+
id: string;
4+
}
5+
6+
const { id } = Astro.props;
7+
---
8+
9+
<style>
10+
.tweet-wrapper {
11+
transform: scale(0.85);
12+
margin: -3rem 0;
13+
}
14+
/* Target the Twitter iframe to reduce padding */
15+
:global(.twitter-tweet-rendered) {
16+
margin: 0 !important;
17+
padding: 0 !important;
18+
}
19+
</style>
20+
21+
<div class="tweet-wrapper">
22+
<blockquote class="twitter-tweet">
23+
<a href={`https://twitter.com/x/status/${id}`}></a>
24+
</blockquote>
25+
</div>
26+
27+
<script>
28+
declare global {
29+
interface Window {
30+
twttr: any;
31+
}
32+
}
33+
34+
window.twttr = (function(d, s, id) {
35+
var js, fjs = d.getElementsByTagName(s)[0],
36+
t = window.twttr || {};
37+
if (d.getElementById(id)) return t;
38+
js = d.createElement(s) as HTMLScriptElement;
39+
js.id = id;
40+
js.src = "https://platform.twitter.com/widgets.js";
41+
fjs.parentNode?.insertBefore(js, fjs);
42+
t._e = [];
43+
t.ready = function(f: () => void) {
44+
t._e.push(f);
45+
};
46+
return t;
47+
}(document, "script", "twitter-wjs"));
48+
</script>

opensaas-sh/blog/src/content/docs/blog/2024-12-10-turboreel-os-ai-video-generator-built-with-open-saas.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ app myApp {
110110
}
111111
```
112112

113+
<div style="background-color: #FFD700; padding: 1rem; text-align: center; font-size: 1.2rem; font-weight: bold; border-radius: 8px; color: black;">
114+
⭐️ Star <a href="https://github.com/wasp-lang/open-saas" style="color: #0000FF; text-decoration: underline;">Open SaaS repo</a> and support tools that help you build fast!
115+
</div>
116+
113117
### Out-of-the-box Stripe integration
114118

115119
Another significant advantage for Peter was how Open SaaS handled third-party integrations. Setting up services like [**Stripe for payments**](https://docs.opensaas.sh/guides/payments-integration/) often requires a lot of effort, but Wasp's OpenSaaS streamlined the process - you just need to add your API key and you're good to go.
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: My GPT Wrapper Makes $550 MRR One Year After Launch
3+
date: 2024-12-16
4+
tags:
5+
- gpt
6+
- saas
7+
- sideproject
8+
- indiehacker
9+
authors: vince
10+
---
11+
12+
import { Image } from 'astro:assets';
13+
import Tweet from '../../../components/Tweet.astro';
14+
import landingPage from '../../../assets/cover-letter-gpt/coverlettergpt.webp';
15+
import mrrGraph from '../../../assets/cover-letter-gpt/mrr-graph.webp';
16+
import StarOpenSaaSCTA from '../../../components/StarOpenSaaSCTA.astro';
17+
import redditPost from '../../../assets/cover-letter-gpt/coverlettergpt-reddit.png';
18+
19+
Hey builders,
20+
21+
I wanted to share my journey building a micro-SaaS, [CoverLetterGPT](https://coverlettergpt.xyz/), which now earns **$550/month in recurring revenue (MRR)**—all while requiring **minimal effort and maintenance**. Here's how I did it and why I believe small, simple SaaS apps are an underrated way to start as an indie maker.
22+
<Tweet id="1863553258586820976" />
23+
24+
### Quick Stats:
25+
26+
- **Built in 1 week**
27+
- using [Wasp](https://wasp-lang.dev/), a React, NodeJS, & Prisma framework
28+
- and [Chakra UI](https://chakra-ui.com/) for the design system.
29+
- **Runs on autopilot**
30+
- **~$550 MRR** after one year
31+
- Minimal customer support—only **3 Stripe disputes** to date
32+
- Costs **~$15/month** to operate (hosting + OpenAI API fees)
33+
- Deployed on [Railway](https://railway.app/) & [Netlify](https://netlify.com/)
34+
35+
---
36+
37+
BTW, I built [Open SaaS](https://opensaas.sh), the free, open-source SaaS template based on what I learned from building and launching CoverLetterGPT.
38+
39+
Because Open SaaS is a community-driven project, it also benefits from community feedback and contributions, so it boasts a clean codebase and a ton of useful features. Check it out and give us a star! We're always improving it.
40+
41+
<StarOpenSaaSCTA />
42+
43+
### Small Wins Are Worth It
44+
45+
Many developers think a SaaS has to be big, flashy, or wildly profitable to be worth building. I disagree. For me:
46+
47+
- $550/month is fantastic as side income.
48+
- It runs itself, requiring virtually no maintenance.
49+
- I can balance it easily alongside my full-time job.
50+
- It's fun and doesn't consume my free time.
51+
52+
<Image src={mrrGraph} alt="CoverLetterGPT MRR Graph" />
53+
54+
Here's why I think you should aim for small, achievable SaaS projects instead of trying to “hit it big” from the start.
55+
56+
### Build & Launch Fast
57+
58+
<Image src={redditPost} alt="CoverLetterGPT Reddit Post" />
59+
60+
The most important lesson I've learned: **speed is everything.** The faster you launch, the faster you'll know if your idea works. Here's what worked for me:
61+
62+
1. **Avoid long, drawn-out failures:** Build small, execute early.
63+
2. **Use the fastest tools available:** I used [Wasp](https://wasp-lang.dev/) because it gives me all the building blocks already set up (auth, database, cron jobs, email sending), letting me focus on the business logic of the app. Paired with [Chakra UI](https://chakra-ui.com/), I was able to build the app in about 1 week.
64+
3. **Forget perfection:** I didn't worry about making it pretty or perfect—it just had to work.
65+
66+
### Keep It Simple
67+
68+
The beauty of micro-SaaS is in its simplicity. Here's why:
69+
70+
- My app does **one thing well**: generating cover letters based on résumés and job descriptions.
71+
- There's no need for a fancy landing page or marketing gimmicks. This is my 🌶 hot take.
72+
- Users get **3 trial credits**—enough to try the app and see value before paying.
73+
74+
<Image src={landingPage} alt="CoverLetterGPT landing page" />
75+
76+
One of the biggest perks of micro-SaaS is how low-maintenance it can be. With CoverLetterGPT, I rarely handle customer service thanks to its simplicity.
77+
78+
This means I spend my time on **new ideas** rather than maintaining old ones.
79+
80+
### It's All About Tradeoffs
81+
82+
While I could optimize and grow CoverLetterGPT further, I've chosen to keep it small and simple. For me:
83+
84+
- **Small wins** are still wins.
85+
- I value having a side project that's easy to manage alongside my full-time job.
86+
- I'd rather have **less stress** than chase higher profits.
87+
88+
### Links & Resources
89+
90+
If you're thinking about launching your own SaaS, here are some helpful resources:
91+
92+
- 👨‍💻 [CoverLetterGPT (Live App)](https://coverlettergpt.xyz/)
93+
- 💸 [Open-Source SaaS Template](https://github.com/wasp-lang/open-saas)
94+
- 🛠️ [Framework: Wasp](https://wasp-lang.dev/)
95+
-[UI Components: Chakra UI](https://chakra-ui.com/)
96+
- 🛠️ [Hosting: Railway](https://railway.app/) & [Netlify](https://netlify.com/)
97+
- ✍️ [My Original Reddit Post](https://www.reddit.com/r/SideProject/comments/1h4t8vk/my_saas_only_makes_550_a_month_and_i_think_thats/)
98+
99+
### Final Thoughts
100+
101+
If you're considering building a SaaS, **don't overthink it.** Start small, move fast, and treat it as an experiment. Forget the “rules” and focus on launching. Here's what matters most:
102+
103+
- Keep it simple: Build an app that solves one problem well.
104+
- Launch fast: Test your idea and iterate based on real feedback.
105+
- Minimize effort: Aim for maximum reward with minimal maintenance.
106+
107+
For me, **$550 MRR** isn't just “enough”—it's amazing. It's proof that small, focused apps can succeed, and they're a great way to build confidence and skills as a maker.
108+
109+
## Let's stay in touch!
110+
111+
If you found this helpful, check me out on [Twitter](https://x.com/hot_town/status/1863553258586820976) where I like to build in public and share what I'm learning and building.
112+
113+
---
114+
115+
<StarOpenSaaSCTA trailingText="and support tools that help you build fast!" />

0 commit comments

Comments
 (0)