Skip to content

Vince

9 posts by Vince

What's the Best Way to Vibe Code a SaaS in 2026?

You’ve probably seen the tweets, the YouTube tutorials, and the “I built a SaaS in 24 hours with AI” posts. But if you’ve actually tried to vibe code a SaaS, you know the reality is much messier than that.

Luckily, there are a bunch of tools, SaaS boilerplate starters, and workflows that you can use to build a profitable (side) business with, as long as you know how to apply them correctly.

So let’s take a look at what’s out there, and what really works.

TL;DR

  • AI-native platforms (Replit, Lovable, Bolt) are great for prototyping but hit a ceiling as complexity grows. Code is coupled to their infra, and it quickly becomes expensive and difficult to maintain.
  • AI coding tools (Claude Code, Cursor, Codex) give you great code and full control, but they need the right foundation and you’ll need some fundamental understanding of the underlying tools to work well with them.
  • The winning combo: Claude Code paired with a well-structured SaaS boilerplate like Open SaaS is the best way to vibe code a SaaS in 2026, giving you coherent code generation, along with better control as your app grows.
  • Two key techniques for effective vibe coding: (1) LLM-friendly docs (llms.txt and beyond), (2) full-stack debugging visibility.

The Vibe Coding Landscape in 2026

AI-assisted coding tools come in different flavors, and understanding their differences is key to picking the right approach.

In the table below, we quickly compare the two approaches. In the sections below that, we go into more detail about each approach.

AI-Native PlatformsAI Coding Tools
ExamplesReplit, Lovable, Bolt.newClaude Code, Cursor, Codex
SetupZero-config, browser-basedLocal install, terminal/code-focused
Best forQuick prototypes and demosProduction apps and SaaS businesses
Code controlLimited — AI makes structural decisionsFull — you own and control everything
Vendor lock-inHigh — coupled to platform infraNone — works with any stack
ScalabilityScalability degrades as complexity growsScales with your codebase. No limitations.
DeploymentPlatform-hosted (limited options)Deploy anywhere (Railway, Fly.io, VPS)
Cost at scaleMonthly fee + additional costs for debugging, storage, hosting, etc.Cheaper — monthly fee + choose your favorite hosting solution

AI-Native Platforms

Tools like Replit Agent, Lovable, Bolt.new, and v0 aim for a “zero-config”, purer “vibe coding” approach, where you describe what you want and get a working app. They aim to remove setup, config, and having to touch the code and/or terminal as much as possible. They’re impressive for demos and fast prototyping.

The catch here is that most of these apps are then locked-in to their hosting, auth, and storage solutions. This isn’t always bad, but things can easily get complicated and expensive as your app grows:

  • The “70% problem”: these tools get you roughly 70% of the way to a working product. The last 30% — auth hardening, error handling, performance, deployment config — requires significant manual effort. One estimate puts the cost of making Bolt.new output production-ready at $5,000-$20,000 in professional dev work.
  • Infrastructure coupling: the code you export is tightly coupled to a specific service stack. Lovable, for example, generates code deeply wired into Supabase, a separate service for auth, storage, realtime, edge functions, etc. Leaving Lovable/Supabase means rewriting all of those integrations. Replit similarly relies on its default Auth, Storage, and database options.
  • Code quality degrades at scale: Bolt.new projects with 15-20+ components experience severe AI context degradation — duplicated code, forgotten patterns, and inconsistencies. Replit Agent has been flagged for generating “non-idiomatic or messy” code that becomes harder to maintain as projects grow. Multiple developers report spending $1,000+ in tokens just debugging AI-generated bugs.
  • Limited architectural control: the AI makes structural decisions for you, and those decisions compound. Data models get rigid, logic gets tightly coupled, and by the time you want to refactor, you’re looking at a near-rewrite anyway.

In the end, the most common feedback from users of these tools is that they allow you to move fast and to easily build initial prototypes, but maintainence and upgrades quickly become complex and expensive.

To solve this, working on code locally, instead of a platform, is the first step.

AI Coding Tools

Tools like Claude Code, Cursor, GitHub Copilot, and Codex work directly with your local files, and are better at generating production-ready code that you control.

The pros here are: full control, no lock-in, works with any stack, and the added bonus is that it will be cheaper. You can version it, test it, deploy it anywhere, and switch tools whenever you want.

But these tools require a bit more work to get the most out of them. You’ll have to be comfortable using the terminal, install a few more underlying tools, and its good to have a general understanding of the fundamentals when working with them. But, luckily, these tools can help you each step of the way, and if you set things up right (which we will show you how to do in this article) you can go all the way with them.

In comparison to the AI-native platforms, if you’re serious about building something substantial these tools give better results at cheaper prices.

We’ll use Claude Code as the driving example throughout this post, but the same principles apply to Cursor, Codex, and others.

The Winning Combo: Claude Code + SaaS Boilerplate

Most of the tedious parts of building a SaaS are routine, boilerplate tasks like setting up authentication, payments, email sending, file uploads, admin dashboard, etc. These are the things that are time-consuming to set up, aren’t very creative or interesting, but are 100% necessary for a functional SaaS.

Luckily, tons of SaaS boilerplate starter kits exist, giving you a solid foundation to build your SaaS on top of. They provide all the necessary integrations, plumbing, and glue code, along with some nice extras, so you can just focus on building the fun part of your app.

A well-structured boilerplate has some key benefits: it allows you to start working on the actual business logic of your SaaS from day one. It also gives the AI patterns, structure, and conventions to follow, making it easier for tools like Claude Code to generate clean, consistent code.

It’s like giving a skilled carpenter a well-organized workshop instead of an empty shed. The tools are there, the materials are laid out, and there’s a clear plan to follow.

You keep the full control, but you skip the part where you (or your AI) have to make a hundred decisions about project structure, auth patterns, payment integration, and deployment config. That’s all solved for you already by the starter kit.

But, because so many boilerplate starters exist, choosing the right one can be a pain.

Choosing Your SaaS Boilerplate

There’s no shortage of SaaS boilerplates out there. The real question isn’t just “which one has the best features?”, it’s which one sets you (and your AI coding tool) up for long-term success. A few factors matter more than you’d think: cost, deployment flexibility, community support, and how well the codebase structure plays with AI.

In the table below, we quickly compare some popular, battle-tested starters. In the sections below that, we go into more detail about each of them.

Paid Boilerplates (ShipFast, Supastarter)Open SaaS
Price$250-$800+Free, open-source
AuthThird-party providers (Clerk, Supabase auth, Better Auth)Built-in (email/password, Google, GitHub, Microsoft, Slack, etc.)
PaymentsStripe, Lemon Squeezy, or Polar.sh, etc.Stripe, Lemon Squeezy, or Polar.sh
DeploymentVercel + Supabase (typically)Railway, Fly.io, or any VPS
Community1-2 maintainers13,000+ GitHub stars, active open-source community
LLM-friendly docsllms.txtllms.txt
Codebase structureMultiple apps/packages with separate configs and third-party integrations wired togetherSingle app, feature-based organization with fullstack code colocated

Options like ShipFast ($250) and Supastarter (starting at $299) are popular choices. They’re packed with lots of features and have a strong history of adoption and support.

But there are a few things to consider:

  • Upfront cost: $250-$800+ before you’ve written a line of business logic
  • Vendor-leaning stacks: many are built on top of Vercel + Supabase + third-party auth services. That’s more vendor lock-in and recurring hosting costs on top of the purchase price. You’re not just paying for the boilerplate, but you’re also committing to a specific infrastructure stack.
  • Code Quality: most paid boilerplates are maintained by a one or two developers. An open-source project, on the other hand, is maintained by many more people, and the community input is much larger, making it more robust and reliable.
  • Stack fragmentation: ShipFast is a flat Next.js app where auth, payments, email, and database are each handled by separate third-party libraries you wire together yourself. Supastarter is a Turborepo monorepo with 4 separate Next.js apps and 8+ shared packages, each with its own config. Both approaches mean more files for an AI tool to navigate, more indirection to follow, and more context needed to make a single cross-cutting change.

None of this means paid boilerplates are bad. They can absolutely save you time. But it’s worth understanding what you’re signing up for beyond the purchase price.

Open SaaS — a free, open-source, production-ready SaaS boilerplate starter

“The documentation is a million times better for Open SaaS than for ShipFast... I got frustrated with ShipFast's terrible code and terrible documentation (or just the lack of) and I found Open SaaS. It's looking like it will be a better experience.”

Sean Nam's profile picture
Sean Nam Founder @ NotePulse

Open SaaS is free, and open-source. It’s powered by Wasp — a batteries-included full-stack framework for React, Node.js, and Prisma apps.

Here’s what you get out of the box:

  • Auth: email/password, Google, GitHub, all pre-configured and without third-party providers
  • Payments: Stripe, Lemon Squeezy, or Polar.sh. Take your pick.
  • Email, file uploads, admin dashboard, analytics, e2e tests: the full SaaS toolkit.
  • Deploy anywhere: Railway, Fly.io, or any VPS. No vendor lock-in.
  • 13,000+ GitHub stars and an active open-source community backing it.

Because Open SaaS is built on Wasp, everything lives under one roof. React frontend, Node.js backend, and Prisma database layer are all managed by a single framework, with a declarative config (main.wasp or main.wasp.ts) that defines your routes, pages, operations, auth, and background jobs. The codebase is organized by feature (e.g. auth, payments, file uploads) with backend logic and frontend components sitting side by side. When an AI coding tool reads main.wasp, it immediately understands the full app structure without having to jump between separate apps, packages, or third-party service abstractions. One framework, one config, one mental model for the AI to follow.

Effectively Vibe Coding Your SaaS

So we’ve got our AI-assisted coding tool and our SaaS boilerplate starter, but to get the most out of AI-assisted development, you need two more things working together. Note that these tips come from real-world experience building full-stack apps with Claude Code and Wasp, and we covered them in depth on the Wasp blog.

1. LLM-Friendly Documentation

LLMs don’t always get things right, and may sometimes be out-of-date with the latest features of the tools you’re using. For example, if you’re using a framework that shipped a new version last week, your AI tool probably doesn’t know about it, unless you give it the docs.

But how you give it docs matters a lot, because LLMs don’t have a long-term memory, rather they have context windows, which is like a limited memory of only the most recent conversations. So with each new session, you have to remind them of what you’re working on, with, and what you want to do.

One of the best solutions is to use llms.txt files. These are structured docs in a single, machine-readable plain text file that’s purpose-built for LLMs.

Open SaaS and Wasp both provide these:

Using llms.txt in an AI coding tool

Just add these URLs to your AI coding tool’s chat session or “memory” (e.g. CLAUDE.md, AGENTS.md). When the AI needs to, for example, understand how Wasp auth works or how to set up Stripe payments in Open SaaS, it has the full, up-to-date docs right there.

And it’s not just Open SaaS and Wasp. Most developer tools and integrations have adopted the llms.txt standard. Try appending /llms.txt to any tool’s docs URL and see what comes back. You’d be surprised how many services already support it. When you’re implementing a new integration, pass its llms.txt to your coding agent so it has good guardrails for development.

Another pro tip: when you’re working on a specific feature, search the tool’s docs for the relevant guide and look for a “Copy for LLMs” button. Many doc sites now offer this. Or just try adding .md to the end of a specific URL to get an LLM-friendly version of that page. For example, Stripe’s guide on SaaS subscriptions is available at https://docs.stripe.com/get-started/use-cases/saas-subscriptions.md. Pass that to your agent and it’ll have the knowledge it needs to implement Stripe subscriptions correctly.

2. Full-Stack Debugging Visibility

AI can write code all day, but if it can’t tell whether the code actually works, you’re constantly stuck in the middle, running the app, checking the browser, copying error messages back and forth.

