Presenting Open SaaS š
Weāre really excited to present Open SaaS, the totally free, open-source, production-grade SaaS boilerplate for React, NodeJS, and Prisma.
See it in action here:
Open SaaS has got all the features of those paid SaaS starters youāve been seeing lately, except its entirely free and open-source.
We felt that paying $300-$2,000 for some boilerplate code that you need to manage yourself was crazy. On top of that, many of these boilerplates rely heavily on 3rd-party services. Add on hosting and other fees, and youāre looking at spending quite a bit of money just to get your idea out there into the world.
Thatās why with Open SaaS we made a conscious decision to try and use open-source and free services whenever possible. For example, our hosted demo app and its admin dashboard on OpenSaaS.sh are powered by a self-hosted version of Plausible analytics. Want the same features in your SaaS? Well, Open SaaS has got it preconfigured for you!
Also, the Wasp framework, which Open SaaS uses, does the job of building out a number of features for you, like Auth and Cron Jobs, so that you donāt have to pay a 3rd-party service or code it entirely yourself (weāll explain this in more detail later).
Before we start...
Yoyoyoyo š
Open SaaS is live on Product Hunt right now! Come support our free, open-source initiative š
Why we built itā¦ and then gave it away for free
The initial feedback in our pre-release has been largely positive, but weāve also gotten some questions like:
āIs it going to stay free?ā
āWhatās your motivation for open-sourcing this?ā
So we thought weād go ahead and answer these to start.
First, yes it is 100% free and open-source and will stay that way.
Second, we believe that the collective knowledge of a community of developers, indiehackers, and solopreneurs will produce a better boilerplate than an individual or small group. When you buy a SaaS starter from some developer, youāre already getting an opinionated stack, then on top of that youāre also getting an app built the way they think is best ā and that may not always be the best for you.
Third, Open SaaS is a project by Wasp, an open-source React + NodeJS + Prisma full-stack framework with superpowers. We, the Wasp team, believe that Wasp is very well suited for creating SaaS apps quickly and efficiently, and we want this template to prove it. Plus, as developers, weāve learned so much from other open-source projects, and Wasp itself is an open-source project.
Basically, we love the open-source philosophy and we want to pay it forward. š
So itās our hope that we can provide a seriously valuable asset to the developer community while spreading the word about our open-source, full-stack framework. And weād love to see the community contribute to it so that it will grow and become the best SaaS boilerplate out there.
What Open SaaS is Made Of
We put a lot of hard work into Open SaaS, including the documentation, so that developers can get a SaaS app launched confidently and easily.
Weāve also spent some time checking out other free, open-source SaaS starters, and wanted to make sure Open SaaS has all the right features of a production-ready starter, without the bloat. And we think weāve accomplished that for the most part, although we will continue to add features and improve on it with time.
Here are the main features at the moment:
š Authentication (email verified, google, github)
š© Emailing (sendgrid, emailgun, SMTP)
š Admin Dashboard (plausible or google analytics)
š¤ Stripe payments (just add your subscription product IDs)
āØļø End-to-end Typesafety (no configuration necessary)
š¤ OpenAI integrated (AI-powered example apps)
š Blog w/ Astro
š Deploy anywhere
š Full Documentation & Community Support
Itās worth going into some detail about each of these features, so letās do it.
Auth
Thanks to Wasp, Open SaaS ships with a number of possible Auth methods:
username and password (simplest/easiest for dev testing)
email verified w/ password reset
Google and/or Github social login
Hereās where Wasp really shines, because all it takes to set up your full-stack Auth and get pre-configured UI components is this:
// main.wasp
app SaaSTemplate {
auth: {
userEntity: User,
methods: {
usernameAndPassword: {},
google: {},
gitHub: {},
}
}
}
Seriously. Thatās it!
Just make sure youāve set up your social auth and have your API keys, as well as your User
and ExternalAuth
entities defined, and youāre good to go. And donāt worry, that part is all documented and explained in detail in the Open SaaS Docs.
On top of that, Open SaaS comes preconfigured with some examples on how to customize and create some really powerful auth flows.
Admin Dashboard & Analytics
By leveraging Waspās Jobs feature, Open SaaS pulls data from Plausibleās or Googleās Site Analytics (your choice!) and Stripeās Data APIs every hour and saves them to our database. This data is then shown on our Admin Dashboard (go to OpenSaaS.sh to see it in action). The nice part is, to get access to this data for your own app, all you have to do is follow our guide on getting your analytics API keys, insert the provided script, and youāre good to go!
Again, Wasp makes this whole process really easy. With the function for querying the APIs and getting the data we need already defined for you, Open SaaS then uses a Wasp Job within the main.wasp
config file:
job dailyStatsJob {
executor: PgBoss,
perform: {
fn: import { calculateDailyStats } from "@server/workers/calculateDailyStats.js"
},
schedule: {
cron: "0 * * * *"
},
entities: [User, DailyStats, Logs, PageViewSource]
}
And thatās it! Wasp takes care of setting up and running the cron job for you.
Stripe Payments
If youāre a developer thatās never built your own SaaS before, then integrating with a payments processor like Stripe is probably one of the few challenges youāll face.
This was the case for me when I built my first SaaS, CoverLetterGPT.xyz. That was actually one of my main motivators for building it; to learn how to intergrate Stripe payments into an app, as well as the OpenAI API.
And even though Stripe is well known for having great documentation, the process can still be daunting. You have to:
create the correct product type
set up webhook endpoints
tell Stripe to send the correct webhook events to you
consume the events correctly
deal with recurring and failed payments
test it all correctly via the CLI before going live
Thatās why having Stripe subscription payments set up for you is such a win.
But even more important than that, is having the whole process conveniently documented for you! Which is why Open SaaS offers you convenient Stripe guides in our documentation š
End-to-End Typesafety
Open SaaS was built with Typescript, and because itās a full-stack app, type safety from the back-end to the front-end can be a real lifesaver. I mean, some opinionated stacks have gotten hugely popular on this basis.
Luckily, Wasp gives you end-to-end Typesafety out-of-the-box (nothing to configure!), so it was easy for Open SaaS to take advantage of it.
Hereās an example:
Make Wasp aware of your server action:
// main.wasp action getResponse { fn: import { getResponse } from "@server/actions.js", entities: [Response] }
Type and Implement your server action.
// src/srever/actions.ts type RespArgs = { hours: string; }; const getResponse: GetResponse<RespArgs, string> = async ({ hours }) => { }
Import it and call it on the client.
Client-side types will be inferred correctly!
AI-powered Example App (w/ OpenAI API)
AI is making new app ideas possible, which is partly why weāre seeing a resurgence in developer interest in creating SaaS apps. As I mentioned above, the first SaaS app I built, CoverLetterGPT, is one of those āGPT Wrappersā, and Iām proud to say it makes a nice passive income of ~$350 MRR (monthly recurring revenue).
I personally believe weāre in a sweet spot in software development where there exists a lot of potential to develop new, profitable AI-powered apps, especially by "indiehackers" and "solopreneurs".
This is why Open SaaS features an AI scheduling assistant demo app. You input your tasks for along with their alotted time, and the AI Scheduler creates a detailed plan for your day.
Under the hood, this is using OpenAIās API to assign each task a priority, and break them up into detailed sub-tasks, including coffee breaks! Itās also leverages OpenAIās function calling feature to return the response back in a user-defined JSON object, so that the client can consume it correctly every time. Also, we're planning on adding open-source LLMs in the future, so stay tuned!
The demo AI Scheduler is there to help developers learn how to use the OpenAI API effectively, and to spark some creative SaaS app ideas!
Deploy Anywhere. Easily.
A lot of the popular SaaS starters out there use hosting-dependent frameworks, which means you're stuck relying on one provider for deployments. While these can be easy options, it may not always be the best for your app.
Wasp gives you endless possibilities for deploying your full-stack app:
One-command deploy to Fly.io with
wasp deploy
Use
wasp build
and deploy the Dockerfiles and client wherever you like!
The great thing about wasp deploy
, is that it automatically generates and deploys your database, server, and client, as well as sets up your environment variables for you.
Open SaaS also has built in environment variable and constants validators to make sure that youāve got everything correctly set up for deployment, as well as deployment guides in the docs
In the end, you own your code and are free to deploy it wherever, without vendor lock-in.
Help us, help you
Wanna support our free, open-source initiative? Then go show us some support on Product Hunt right now! š
Now Go Build your SaaS!
We hope that Open SaaS empowers more developers to ship their ideas and side-projects. And we also hope to get some feedback and input from developers so we can make this the best SaaS boilerplate starter out there.
So, please, if you have any comments or catch any bugs, submit an issue here.
And if youāre finding Open SaaS and/or Wasp useful, the easiest way to support is by throwing us a star:
Star the Open SaaS repo
Star the Wasp repo