/monorepo-starter

A monorepo starter template for apps that need to manage multiple related packages in a standardized and efficient way.

Primary LanguageTypeScript

Header

Monorepo starter template

Host multiple applications with automated independent package versioning using conventional commits and native NPM workspace.

💥 Features

  • 📦 Native NPM Workspaces
  • ✨ Host Multiple Apps, Component Libraries, API's
  • 🏷️ Auto generate github releases and tags with descriptions
  • 📝 Auto updates CHANGELOG.md files for each package
  • ⛓️ Automatically updates the version of dependencies in the package.json file generated by the releases and tags versions
  • 🚚 CI running Test coverage and Release workflow

🚀 Start

In the root folder run following commands:

  docker-compose up -d

Running at http://0.0.0.0:5173/

or

  1. Install dependencies
  npm i
  1. Run your project
  npm run start

Also, you could use

  # npm start -w appName  # Run build and watch for changes for specific package
  npm start -w web

⚠️ Requirements

  • Node >= v18.12.1
  • NPM >= 8.19.2
  • Each new package should have at least:
  "name": "@your-project",
  "private": true,
  "version": "0.0.1",

You can also could create a new workflow to release npm libraries

You need to add a new variable secrets GH_TOKEN in your github repository. This is required so that Semantic Release can publish a new release to the Github repository.

📦 Adding a new app

Do the same thing that you are used to. e.g.

1 . Go to packages/ folder

2 . Run

  npm create vite@latest
  # or
  yarn create next-app

🌐 Demo

Spotifood

Find movies