The fix is giving your AI tool full-stack visibility into what’s happening when the code runs, so it can see the errors, and fix them without you having to always intervene.

  • Background dev server: Run your dev server as a background task so the AI can see server logs, compilation errors, and runtime exceptions in real time. In Claude Code, you can use background tasks (Ctrl+B) to keep wasp start running while you work, or just tell it to “start the dev server as a background task”.
  • Browser automation: Tools like Chrome DevTools MCP or Vercel’s agent browser let AI see what’s actually rendering in the browser — console errors, network requests, DOM state — without you having to screenshot anything. The AI can verify that the button it just added actually appears on the page and handles clicks correctly.

Together, these create a tight feedback loop: AI writes code → sees the result → spots the error → fixes it → verifies the fix. This improves the quality of the code it generates, and makes the entire process less tedious and more efficient.

Getting Started: From Zero to Vibe Coding

Ready to try it? Here’s how to go from nothing to vibe coding a SaaS in a few minutes.

Step 1: Install Wasp and Get the Template

Terminal window
npm i -g @wasp.sh/wasp-cli
wasp new my-saas -t saas
cd my-saas

This scaffolds a new Open SaaS project with auth, payments, email, file uploads, an admin dashboard, a landing page, and more — all pre-configured and ready to go.

Step 2: Set Up Claude Code with the Wasp Plugin

After installing Claude Code, add the Wasp plugin so that it has deep knowledge of the framework, as well as skills and instructions on how to properly use full-stack debugging visibility, llms.txt docs, and more:

Terminal window
claude plugin marketplace add wasp-lang/wasp-agent-plugins
claude plugin install wasp@wasp-agent-plugins --scope project

Then, in a new session, run the plugin initialization skill command to initialize the plugin with Wasp best practices for your project:

Terminal window
/wasp-plugin-init

Step 3: Get Integrations Working (Stripe, Email Sender, OpenAI, etc)

Next, you’ll want to get your payment, email sender, and other integrations working (Stripe, Email Sender, OpenAI, etc) before you start building features.

Luckily for you, we’ve got a complete walkthrough video that guides you step-by-step through creating accounts, adding your API keys, and getting each integration working:

Or if you want your agent to help guide you through the process, you can ask it to fetch the “getting started” guide from the Open SaaS LLMs.txt docs and follow the instructions step-by-step.

Step 4: Start Building

Fire up your database and dev server:

Terminal window
wasp start db
wasp start

Or just tell Claude Code to run start the dev server as a background task and it will run the correct commands for you :)

Now it’s finally time to give Claude Code a real feature request — “add a user settings page where users can update their profile” — and watch it reference the Wasp config file(s) to understand your app’s structure, reference the right patterns from the boilerplate, and implement the feature correctly.

Because Wasp is opinionated, Claude won’t have to guess where to put files, how to wire up routes, or which patterns to follow. It reads the config file(s), sees the existing conventions, and follows them. You get consistent, working code on the first try — or pretty close to it.

FAQ

What's the difference between AI-native platforms and AI coding tools?
AI-native platforms like Replit, Lovable, and Bolt.new aim for a zero-config experience where you describe what you want and get a working app. AI coding tools like Claude Code, Cursor, and Codex work directly with your codebase, giving you full control and no vendor lock-in. AI-native platforms are great for quick prototypes but hit a ceiling as complexity grows, while AI coding tools require more setup but produce more maintainable, production-ready code, and can actually be cheaper in the long run.
Can I export my code from Replit, Lovable, or Bolt.new?
Yes, all three platforms let you export your code via GitHub sync or ZIP download. However, the exported code is often tightly coupled to their infrastructure — for example, Lovable generates code wired into Supabase, and Replit uses proprietary auth, storage, and database solutions. This means significant refactoring is needed if you want to deploy elsewhere or switch services.
What is llms.txt and why does it matter for vibe coding?
llms.txt is a structured documentation file in plain text format, purpose-built for LLMs. It gives AI coding tools like Claude Code up-to-date knowledge about the frameworks and tools you're using, reducing hallucinations and outdated code suggestions. Most developer tools now support it -- just append /llms.txt to any tool's docs URL to check.
What is the best free SaaS boilerplate starter for AI-assisted development?
Open SaaS is a free, open-source SaaS boilerplate for React, Node.js, and Prisma apps powered by the Wasp framework. It comes with auth, payments (Stripe, Lemon Squeezy, or Polar.sh), email sending, file uploads, an admin dashboard, and more, all pre-configured. Because it's built on Wasp, the entire stack is managed by a single framework with a declarative config file. The codebase is organized by feature with backend and frontend code colocated, so AI tools can understand the full app structure from one file instead of navigating multiple apps, packages, and third-party integrations.
Does codebase structure matter for AI-assisted development?
Yes, significantly. AI coding tools work best when they can quickly understand the full picture of your app. A codebase organized by feature with colocated fullstack code — like Open SaaS, where backend logic and frontend components sit side by side — gives the AI one clear mental model to follow. In contrast, boilerplates that split code across multiple apps, packages, and third-party integrations require the AI to navigate more files and follow more indirection, which increases the chance of inconsistencies and errors.
How do I set up Claude Code for full-stack SaaS development?
Install Claude Code, then add the Wasp plugin for deep framework knowledge. Create a new Open SaaS project with 'wasp new my-saas -t saas', set up your integrations (Stripe, email, etc.), and run 'wasp start' as a background task so Claude Code can see server logs and errors in real time. Pair this with browser automation tools like Chrome DevTools MCP for full-stack debugging visibility.

Conclusion

The best way to vibe code a SaaS in 2026 isn’t about finding the flashiest AI tool, it’s about giving your AI tool the right foundation to work with.

We suggest using Claude Code and giving it three things: a strong SaaS boilerplate starter kit, like Open SaaS, that gives AI a solid foundation to work with, LLM-friendly docs that help AI stay grounded without burning context, and full-stack debugging visibility that closes the feedback loop.

Open SaaS + Claude Code gives you all of this: a free, open-source, production-ready SaaS foundation, the structure and conventions AI needs to generate clean, consistent code, complete LLM-friendly docs for both the template and the framework, and the tools for full-stack debugging visibility. And because it’s all free and open source there’s no upfront cost, no vendor lock-in, and you can deploy wherever you want.

