Skip to content
Pinter Computing

Knowledge Base for IT Professionals, Teachers, and Astronauts

Pinter Computing

Knowledge Base for IT Professionals, Teachers, and Astronauts

  • Home
  • Programming
  • DevOps
  • Project Management
  • Software and Hardware
  • Miscellaneous
  • Egyebek
  • About
  • Experience
  • Education
  • Contact
  • Home
  • Programming
  • DevOps
  • Project Management
  • Software and Hardware
  • Miscellaneous
  • Egyebek
  • About
  • Experience
  • Education
  • Contact
Close

Search

Home/Knowledge Base/Creating a mono repo for multiple applications
Knowledge Base

Creating a mono repo for multiple applications

By Laszlo Pinter
December 11, 2025 2 Min Read
0

If you are planning to develop multiple applications working together, using the same technology, it is advantageous to place all of them in the same Git repository. This way you can use relative paths to refer to shared functions to access the same database, React components, and images to make the pages look consistent. As all are in the same repository, the CI/CD pipeline will also find those during application building and testing.

If you use Node.js packages, use PNPM for package management to rationalize the node modules and store them in the top level node_modules directory and use symbolic links to point to those from other locations. See Install pnpm.

To set up the mono repo for multiple Node.js applications

Create the directory structure

Create the root directory of the repository and the apps and packages subdirectories.

mkdir -p MY_APP_SUITE
cd MY_APP_SUITE
mkdir -p apps
mkdir -p packages

Add configuration files to the root directory

.gitignore

This is the minimum you should have for any Node.js project to exclude secrets and libraries

.DS_Store
.env
/node_modules/

# React Router
/.react-router/
/build/

package.json

Set the versions of node and pnpm in the file below and save it in the root of the repository

{
  "name": "MY_APP_SUITE_NAME",
  "version": "1.0.0",
  "private": true,
  "description": "MY DESCRIPTION",
  "main": "index.js",
  "scripts": {
  },
  "keywords": [],
  "author": "MY NAME",
  "dependencies": {
  },
  "devDependencies": {
  },
  "config": {
  },
  "engines": {
    "node": ">=24.11.0",
    "pnpm": ">=10.15.1"
  },
  "packageManager": "pnpm@10.15.1"
}

pnpm-workspace.yaml

This file tells PNPM where the applications and shared packages will be to be able to reuse node-packages.
** tells PNPM to search for package.json files recursively.

packages:
  - "apps/**"
  - "packages/**"

Add the applications

If you already have existing applications, copy their directory structures into the apps directory and delete the node_modules directories. PNPM will recreate those and create symbolic links to point to the top level node_modules directory.

To create a new React Router web application, open a terminal in the apps directory and follow the instructions at Creating a new React Router application.

As we use PNPM to rationalize the node modules for all applications, do not install the node modules in the individual application directories. Once the application structure been created open a terminal in the root of the mono repo and execute

pnpm install

Based on the packages list in the pnpm-workspace.yaml file, PNPM will install all necessary node modules for all applications and packages in the entire workspace, which is the current mono repo.

Author

Laszlo Pinter

Follow Me
Other Articles
Previous

Download a Figma Make to your local computer and run it locally as an application

Next

Set the owner of directories and files recursively

No Comment! Be the first one.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

Last Changes

  • DevOps Engineering part 1. (Mac) - Make your Macintosh easier to use June 25, 2026
  • Japan travel tips June 22, 2026
  • How to stop the rain and snow in Cities: Skylines II June 20, 2026
  • Cities: Skylines II Developer Mode June 20, 2026
  • 'CSII_MANAGEDPATH' has incorrect path(s) when building Cities: Skylines II mod June 20, 2026

Tags

.NET .NETcore 3Dprinting ASP.NET Core AutodeskInventor AWS C# Chef cloud DevOps Docker EntityFramework Games Git Go iOS iPad iPhone iPod Java Kubernetes Linux MacOSX MSSQL MVC Node.js Packer PowerShell Python RDS RightScale Ruby security Splunk TeamCity Terraform TestKitchen Tomcat Ubuntu Vagrant VirtualBox VisualStudio Windows WordPress Xcode

Recent Comments

  • Zengei László on MyHeritage családfa exportálása és küldése emailben
  • Raúl Castillo on DynDns update error
  • MICHAEL on Windows Media Player 12 cannot find the album information
  • Nargis on Configure Epson ET-3850 scanning on Windows 11
  • Venczelné Zemen Erika on Delta S2302 termosztát programozása

–

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Copyright 2026 — Pinter Computing. All rights reserved.