This is fullstack typescript turborepo starter. It comes with the following features.
- ✅ Turborepo
- ✅ Nestjs
- ✅ Fastify
- ✅ Env Config with Validation
- ✅ NextJS
- ✅ React native powered by expo
- ✅ Shared UI components using react native web
- ✅ Shared data management using tanstack query
- ✅ Testing using Jest
- ✅ Github Actions
- ✅ Reverse Proxy using Nginx
- ✅ Docker Integration
- ✅ Postgres Database
This turborepo uses Yarn as a package manager. It includes the following packages/apps:
api
: a NestJS appnative
: an Expo powered React native appweb
: a Next.js appui
: a stub React native web component library shared by bothweb
andnative
config
:nginx
eslint-config-custom
: eslint configuration for webeslint-config-custom-server
: eslint configuration for nestjs apieslint-config-native
: eslint configuration for react native apptsconfig
:tsconfig.json
used throughout the monorepo
Each package/app is powered by TypeScript.
This turborepo has some additional tools already setup for you:
- Makefile for automation scripts
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- Husky and Commitizen as commit utilities
This starter kit is using turborepo and yarn workspaces for monorepo workflow.
- Install Gnu make (Only for windows)
choco install make
- Make sure docker and docker-compose are installed. Refer to docs for your operating system.
If you're running it for the first time, extract the environment variables using command below. Make sure you are at root of the project.
make extract.env
then just run
make prepare
To build all apps and packages, run the following command at the root of project:
make build
To develop all apps and packages, run the following command at the root of project:
make dev
The app should be running at http://localhost
with reverse proxy configured.
Similarly,
To develop only api and packages, run the following command at the root of project:
make dev.api
To develop mobile app, api and packages, run the following command at the root of project:
make dev.native
To develop web app, api and packages, run the following command at the root of project:
make dev.web
To commit, run the following command at the root of project:
yarn commit