You spend your time on business logic and product, not the boring stuff.

⭐️ Star the Open SaaS repo and support open-source tools for builders, by builders!

The Public Development Roadmap for Open SaaS

We created Open SaaS to help developers launch full-featured SaaS products faster.

But launching fast only works when you’re working with clear direction and a good foundation. As an open-source project powered by Wasp, and with our users in mind, we thought it was important to add two things to this project:

  1. A solid roadmap so that development is focused.
  2. Making that roadmap public, to give the community a clear view of what’s coming next and how they can get involved.

So we created just that.

Behold, the Open SaaS public roadmap!


Open SaaS public roadmap

Why a roadmap?

Open SaaS is becoming a beast of its own. At 13k GitHub stars and growing, and with constant feature additions and improvements, we thought it was time to make future development more organized, transparent, and community-driven.


Open SaaS is used by thousands of developers

With tons of SaaS apps being deployed with Open SaaS, the needs of its users are also becoming more diverse. It would be impossible to address all of them, but we needed a way to track and prioritize the most important features and improvements.

Up until now, it was just me basically deciding which issues to work on and when. This was pretty inefficent to begin with, and then with more contributors joining the project, it became even more so.

The roadmap is thus a great way to make sense of all the different possible directions we can go in, help focus our efforts, and make development and contributions more meaningful.

How it works

Open SaaS currently has about 100 open GitHub issues, so it would be crazy to organize and track them all in the roadmap.


An example of an Epic in the Open SaaS roadmap

So to make things overseeable, the roadmap is a GitHub project with a collection of “Epics”. An Epic is just a GitHub issue with a bunch of sub-issues. Each Epic has a status and a progress bar to show you how many of its sub-issues are completed.


An example of an Epic in the Open SaaS roadmap

No regular issues are allowed in it, only epics, of which we don’t want too many. This way, its easy to understand the current themes and priorities of the project, as well as what’s currently underway.


Guiding themes

When creating epics within the roadmap, there are a few categories we’re focusing on at the moment. These guiding themes inform the epics we create, and help us make sure we’re addressing the most important needs of our users.

1. Real-world launch readiness

Open SaaS should not just be a polished demo, or a flimsy template. It should be something you can deploy and scale. We want to make sure Open SaaS is a production-ready starter that can be used to build real-world SaaS products. This means having a solid architecture, a clean codebase, and a set of features that are robust and ready to be used in production.

2. Modularity & flexibility

Different auth methods, billing providers, file uploads, AI integrations, analytics, and more. We want to make sure Open SaaS is a flexible and modular platform that can be tailored to the needs of (almost) any SaaS product. This means having the most essential features you need to launch your SaaS quickly, and being able to easily remove the things you don’t.

3. AI-first developer experience


Open SaaS is AI-ready

Whether you use Cursor, VSCode + Copilot, Claude, or others, Open SaaS should have top-notch code quality and be able to “explain itself” well to AI-driven coding tools, making it enjoyable to develop with in 2026 and beyond.

We also want to provide demos and templates for AI-powered SaaS products, so you can get started building SaaS apps that leverage the newest technologies to create powerful and innovative products.

4. Community-powered evolution

We want Open SaaS to be shaped by real feedback, real PRs, and real use cases. Roadmap ideas are only valuable when they reflect what people actually need. So your feedback and contributions are important to us!


What’s in the roadmap

We just got finished with a major UI redesign, which we dubbed “Open SaaS v2.0”. Take a look at the announcement below.

With the new UI, based on Shadcn UI, finished and tucked away, we’ve turned back towards adding highly-requested features, and improving the codebase with smaller fixes.

1. Payment Provider Expansion

Today, Open SaaS supports Stripe, Polar, and Lemon Squeezy as payment providers. It’s super easy to get started with one — just plug and play.

