Monorepo is so frustrating...

This page summarizes the projects mentioned and recommended in the original post on /r/reactjs

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
  • nx

    Smart Monorepos ยท Fast CI

  • After a few longer moments of familiarizing myself with nx, I found a post that nx prefers "single privacy policy" (one package.json file) which is opinionated. I personally don't like the single package.json policy (maybe for my PoC it would be ok, but I can't imagine it for large applications) and I'm not the only one https://github.com/nrwl/nx/issues/1777 . Ok, so nx and pnpm are out. That's why I stay with good old yarn (yarn v1 of course), giving it a chance with workspaces.

  • yarnberry-expo-quickstarter

    Yarn 2 (berry) + React Native / Expo has never been so easy

  • Ok, I run the application - it doesn't work. I need to configure Expo with workspaces.... There is a special documentation for this -> https://docs.expo.dev/guides/monorepos/ , copy / paste step by step. I restart the application and... obviously does not work. Somewhere in the depths of the internet I found this https://github.com/jsamr/yarnberry-expo-quickstarter/blob/master/packages/expo-client/metro.config.js , I copy the metro.config.js configuration and luckily it works! Wow.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • react-native-monorepo-tools

    Tools and utils to support a React Native monorepo built with Yarn Workspaces

  • Second app with bare RN. Similar story. It doesn't work. I googled and found this https://github.com/mmazzarolo/react-native-monorepo-tools . But still doesn't work... I found some random example https://github.com/aws-samples/aws-sdk-js-tests/blob/main/packages/react-native/metro.config.js and wow it works. I skip the confusion with tsconfig.json, setting path etc.

  • aws-sdk-js-tests

    Code Sample for testing AWS SDK for JavaScript

  • Second app with bare RN. Similar story. It doesn't work. I googled and found this https://github.com/mmazzarolo/react-native-monorepo-tools . But still doesn't work... I found some random example https://github.com/aws-samples/aws-sdk-js-tests/blob/main/packages/react-native/metro.config.js and wow it works. I skip the confusion with tsconfig.json, setting path etc.

  • lerna

    :dragon: Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.

  • Ok, time to implement Lerna. As usual, it just can't work because there is another problem. Lerna does not support (or not 100%) Yarn 2/3 https://github.com/lerna/lerna/issues/2449 Ok, so pnpm, nx and lerna have already dropped out.

  • Next.js

    The React Framework

  • But I'm not giving up, and I'm looking at the biggest frontend projects for best practices for monorepo. For example, I browse the Next.js repo https://github.com/vercel/next.js/. I see the file pnpm-workspace.yaml so pnpm.... also there is a lerna.json and.... turbo.json, I'm starting to lose my mind and I stop searching something to manage monorepo with a tool for that. I only have yarn workspaces.

  • Release It! ๐Ÿš€

    ๐Ÿš€ Automate versioning and package publishing

  • Fine, but I need a package release tool and release-it tools looks good. I install, configure and on the last step - publishing - I find out that this lib does not support monorepo... https://github.com/release-it/release-it/issues/831 and the release-it-yarn-workspaces lib does not support the latest version of release-it https://github.com/rwjblue/release-it-yarn-workspaces/issues/68

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • workspaces

    A release-it plugin for publishing projects with workspaces (by release-it-plugins)

  • Fine, but I need a package release tool and release-it tools looks good. I install, configure and on the last step - publishing - I find out that this lib does not support monorepo... https://github.com/release-it/release-it/issues/831 and the release-it-yarn-workspaces lib does not support the latest version of release-it https://github.com/rwjblue/release-it-yarn-workspaces/issues/68

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Building a Local Development Environment: Running a Next.js Full-Stack App with PostgreSQL and Minio S3 Using Docker

    3 projects | dev.to | 6 Jan 2024
  • My first client, just got a question about which tech to use!

    3 projects | /r/nextjs | 6 Dec 2023
  • How to build and deploy a modern-day Next.js application

    6 projects | dev.to | 19 Jul 2023
  • Building Portfolio: Install Next.js and Tailwind with pnpm

    2 projects | dev.to | 10 Jul 2023
  • Why is setting up a new project with multiple technologies so difficult?

    6 projects | /r/webdev | 23 May 2023