ESLint and Prettier are used to enforce stylistic convention.
Broadly there are three main parts to the repo; being admin, site and components. These workspaces are managed by Turborepo.
Backend:
Workspace is /api
Currently the backend uses nhost to easily provision a PostgreSQL database, GraphQL API (Hasura) and authentication. This may be replaced later by an /api
workspace using NestJS (or something different with Lighthouse or Ariadne) for finer grained control.
Admin interface:
Workspace is /admin
Admin dashboard to be built using Refine
User facing site:
Workspace is /site
Public facing site to be built using next
Project components library:
Workspace is /to-decide
This project uses pnpm for dependencies and workspaces. If you don't have pnpm and assuming you are using node@>16.17 the easiest way to get it is with corepack:
corepack enable
corepack prepare pnpm@latest --activate
Install dependencies and run locally with:
pnpm i && pnpm dev