Early ruminations on monorepo life


A while back, as part of some broader refactoring, I moved all of the Elttob Suite products into a single repository. Here’s my setup and how it’s working for me so far.

The setup

I have three top-level directories:

I assemble each package directly in Rojo, explicitly pulling in only the required dependencies.

"Elttob Reclass": {
  "$className": "Folder",
  "CODE IS COPYRIGHTED": {
    "$path": "Licenses/PluginCopyright.lua"
  },
  "Reclass": {
    "$path": "Products/Reclass"
  },
  "Synchro": {
    "$path": "Libraries/Synchro"
  },
  "SharedToolbar": {
    "$path": "Libraries/SharedToolbar"
  }
}

The benefits

I’ve been working this way for a while now. I’ve noticed a few great benefits of this:

I think it was absolutely the right choice for the sort of codebase I’m building. It doesn’t introduce more technology than it needs to, and it has low mental overhead. It’s boring and it works.


Posted on