Fest is a SaaS boilerplate built with Node.js & React. It's equipped with the following features:
- User authentication and authorization with email verification and password reset.
- Organizations management system.
- Invite system: users can join organizations by having different roles.
- Secure API endpoints and Front-end routes with role-based authorization.
The repository is structured as a Monorepo using Nx. It contains two apps:
- api A Nest.js application, with Prisma ORM.
- frontend A Next.js application with MUI React components.
And a shared library for sharing common Typescript types, constants, and utility functions across apps.
auth0 is used for Identity management and PostgreSQL as a database.
- You'll need docker installed on your machine to run the PostgreSQL.
- For identity management to work, you need to create an account in auth0 and create two apps in there as described in here.
- Postmark is used in the repository as an email client. To send emails with Postmark, grab the key from their dashboard and add it to
apps/api/.env
. If you want to use another email client, change the corresponding code inapps/api/src/mail.service.ts
.
- Clone the repo:
git clone https://github.com/DimiMikadze/fest.git
. - Install dependencies:
yarn
. - Rename
apps/api/.env.example
to.env
andapps/frontend/.env.local.example
to.env.local
and update environment variables. - Navigate to the
apps/api
directory and rundocker-compose up
, to run the PostgreSQL instance. - run
yarn prisma:migrate:dev init
to run the initial migrations. - run
yarn dev
from the project's root, to run API and frontend apps in the development mode.
Fest is an open-source software licensed as MIT.