A Turborepo template based on Turborepo Docker starter and Turborepo Tailwind Starter.
This turborepo uses Yarn as a package manager. It includes the following packages/apps:
web
: a Next.js appapi
: an Express serverui
: ui: a React component libraryeslint-config-custom
:eslint
configurations for client side applications (includeseslint-config-next
andeslint-config-prettier
)eslint-config-custom-server
:eslint
configurations for server side applications (includeseslint-config-next
andeslint-config-prettier
)tailwind-config
: tailwind-config.js and prettier-tailwind-pluginscripts
: Jest configurationslogger
: Isomorphic logger (a small wrapper around console.log)tsconfig
: tsconfig.json;s used throughout the monorepo
Each package/app is 100% TypeScript.
Run the following command:
npx degit https://github.com/stratolark/turborepo-api-next turborepo-api-next
cd turborepo-api-next
git init .
git add .
git commit -m "Init"
yarn install
yarn dev or yarn build
This repo is configured to be built with Docker, and Docker compose. To build all apps in this repo:
# Create a network, which allows containers to communicate
# with each other, by using their container name as a hostname
docker network create app_network
# Build prod using new BuildKit engine
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.yml build --parallel
# Start prod in detached mode
docker-compose -f docker-compose.yml up -d
Open https://localhost:3000.
To shutdown all running containers:
# Stop all running containers
docker kill $(docker ps -q) && docker rm $(docker ps -a -q)
This Turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Jest test runner for all things JavaScript
- Prettier for code formatting
- Tailwind CSS for css utilities