Wasp SaaS Template with GPT API, Google Auth, Tailwind and Stripe Payments
Wasp SaaS Template w/ GPT API, Google Auth, Tailwind, & Stripe Payments
Running it locally
After cloning this repo, you can run it locally by following these steps:
- Install Wasp by running
curl -sSL https://get.wasp-lang.dev/installer.sh | shin your terminal. - Create a
.env.serverfile in the root of the project - Copy the
env.examplefile contents to.env.serverand fill in your API keys - Make sure you have a Database connected and running. Here are two quick options:
- Provision a Postgres database on Railway, go to settings and copy the
connection url. Past it asDATABASE_URL=<your-postgres-connection-url>into yourenv.serverfile. - or you can spin up a Postgres docker container with this command:
docker run \ --rm \ --publish 5432:5432 \ -v my-app-data:/var/lib/postgresql/data \ --env POSTGRES_PASSWORD=devpass1234 \ postgres
and then paste
DATABASE_URL=postgresql://postgres:devpass1234@localhost:5432/postgresinto yourenv.serverfile
- Run
wasp db migrate-dev - Run
wasp start - Go to
localhost:3000in your browser (your NodeJS server will be running on port3001) - Install the Wasp extension for VSCode to get the best DX
- Check the files for comments containing specific instructions
- Enjoy and Have fun. When you create an App with this template, be kind and let me know by tagging me on twitter @hot_town
How it works
- ? Wasp – allows you to build full-stack apps with 10x less boilerplate
- ? Tailwind CSS – CSS that’s easy to work with
- ? OpenAI – GPT-3.5 turbo API
- ? Stripe – for payments
- ? SendGrid – for email
Wasp as the full-stack framework allows you to describe your app’s core features in the main.wasp config file in the root directory. Then it builds and glues these features into a React-Express-Prisma app for you so that you can focus on writing the client and server-side logic instead of configuring. For example, I did not have to use any third-party libraries for Google Authentication. I just wrote a couple lines of code in the config file stating that I want to use Google Auth, and Wasp configures it for me. Check out the comments main.wasp file for more.
Stripe makes the payment functionality super easy. I just used their Subscription feature. After the user pays, their hasPaid and datePaid fields are updated in the database via the webhook found in the src/server/serverSetup.ts file.
Wasp’s integrated Jobs feature is used to run a cron job every week to send an newsletter email. I used SendGrid for the email service.
If you have any other questions, feel free to reach out to me on twitter