vincanger 2d94e28dd2
Playwright tests & CI (#69)
* get tests started

* Create opensaas-ci.yml

* move github workflows

* modify ci scripts

* install linebyline

* Update package.json

* install wait-port

* Update package.json

* add conditional webserver when in CI env

* test tagging action

* Update retag-commit.yml

* remove unused workflow

* add .env file and test stripe webhook

* Update e2e-tests.yml

* Update e2e-tests.yml

* Update e2e-tests.yml

* Update e2e-tests.yml

* test demo app

* Update e2e-tests.yml

* update github action versions

* disable wasp telemetry

* Cleanup running (#72)

* improve tests

* Update ci-start-app.js

* remove npm scripts

* Update e2e-tests.yml

* Update ci-start-app-with-scripts.js

* Update ci-start-app-with-scripts.js

* rename test folder

* Update e2e-tests.yml

* Update e2e-tests.yml

* export prisma client from server

* Update e2e-tests.yml

* Update e2e-tests.yml

* Update e2e-tests.yml

* Update e2e-tests.yml

* Update package-lock.json

* install linebyline

* add npm scripts

* Update package.json

* Update paidUserTests.spec.ts

* update flaky test

* update tsconfig

* Update e2e-tests.yml

* Update e2e-tests.yml

* pin node version to github action

* Update e2e-tests.yml

* fix retag and clean up

* add notes on tag action

* Update retag-commit.yml

* pr changes part 1

* pr changes part 2

* Setup tests with local Prisma (#86)

Signed-off-by: Mihovil Ilakovac <mihovil@ilakovac.com>

* pr changes part 3

* add db naming script

* Update package.json

* Update package.json

* Update package.json

* spawn prisma process

* Update package.json

* move db setup

* Update package.json

* Update package.json

* Update package.json

* Update setupDatabaseName.sh

* Update package.json

* use same process for local and CI testing

* Update package.json

* wait for app for prisma setup

* Update package.json

* changes made with martin

* stripe clie

* Update e2e-tests.yml

* Update e2e-tests.yml

* update start stripe cli

* try again

* start testing stripe payments

* stripe payment works

* fix base url issue & cleanup

* Update playwright.config.ts

* Update package.json

* Update package-lock.json

* Update main.wasp

* Update utils.ts

* Update e2e-tests.yml

* Update utils.ts

* Update utils.ts

* Update e2e-tests.yml

* Update actions.ts

* Update actions.ts

* Update actions.ts

* Update actions.ts

* Update stripeUtils.ts

* Update e2e-tests.yml

* catch stripe checkout error

* remove console.logs

* fix comments, add err catches

* fix cache and cache keys

* Update .github/workflows/e2e-tests.yml

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Update .github/workflows/e2e-tests.yml

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Update .github/workflows/e2e-tests.yml

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Update .github/workflows/e2e-tests.yml

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Update e2e-tests/playwright.config.ts

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Improve CI caching and other stuff

* fix cache key, npm scripts, error handling

* Update e2e-tests.yml

* Update README.md

* add template versioning info

---------

Signed-off-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Fran Zekan <zekan.fran369@gmail.com>
Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
2024-04-22 10:43:25 +02:00
2024-04-22 10:43:25 +02:00
2024-02-27 13:50:36 +01:00
2024-04-22 10:43:25 +02:00
2024-02-10 08:39:35 -05:00
2024-04-22 10:43:25 +02:00
2024-04-22 10:43:25 +02:00
2023-12-01 14:41:31 +01:00
2024-04-22 10:43:25 +02:00

Welcome to your new SaaS App! 🎉

Open SaaS - Open-source & 100% free React & Node.js SaaS starter! | Product Hunt

https://github.com/wasp-lang/open-saas/assets/70215737/5ff289b1-12b9-4b46-aa90-a6a3122de93e

You've decided to build a SaaS app with the Open SaaS template. Great choice!

This template is:

  1. fully open-source
  2. completely free to use and distribute
  3. comes with a ton of features out of the box!
  4. focused on free, open-source services, where possible

🧑‍💻 Check it out in action here: OpenSaaS.sh
📚 Check out the Docs here: Open SaaS Docs

What's inside?

The template itself is built on top of some very powerful tools and frameworks, including:

  • 🐝 Wasp - a full-stack React, NodeJS, Prisma framework with superpowers
  • 🚀 Astro - Astro's lightweight "Starlight" template for documentation and blog
  • 💸 Stripe - for products and payments
  • 📈 Plausible or Google Analytics
  • 🤖 OpenAI - OpenAI API integrated into the app or Replicate (coming soon 👀)
  • 📦 AWS S3 - for file uploads
  • 📧 SendGrid, MailGun, or SMTP - for email sending
  • 💅 TailwindCSS - for styling
  • 🧑‍💼 TailAdmin - admin dashboard & components for TailwindCSS
  • 🧪 Playwright - end-to-end tests with Playwright

Because we're using Wasp as the full-stack framework, we can leverage a lot of its features to build our SaaS in record time, including:

  • 🔐 Full-stack Authentication - Email verified + social Auth in a few lines of code.
  • End-to-end Type Safety - Type your backend functions and get inferred types on the front-end automatically, without the need to install or configure any third-party libraries. Oh, and type-safe Links, too!
  • 🤖 Jobs - Run cron jobs in the background or set up queues simply by defining a function in the config file.
  • 🚀 One-command Deploy - Easily deploy via the CLI to Fly.io, or to other providers like Railway and Netlify.

You also get access to Wasp's diverse, helpful community if you get stuck or need help.

Getting Started

Simple Instructions

First, to install the latest version of Wasp on macOS, Linux, or Windows with WSL, run the following command:

curl -sSL https://get.wasp-lang.dev/installer.sh | sh

Then, create a new SaaS app with the following command:

wasp new -t saas

This will clone a clean copy of the Open SaaS template into a new directory, and you can start building your SaaS app right away!

Detailed Instructions

For everything you need to know about getting started and using this template, check out the Open SaaS Docs.

We've documented everything in great detail, including installation instructions, pulling updates to the template, guides for integrating services, SEO, deployment, and more. 🚀

Changes & Contributions

Template Versioning

Whenever a user starts a new Open SaaS project with wasp new -t saas, Wasp looks for a specific tag on the repo, and pulls the project at the commit associated with that tag. In the case of Open SaaS, the tag is wasp-v{{version}}-template, where {{version}} is the current version of Wasp, e.g. wasp-v0.13-template.

For simplicity, we automatically re-apply the tag to the most recent commit on the main branch via the .github/workflows/retag-commit.yml workflow. This way, users always get the latest version of the template when they start a new project via wasp new -t saas.d

Contributing

Note that we've tried to get as many of the core features of a SaaS app into this template as possible, but there still might be some missing features or functionality.

We could always use some help tying up loose ends, so consider contributing!

As there are a few things to know and consider when contributing, please make sure to read the CONTRIBUTING.md in this Repo.

Getting Help & Providing Feedback

There are two ways to get help or provide feedback (and we try to always respond quickly!):

  1. Open an issue
  2. Wasp Discord -- please direct questions to the #🙋questions forum channel
Description
A free, open-source SaaS app starter for React & Node.js with superpowers. Production-ready. Community-driven.
Readme MIT 86 MiB
Languages
TypeScript 68.4%
MDX 25%
JavaScript 2.4%
Astro 2.4%
Shell 1%
Other 0.8%