Skip to content

itou-rui/turborepo-starter

Repository files navigation

Welcome to the Turborepo Starter!

This project serves as a boilerplate for efficiently developing applications using Turborepo, equipped with various best practices and carefully selected configurations.

Contents

Branches

  • main: A stable branch equipped with minimal features.

  • with-cloudrun: A branch integrated with features to deploy applications on Google Cloud.

  • with-cloudrun-proxy: A branch equipped with a foundation for a full-stack application where apps/web and apps/api are reverse-proxied.

  • with-cloudrun-proxy-and-discordbot: DiscordAuth and DiscordBot are integrated into apps/api built on with-cloudrun-proxy.

Getting Started

  1. Clone the repository
git clone https://github.com/itou-rui/turborepo-starter.git

To clone a specific branch, use:

git clone -b with-cloudrun https://github.com/itou-rui/turborepo-starter.git
  1. Install Dependencies
yarn install
  1. Run Project
nps dev

For other available commands, please refer to here.

Internal Packages

This repository contains several internal packages tailored for specific purposes:

Package name Description
tsconfig Shared TypeScript configurations.
eslint Linting configurations for various frameworks.
prettier Formatting rules for consistent code style.
jest Testing configurations for unit and integration tests.
ui Common UI package.
types Common types package.
constants Common constants package.

These packages can be added as dependencies in apps/** and packages/** to utilize them.

Commit Rules

Settings to ensure clarity and traceability of commit messages have already been incorporated. For detailed rules, please check here.

Branch Strategy

By operating branches based on the rules outlined here, you can enjoy the following benefits:

  • Labels are automatically added to Pull Requests.
  • Contents are automatically appended to release notes.

Sync Labels

A workflow has been prepared to automatically synchronize the contents defined in .github/labels.yml.

For more details, please refer to here.

Releases

When merged into the main branch, a convenient workflow automatically creates (updates) release notes in Draft state.

For details, please check here.