mausic/turborepo-next-nest-boilerplate
The turborepo boilerplate with Next.js, Nest.js, Clerk, Redis and other
Tubrorepo Boilerplate with Next.js, Nest.js, Clerk, Redis, etc
THIS IS A WORK IN PROGRESS!
Use it at your own risk
Using this boilerplate
The philosophy of this repo is "Fork you!":
- Fork the repo
- Do whatever you want
- ...
- PROFIT!!!
What's inside?
This Turborepo includes the following packages/apps:
Apps and Packages
web: a Next.js app with a Tailwind v4 and basic shadcn/ui dashboard layout and Clerk authentication [WIP]apia Nest.js app with a basic setup (clerk auth, redis caching, swagger docs) [WIP]@repo/ui: a stub React component library shared by bothwebanddocsapplications [WIP]@repo/eslint-config:eslintconfigurations (includeseslint-config-nextandeslint-config-prettier)@repo/typescript-config:tsconfig.jsons used throughout the monorepo@repo/db: a Prisma ORM database as a package that may be used in apps@repo/redisa Redis in-memory storage docker setup
Each package/app is 100% TypeScript.
Utilities
This Turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- Commitlint for checking the commit messages
- Lint-staged for checking the code you are commiting
Turbo
This repo is fully configured with turbo. It means that running turbo dev will preconfigure all necessary development services (docker containers including) and afterwards will start all the apps.
Build
To build all apps and packages, run the following command:
cd my-turborepo
pnpm build
Develop
To develop all apps and packages, run the following command:
cd my-turborepo
pnpm dev
Remote Caching
Tip
Vercel Remote Cache is free for all plans. Get started today at vercel.com.
Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:
cd my-turborepo
npx turbo login
This will authenticate the Turborepo CLI with your Vercel account.
Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo:
npx turbo link
Contribution
I don't really believe that somebody will ever find this repo and will decide to contribute, but you do -> please make a PR
Useful Links
Learn more about the power of Turborepo:
Roadmap
API
- implement throttling
- imlpement microservices via NATS
WEB
- implement onboarding flow
- implement organizations module from Clerk
UI
- implement shadcn/ui package
DOCS
- implement docs web app (via mintlify probably?)
Realeases
- imlpement web app with releases or a notifications module?