Upcoming features:

  • Polar.sh integration (merged in #461)
  • Paddle, and additional gateways (especially regional-friendly options)
  • Supporting up- or down-grading between different billing plans and models (proration)

2. AI-First Workflows & Templates

Open SaaS already includes a simple OpenAI integration example, but we’re looking to expand and improve it.

Coming soon:

  • Exploring using Vercel’s AI SDK within our demo app (issue #567).
  • Cursor / Claude prompt presets for smoother onboarding (issue #579)
  • Creating better docs and guides for AI-powered SaaS development

3. Core Development Improvements

We want to keep Open SaaS relevant and up-to-date with the latest trends, as well as with the latest Wasp (the framework it’s built on) features and improvements .

Efforts underway:

  • Refactors, galore! E.g. removing any and as from the codebase, extracting SVGs, etc. (issue #568)
  • Improving OpenSaaS.sh development workflows (issue #552)
  • Improving e2e tests (issue #558)


How to Participate

So that’s just a quick overview of the current state of the roadmap. But we’re not done yet!

Open SaaS is community-driven — and we’d love your help.

⭐ Star the repo

This is super easy and helps a ton!

https://github.com/wasp-lang/open-saas

🧩 File issues or feature requests

Especially around real-world SaaS requirements you’re running into.

https://github.com/wasp-lang/open-saas/issues

🔧 Contribute code

If you’re interested in payments, dashboarding, AI workflows, or dev-experience improvements — we’ll happily support and guide.

https://github.com/orgs/wasp-lang/projects/6

🚀 Build with it

The best feedback always comes from people deploying real products. Drop us a line on Discord or Twitter and let us know what you’re building!


Roadmap Updates

We’ll keep updating this roadmap alongside major releases and aim for a quarterly revision cycle.

You can follow progress in the GitHub Project board:

👉 https://github.com/orgs/wasp-lang/projects/6

See you there!

Building a SaaS with Gemini 3 and Open SaaS

I’m always skeptical of demos whenever a new model gets released. So I had to test Google’s new Gemini 3 model myself.

I wanted to give a more unfiltered look at some real-life SaaS development tasks with Gemini 3, Cursor and our very own Open SaaS boilerplate, so I recorded a quick video of the process.

The results were impressive and it was able to handle 3 tasks of increasing complexity. I’ll definitely be using this as my new go-to model for feature development in future projects!

Check out the full video below to see it in action:

Refactoring the Landing Page

I started with a fresh copy of the Open SaaS template and gave Gemini 3 a simple prompt: look at the demo AI app and update the landing page to reflect it.

Using Cursor’s “Plan Mode,” Gemini 3 proposed three different design styles. I chose an “interactive product-led demo” approach. The model generated a plan and executed it on the first try, building a custom interactive component and integrating it seamlessly into the existing landing page hero section.

This was a cool surprise, as I hand’t thought about building an interactive component to showcase the app’s features. A nice win!

Landing page

Refactoring with Structured Outputs

Next, I ramped up the difficulty. The demo app originally used OpenAI’s function calling to generate a daily schedule. I asked Gemini 3 to refactor this to use OpenAI’s “Structured Outputs” feature instead.

The model:

  1. Identified the need for a Zod schema to define the response format.
  2. Switched the model to gpt-4o-mini.
  3. Replaced the legacy tool definitions with the new response_format parameter.
  4. Updated the parsing logic to handle the structured response.

This refactor modernized the codebase without breaking existing functionality. Nice. This saved me a ton of time reading the docs and figuring out how to use the new feature myself.

Adding a Collaborative Chat Interface

For the final test, we asked for a major feature addition: a chat interface to collaborate with the AI on the creating a daily plan (with subtasks) before committing to it.

Gemini 3 broke this down into a multi-step plan:

  • Backend: Define new schemas and actions to handle the chat history and plan proposals.
  • Frontend: Implement a chat component using shadcn/ui components (specifically the ScrollArea).
  • Integration: Connect the chat interface to the planning logic, allowing users to refine tasks (e.g., “prioritize filming the video”) before accepting the final schedule.

The result was a functional chat interface where the AI intelligently adjusted the schedule based on user feedback, embedded directly into the app. I loved how it injected a nice styled component into the chat window, something that I wanted (it read my mind!) and would have taken me hours to build in the past.

I was really happy with the results of this challenge!

Chat interface

Conclusion

The combination of Gemini 3, Cursor, and Open SaaS proved to be pretty powerful. The model didn’t just generate code; it understood the project structure (Open SaaS organizes code vertically by feature), followed architectural patterns, and successfully implemented complex refactors and new features with minimal human intervention.

Overall, I was very impressed and I think other SaaS builders would be smart to give this stack a go.

⭐️ Star Open SaaS repo and start building your next idea today!

Open SaaS v2.0 -- ShadCN UI, LLM-friendly, MoRs, and more.

What could make a free, open-source, full-featured SaaS boilerplate even better? Probably a fresh new look on top the hottest UI library out there, plus a slew of new features.

Well, that’s exactly what we’ve done with Open SaaS v2.0.

Oh, and we’re launching it on Product Hunt, so go show your support for open-source SaaS dopeness! 🙏

Open SaaS v2.0 BannerOpen SaaS - The open-source SaaS boilerplate with superpowers! | Product Hunt

The most significant change is a complete redesign using Shadcn UI, providing a more modern, consistent, and customizable experience out of the box. This update also includes key framework upgrades, new integrations, and significant codebase improvements to help you build your SaaS faster than ever.

You’re welcome.

New Look with Shadcn UI

People really love Open SaaS, but we knew from the start that if there were a way to improve it, than it would be to offer a better look and feel.

So we’ve done just that.

🧐 Here’s what it looked like before:

🔥 And here’s what it looks like now:

You probably noticed that the design is cleaner, more consistent, and offers more interactive elements. But it’s also completely redesigned on top of Shadcn UI (which is also open source!), so you get a modern, composable, and highly customizable experience out of the box.

On top of that, we’ve also made the styles easily themable, and in the future we’ll be offering a slick way to find and use a great looking theme, as well as a range of different Landing Page templates for you to choose from. So stay tuned for that!

Now on to the new features!

⭐️ Star the Open SaaS repo and support open-source tools for builders, by builders!

New Features

Lemon Squeezy, Polar, and Paddle Merchants of Record

Merchants of Record (MoR) are great. They’re a layer on top of payment processors like Stripe that take the pain out of the legalities and tax compliance of being a merchant.

Polar

We’ve added support for Lemon Squeezy with Polar integration in the works as we speak! Choose the payment processor that best fits your SaaS if Stripe is too granular for your needs.

And while we’re working on Polar right now, next up we’ll be adding support for Paddle as a MoR to satisfy the needs of the broader international indiehacker community.

LLM-friendly Docs and Rules

One of the best use cases for LLM-assisted coding is to get precise answers to your questions about a codebase or library. You can pass it the docs, ask your questions, and get context-aware answers.

So we’ve added an LLM-friendly version of the Open SaaS docs, as well as the Wasp framework docs, to make it easier for you to use in your AI coding environments.

LLMs-full.txt

Just add the following urls to your AI coding environment such as Cursor, Copilot, etc, and mention it in your prompt to get precise answers to your Open SaaS and Wasp framework questions.

Open SaaS AI-friendly docs:

https://docs.opensaas.sh/llms-full.txt

Wasp framework AI-friendly docs:

https://wasp.sh/llms-full.txt

In addition, we’ve also got a full set of project-specific Cursor rules files that you can use to make sure your AI assistants stay on the right track. These can be adapted to use with Claude Code, Windsurf, and more.

End-to-End Testing with Playwright

One thing I hate about building a SaaS is that I’m constantly worried it might break after adding a new feature. To give you peace of mind, we’ve integrated a full suite of end-to-end tests using Playwright. These tests act like a robot user, clicking through your app to verify that everything from user sign-ups to critical payment flows is working exactly as it should.

Playwright UI

But we didn’t just write tests for ourselves. We’ve provided the entire setup, including a CI/CD workflow file for GitHub Actions. This means you can automatically run these checks on every code change, ensuring you never accidentally break your production app. Ship with confidence, knowing your core features are easily protected, and use our test suite as a foundation for your own custom test cases.

More Refactors & Improvements

But wait theres more!

On top of the headlining features, we’ve been busy shipping a ton of other improvements to make your life easier. We’ve squashed bugs, upgraded major dependencies like Node.js and the Wasp framework, and completely refactored the codebase for better organization. We also threw in some handy new integrations like enhanced file uploads with progress bars and a cookie consent banner. Here’s a quick rundown of other key changes:

  • New Features & Integrations 🚀:

    • Enhanced File Uploads: The file upload functionality has been improved with features like progress bars and validation. The S3 CORS configuration was tightened for improved security.
    • Cookie Consent: A cookie consent banner has been implemented.
  • Major Dependency and Framework Upgrades 🛠️:

    • Wasp Framework: There have been multiple upgrades to the Wasp framework, moving from version 0.13.0 up to 0.16.0 and beyond. This indicates active maintenance and adoption of new Wasp features.
    • SDKs: The AWS and OpenAI SDKs have been updated to their latest versions.
    • Node.js: The environment has been updated to Node.js version 20.
  • Codebase Refactoring and Organization 🗂️:

    • Vertical Reorganization: A major refactoring effort was undertaken to organize the codebase “vertically”. Functionality for features like auth, payments, users, and file-upload are now grouped together, improving modularity.
    • User Management: Significant refactoring was done on the user management and administration pages.
  • Documentation and Content 📚:

    • A substantial number of commits are related to adding new blog posts, updating documentation, and creating other content. This reflects a strong focus on community engagement and developer resources.

Help Us, Help You!

We’re not done yet. We’re going to keep listening to our commonunity and improving Open SaaS.

So if you’ve got ideas on how to improve it, please create a GitHub issue or submit a pull request.

Got a cool landing page variation? Submit a PR! Found a bug? Create an issue!

Want to support us? Star the repo on GitHub!

⭐️ Star the Open SaaS repo and support open-source tools for builders, by builders!

More Landing Page Templates

We’re working on a ton of new landing page templates for you to choose from. We’ll be adding more templates in the coming weeks and months, so keep an eye out for updates.

Here's my SaaS Cost, Profit, and Marketing Breakdown

Hey builders,

I wanted to share my journey building a micro SaaS, CoverLetterGPT, which earns $550/month in recurring revenue (MRR), while requiring minimal effort and maintenance. Here’s a breakdown of overall costs, profit, how I got customers, and why I believe small, simple SaaS apps are an underrated way to start as an indie maker.

@hot_town_ Here’s a down of how much it cost me to run my SaaS app which is a simple GPT wrapper for generating cover letters. Overall, it’s been a decent little profit because the app doesn’t cost me much to run. #webdevelopment #sideproject #indiehackers #saas #ai ♬ original sound - Vinny

At a glance

CoverLetterGPT is a GPT wrapper that generates personalized cover letters based on the user’s uploaded CV and job description. The function that seperates it from just using chatGPT is that users can edit cover letters inline with AI assistance, as well as manage all the different cover letters they’ve generated. It’s super simple, and it’s even open-source! I launched it in August 2023 and it’s been a steady source of passive income since.

Here are some quick numbers:

  • Built in 1 week
    • using Open SaaS, a free, open-source React, NodeJS, SaaS boilerplate template with tons of features.
  • Runs on autopilot
    • ~1hr/month of maintenance
  • ~$550 MRR
  • Minimal customer support
    • Only 3 Stripe disputes to date
  • Costs ~$16/month
    • ~$12 for hosting
    • ~$3 for OpenAI API fees
    • $11.82/year for the .xyz domain
  • $0 paid ads
    • Just SEO and Social Media/Reddit
CoverLetterGPT MRR & Revenue Chart

Costs Breakdown

Cost TypeMonthly CostNotes
App Hosting$12Railway.com
OpenAI API$3~1,500 requests / 1.5m tokens
Domain$0.98$11.82/year via Porkbun
Stripe Fees~$45~3% + 30¢/transaction + ~2% currency conversion

As you can see, Stripe fees are the biggest “cost” in the end, becuase most of my customers are abroad, so I get hit with extra cross-border fees. But that’s just the cost of doing business. Plus, I don’t really see these fees, so they dont bother me much.

Meanwhile, using the OpenAI API isn’t as expensive as you might think, and the models keep getting cheaper and better. I’m currently using the gpt-4o-mini model for the standard plan, and gpt-4.1 for the pro plan.

CoverLetterGPT SubscriptionPricing

At about 1,500 requests/month, which equals roughly 1.5m input and output tokens, this costs me around $3/month.

CoverLetterGPT OpenAI Cost CoverLetterGPT OpenAI Requests

Besides that, my hosting bill is about $12/month on Railway, and I pay $11.82/year for the .xyz domain via Porkbun.

Revenue & Profit Breakdown

MetricValueNotes
Avg. Monthly Revenue$615Past 8 months, converted from €543
Total Net Revenue$9,912Since launch, after Stripe fees
Total Costs to Date$345$15/month × 23 months
Avg. Monthly Profit$416$9,567 ÷ 23 months
Total Profit to Date 🎉$9,567Net revenue minus costs

At current exchange rates, my average monthly recurring revenue of €543 over the past 8 months equals

  • an average of $615 MRR for the past 8 months

My total revenue, minus ~$45/month Stripe fees, disputes, and refunds, since launch has been €8756. At current exchange rates, this equals

  • $9,912 total net revenue

My costs since launch 23 months ago have been ~$15/month. So 15 * 23 equals

  • $345 monthly costs

This brings my total profit since launch to

  • $9,567 total profit or
  • $416/month average profit

That’s enough to afford a lease on a nice Jeep Wrangler.

cars I can lease for $416/month

Not bad for a side project that I built in 1 week!

Marketing Breakdown

ChannelEffort LevelReturnResult / Notes
Product HuntHighMediumInitial launch, created marketing assets, got early traction
RedditMedium-HighHighPosted in dev/entrepreneur/job subreddits, boosted SEO, some bans risk
Indie HackersEasyMediumShared open-source story, featured in newsletter, good feedback
TwitterHardLowShared updates, videos, and journey.
TikTokMedium (Ongoing)HighShared updates, videos, and journey, helps maintain MRR.
Paid AdsNoneDid not run any paid ads

By far the question I get asked the most by other curious builders is how I got customers. Many ask if I paid for ads, and I didn’t.

Here’s what I did do:

Initial Product Hunt Launch

A lot of people aren’t sure if Product Hunt is worth it these days (spoiler: it still is!), but I’d say launch there anyway.

CoverLetterGPT Product Hunt Launch

I wasn’t sure where to go with my app after I first built it, so Product Hunt seemed like a good start. The benefit of launching there, regardless of how the launch performed on the platform, was that it forced me to do a few important things.

First, I had to create good marketing materials for the launch, like videos, images, and marketing copy.

Then, with the launch coming up, I felt that I had to start telling people about it. I mean, there’s no point in launching and then not trying to get some upvotes and support, right?

This all lead to giving me a jump start on spreading the word about the app. It did decently well on product hunt, and gained some initial traction, but with that material I also went to other platforms to share it.

Reddit Posts and Comments

CoverLetterGPT Reddit Post

Posting on Reddit can be tricky. If you’re too forward, it gets seen as spam and you can get banned.

Luckily, I left the app open-source because I wasn’t anticipating much success from it, and a good side effect of this was that I was able to openly post about it on developer and entrepreneur subreddits. To this day, I think this had a good effect on SEO, but I’m not certain.

Besides that, I found job search subreddits and left comments on posts where people were asking about using AI to generate cover letters.

Indie Hackers

I also posted about it in the IndieHackers community and got great feedback, mainly due to the fact that it was open-source and starting to get good signup numbers.

CoverLetterGPT Indie Hackers

This led to a getting featured in their newsletter—again, thanks to the app being open-source—and this led to a lot more buzz.

Twitter & tiktok

I also took to twitter and tiktok to share fun videos about the app, my journey building it, and my thoughts about it.

Doing this periodically and consistently throughout the past couple years has probably helped keep MRR consistent

What I’ve learned

This experience has been pretty interesting. I’ve defintiely had a bit of luck and good timing on my side, but I’ve also learned a lot about building a SaaS, marketing, and what tends to be good and bad advice out there.

So here’s my take on things.

Small, Persistent Wins Are Worth It

Many developers think a SaaS has to be big, flashy, or wildly profitable to be worth building. I disagree. For me:

  • $550/month is fantastic as side income.
  • Revenue has been surprisingly stable.
  • It runs itself, requiring virtually no maintenance.
  • I can balance it easily alongside my full-time job.
  • It’s fun and doesn’t consume my free time.

I would encourage anyone who wants to build a SaaS to go for it, but to aim for small, achievable SaaS projects instead of trying to “hit it big” from the start.

Build & Launch Fast

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:

  1. Avoid long, drawn-out failures: Build small, execute early.
  2. Use the fastest tools available: I used Open SaaS because it gives me all the building blocks already set up (auth, Stripe payments, OpenAI API examples, email sending, etc), letting me focus on the business logic of the app.
  3. Forget perfection: I didn’t worry about making it pretty or perfect—-it just had to work.

Keep It Simple

The beauty of a simple, “micro SaaS” is in its simplicity. Here’s why:

  • My app does one thing well: generating cover letters based on résumés and job descriptions and allows users to edit them inline with AI assistance.
  • There’s no need for a fancy landing page or marketing gimmicks. This is my 🌶 hot take. I mean, my landing page is my app! Users land on it and can instantly try it out.
  • Users get 3 trial credits-—enough to try the app and see value before paying.
CoverLetterGPT landing page

One of the biggest perks of small SaaS is how low-maintenance it can be. With CoverLetterGPT, I rarely handle customer service thanks to its simplicity and the low, but consistent number of users (~100).

This means I spend my time on new ideas rather than maintaining old ones.

It’s All About Tradeoffs

While I could optimize and grow CoverLetterGPT further, I’ve chosen to keep it small and simple. For me:

  • Small wins are still wins.
  • I value having a side project that’s easy to manage alongside my full-time job.
  • I’d rather have less stress than chase higher profits.

Final Thoughts

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:

  • Keep it simple: Build an app that solves one problem well.
  • Launch fast: Test your idea and iterate based on real feedback.
  • Minimize effort: Aim for maximum reward with minimal maintenance. If you’re spending months on it before people can try it, you’re probably working on the wrong initial idea.

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.

My GPT Wrapper Makes $550 MRR One Year After Launch

Hey builders,

I wanted to share my journey building a micro-SaaS, CoverLetterGPT, 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.

Quick Stats:

  • Built in 1 week
    • using Wasp, a React, NodeJS, & Prisma framework
    • and Chakra UI for the design system.
  • Runs on autopilot
  • ~$550 MRR after one year
  • Minimal customer support—only 3 Stripe disputes to date
  • Costs ~$15/month to operate (hosting + OpenAI API fees)
  • Deployed on Railway & Netlify

BTW, I built Open SaaS, the free, open-source SaaS template based on what I learned from building and launching CoverLetterGPT.

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.

⭐️ Star the Open SaaS repo and support open-source tools for builders, by builders!

Small Wins Are Worth It

Many developers think a SaaS has to be big, flashy, or wildly profitable to be worth building. I disagree. For me:

  • $550/month is fantastic as side income.
  • It runs itself, requiring virtually no maintenance.
  • I can balance it easily alongside my full-time job.
  • It’s fun and doesn’t consume my free time.
CoverLetterGPT MRR Graph

Here’s why I think you should aim for small, achievable SaaS projects instead of trying to “hit it big” from the start.

Build & Launch Fast

CoverLetterGPT Reddit Post

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:

  1. Avoid long, drawn-out failures: Build small, execute early.
  2. Use the fastest tools available: I used Wasp 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, I was able to build the app in about 1 week.
  3. Forget perfection: I didn’t worry about making it pretty or perfect—it just had to work.

Keep It Simple

The beauty of micro-SaaS is in its simplicity. Here’s why:

  • My app does one thing well: generating cover letters based on résumés and job descriptions.
  • There’s no need for a fancy landing page or marketing gimmicks. This is my 🌶 hot take.
  • Users get 3 trial credits—enough to try the app and see value before paying.
CoverLetterGPT landing page

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.

This means I spend my time on new ideas rather than maintaining old ones.

It’s All About Tradeoffs

While I could optimize and grow CoverLetterGPT further, I’ve chosen to keep it small and simple. For me:

  • Small wins are still wins.
  • I value having a side project that’s easy to manage alongside my full-time job.
  • I’d rather have less stress than chase higher profits.

If you’re thinking about launching your own SaaS, here are some helpful resources:

Final Thoughts

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:

  • Keep it simple: Build an app that solves one problem well.
  • Launch fast: Test your idea and iterate based on real feedback.
  • Minimize effort: Aim for maximum reward with minimal maintenance.

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.

Let’s stay in touch!

If you found this helpful, check me out on Twitter where I like to build in public and share what I’m learning and building.


⭐️ Star the Open SaaS repo and support tools that help you build fast!

We Made the Most Annoying Cookie Banners Ever

We at Wasp just finished off a fun little hackathon where we asked our users to create the most annoying cookie consent banners they could think of (because cookie banners aren’t annoying enough already, right?). Then we let our community pick the winner in an elimination style tournament on X/Twitter.

It was a lot of fun, and the submissions were really creative, so we thought we’d highlight some of our favorites for you, including the community chosen winner. Check ‘em out below. We hope they inspire you… to… not use them on your own sites. :)

The GDPR Quiz

The General Data Protection Regulation (GDPR) is the EU’s data privacy law that requires websites to get explicit consent from users before collecting their data through cookies.

GDPR is the reason we have cookie consent banners today.

This submission by Cam Blackwood gets to the core of why cookie consent banners are annoying: they force users to make a decision about something they barely understand (or care about), based on a regulation they probably don’t even know exists.

Thanks for the reality check, Cam.

Windows of Time

Do you ever feel like cookie consent banners are UX design pattern from the past? Well, this submission by Lazi confirms that, by sending you through an operating system time machine to a past we’d all like to forget.

Disturbing, yet oddly comforting.

Find all the Cookies

There are some sites that make rejecting cookies a real pain, as if you were trying to find a needle in a haystack, or as if you were looking at a Where’s Waldo puzzle.

This submission by Fecony, Wasp community meme lord, is just that. We find it annoying and fun at the same time, but what we’re not sure about is if it’s even possible to find them all.

Well played, Fecony.

Fresh Batch of Cookies

Most of us probably just smash the “accept” or “reject” button without even reading the fine print. But Henry Boyd is a maniac and with his submission, you have to accept ALLLLL the cookies.

And that’s a whole lot of cookies.

What’s more annoying than cookie consent banners? Probably job applications. Well [Wardbox], community builder extraordinaire, combines the best (or worst) of both worlds to make the cookie mangament process even more tedious than you could imagine.

Now all we have to do is wait for the rejection email.

Grand Prize Winner: Gangnam Style Beat

Our community-chosen winner’s submission pretty much speaks for itself.

Make sure you turn on the sound for this one!

🎤 Eeeeh, sexy cookie. Op! op-op-op! 🎵

And there you have it!

Thanks to everyone who participated! We had a lot of fun looking at all the submissions and we’re glad to see that the community is as creative (and annoying) as ever.

And now for a quick PR announcement:

At Wasp we’re working hard to build a modern, open-source full-stack React/NodeJS framework.

The easiest way to show your support is just to star the Wasp repo! 🐝 It helps us spread the word and motivates us to keep building.

friendly handshake

Thanks for reading, and showing your support!

🍪 THE MOST ANNOYING COOKIE BANNER EVER HACKATHON 🤬

What kind of hackathon is this?

The goal here is simple. Make THE MOST ANNOYING COOKIE BANNER you can think of.

Cookie consent banners annoy us all. So we thought, why not have some fun with them? Here are a couple examples of what that might look like:

  1. The Cookie Consent Wheel of Fortune:
Consent wheel
  1. The “Hit Enter When the Red Ball is Over the Accept Button to Consent” Banner:
Enter to win

Now it’s time for you to get creative. Btw, if you’re looking for some inspiration, check out these Ridiculous Volume Slider UI’s.

Prizes

2 winners will receive a nice mechanical keyboard, an additional annoying gift, as well as a shoutout on our socials.

The 2 winners will be selected by:

  • The Wasp team
  • Our Community (Discord & Twitter)

The community will get a chance to vote in a battle royale style elimination tournament, where two banners will go head-to-head and the winner will advance to the next round.

Keyboard

(The brand/style will depend on the winner’s location, but we’ll do our best to find one with a Wasp look and feel 😃)

How to participate

  • Fork the Annoying Cookie Banner Stackblitz Template

    • If you prefer to work in your own editor, just click on the Create a repository button after you fork the template
  • When finished with your banner, click on Share in the top left, and in the Embed tab, click Copy URL with the following settings:

    Share
  • Next, edit the MOST-ANNOYING-COOKIE-BANNER.md file on the Open SaaS repo.

    • Enter your GitHub username followed by the embed link you copied from Stackblitz
    • Note: after you create a PR, the Wasp team will add the ANNOYING COOKIE BANNER label to it.
  • Make sure you also ⭐️ star the Open Saas repository to be eligible to win!

Deadline & Results

Submit your PR before the 21st of October to be eligible to win!

Be sure to join our Discord or follow us on Twitter/X for updates and the final results!

Let’s annoy our users! 🚀

Let’s create the most annoying cookie consent banner and have some fun! This hackathon is your chance to show off your creativity and tech skills. We’re super excited to see what wild ideas you come up with.

Remember, this is all about having fun and pushing the boundaries of user interface design!

Let the annoyance games begin! 🎉

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

Hey, I’m Vince…

Vince Headshot

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.

CoverLetterGPT

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?

Tech Stack

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 🙏

star wasp

⭐️ Star Wasp on GitHub 🙏

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.

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.

reddit

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.

product hunt

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
pricing page

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!

star wasp

⭐️ Thanks For Your Support 🙏