This project uses Turborepo as incremental bundler and build system for monorepos.
This turborepo uses pnpm as a package manager. It includes the following packages/apps:
@repo/web
: a Next.js app@repo/api
: an Nestjs server@repo/ui
: ui: a React component library@repo/eslint-config-custom
:eslint
configurations for client side applications (includeseslint-config-next
andeslint-config-prettier
)@repo/eslint-config-custom-server
:eslint
configurations for server side applications (includeseslint-config-next
andeslint-config-prettier
)scripts
: Jest configurations@repo/logger
: Isomorphic logger (a small wrapper around console.log)@repo/typescript-config
: tsconfig.json's used throughout the monorepo
Each package/app is 100% TypeScript.
This repo is configured to be built with Docker, and Docker compose. To build all apps in this repo:
# Start prod in detached mode
docker-compose up -d
Wait about 10 seconds until MySQL setup all the connections then open http://localhost:3000.
To stop all running containers:
docker-compose stop
To stop and remove the containers:
docker-compose down
# 1. Create only the DB with docker compose
docker-compose -f ./docker-compose-db.yml up
# 2. Run the web and API with turbo
turbo dev
This Turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting