Skip to content

Rush & Typescript monorepo starter template with recommended standards & solutions integrated.

Notifications You must be signed in to change notification settings

akistack/monorepo-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍁 @akistack Monorepo Starter

Welcome to the Rush monorepo template provided by @akistack. This template helps you create a new monorepo that integrates our recommended standards and solutions with less effort.

Prerequisites

Before you start, ensure you have the following tools installed and configured:

  • Git
  • Node.js (>= 22 LTS, We recommend using fnm to manage Node.js versions)
  • Rush.js (Install: npm i -g @microsoft/rush)

Getting Started

Creating a New Monorepo from Template

  1. Create a new repository in GitHub (or other codebase services): https://github.com/new

  2. Clone this repo:

git clone git@github.com:akistack/monorepo-starter.git my-project --depth 1
cd my-project
  1. Install dependencies:
rush update
  1. Run akimo monorepo initialization wizard:
rush akimo

Select init, then follow the prompt to initialize the repo.

  1. Commit and push:
git add -A
git commit -m "feat(all): initialize monorepo from template"
git push -u origin main

Initializing a New Project

Run rush init-project and select a template. Then fill the form with package name, author, project path, etc.

After completion, run rush update to install dependencies and update the shrinkwrap file.

Project Structure

├── apps                # Applications (L4)
│   ├── server
│   └── web
├── common              # Rush infra directory
│   ├── _templates      # Template for init-project
│   ├── autoinstallers  # CLI & Rush plugins
│   ├── config          # Detailed configurations for Rush / PNPM
│   ├── git-hooks
│   ├── scripts
├── docs                # Documents
├── packages            # Shared packages
│   ├── business        # Business modules / features (L3)
│   ├── domain          # Domain packages (L2)
│   ├── infra           # Infra packages (L0 / L1)
│   └── libs            # Components / libs (L1)
└── rush.json           # Global Rush configuration

Recommended Stack

This monorepo comes with our recommended stack. We aim to keep the technical stack consistent across the repo. See the table below:

Area Recommended Framework / Library
Language TypeScript-first
UI Framework React
Styling CSS Modules and Tailwind CSS
Routing Tanstack Router
Package Manager PNPM
Monorepo Tool Rush.js
Bundler Rstack (Rsbuild / Rspack)
Library Build Rslib
Lint Biome
Unit Testing Vitest
Component Testing Testing Library
E2E Testing Playwright

Conventions

Target Specification
Source-Control Branching Model Follow Trunk Based Development
Branch Follow Conventional Branch Specification
Commit Follows Conventional Commits Specification

Support

Feel free to open an issue in akistack/monorepo-starter for help and feedback.

About

Rush & Typescript monorepo starter template with recommended standards & solutions integrated.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors