Welcome to SAAS Starter Kit!
Saas Starter Kit is a modern SAAS boilerplate. Save weeks of development time having standard SAAS features implemented for you, and start building your core app right away.
π Tech Stack
Frontend:
React, Nextjs, Styled Components, AntD, Firebase Auth.
Server:
Nodejs, Express, Docker, Jest, Postgres or Mongodb.
*Pro version also includes Stripe, Nodemailer, AWS CDK and more.
π§Ώ Saas Starterkit Standard
Saas Starterkit also comes in a lite barebones version. check it out here: https://github.com/Saas-Starter-Kit/Saas-Starterkit
βοΈ Installation
node version >= 14 recommended.
npm version >= 7 is recommended.
Using an older node version may lead to unexpected errors.
This Project Requires Firebase credentials and either Postgres or MongoDB credentials. Simply substitute the credentials into the appropriate env variables in both the client and server.
How to obtain the credentials from Firebase can be found in the Saas Starter Kit docs. Postgres and MongoDB credentials are user set.
Required Environment Variables
Client:
Variable | Description |
---|---|
NEXT_PUBLIC_SERVER_URL | URL of the nodejs Server. Will be localhost during dev. |
NEXT_PUBLIC_FIREBASE_API_KEY | The Firebase API key, found in the Firebase console |
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN | Firebase Auth Domain, found in the Firebase console |
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID | Google Analytics Measurement id |
NEXT_PUBLIC_STRIPE_BASIC_PLAN | Stripe plan id |
NEXT_PUBLIC_STRIPE_BASIC_PLAN_PRICE | Stripe price id |
NEXT_PUBLIC_STRIPE_BASIC_PLAN_TYPE | Human Readable plan name |
NEXT_PUBLIC_STRIPE_PREMIUM_PLAN | see above |
NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE | see above |
NEXT_PULBIC_STRIPE_PREMIUM_PLAN_TYPE | see above |
NEXT_PUBLIC_STRIPE_PUBLIC_KEY | stripe public api key |
Server:
Variable | Description |
---|---|
FIREBASE_DATABASE_URL | Found in Firebase Service Account Key JSON file. See docs for more info. |
FIREBASE_PROJECT_ID | Found in Firebase Service Account Key JSON file. See docs for more info. |
FIREBASE_CLIENT_EMAIL | Found in Firebase Service Account Key JSON file. See docs for more info. |
FIREBASE_PRIVATE_KEY | Found in Firebase Service Account Key JSON file. See docs for more info. |
AUTH_SECRET | User set, can be anything |
DB_PASSWORD | Postgres Password, user set |
DB_USER | Postgres username |
DB_HOST | Postgres host, localhost in dev |
DB_NAME | Name of Postgres database |
DB_PORT | Postgres Port, default is 5432 |
MONGO_URL | MongoDB URL is optional, if already using Postgres. Required if not. |
MAIL_TRAP_USERNAME | Mail trap username |
MAIL_TRAP_PASSWORD | Mail trap password |
STRIPE_SECRET | Stripe API secret |
STRIPE_ITEM_PRICE | Stripe price id |
STRIPE_WEBHOOK_SECRET | Stripe webhook secret |
SendInBlue_API_KEY | Sendinblue api key |
SendInBlue_User | sendinblue username |
SendInBlue_Password | sendinblue password |
SendInBlue_ListId | sendinblue listid |
PRODUCT_NAME | variable in transactional emails |
PRODUCT_URL | variable in transactional emails |
COMPANY_NAME | variable in transactional emails |
COMPANY_ADDRESS | variable in transactional emails |
Once the Environment Variables are defined and node modules installed the boilerplate is ready to go.
β¨ Features
β Admin Dashboardβ Full Authentication, with Google Social Login and Password Resetβ User Profile Management with Email and Username changeβ User Dashboardβ Checkout Pagesβ Landing and Pricing Page templateβ Decoupled Nodejs serverβ Testing Setup with Cypress and Jestβ CRUD operationsβ Stripe subscription paymentsβ Roles and permissionsβ Multi user apps and multi tenancyβ Machine learning and AIβ AWS infrastructure as codeβ Fully Featured Blog and Docsβ Event Based Google Analytics
π Docs
The Documentation is available here: https://docs.saasstarterkit.com/docs/Intro/Welcome
If there are any questions or something is not covered in the docs, feel free to open a github issue on this repo.
π» Demo
The Demo can be found here: https://demo.saasstarterkit.com/app/1/dashboard
Certain Features have to be disabled or cant be included in the demo.
π€ Contributing
Pull requests are welcome.
Also If you like this project please