You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is meant as constructive criticism because I like NX, but I decided after some experimentation that it wasn't worth the trouble to use generators. The idea is great in theory, but in practice it is a nightmare trying to get configurations to live with each other and have consistency. I found there are many issues. Here are just a few examples:
Proprietary custom configurations of build tools tend to be more complex than than just doing it yourself. Learning the "nx way" can be as hard as learning the ins-and outs of the tools if you're doing anything of much complexity.
It's not easy to be consistent with build tools across packages. For example, NX really wants to use babel and webpack (or at least up until I last checked), Some generators allow you to choose for example SWC, but others (even where it should be appropriate) don't.
Some generators let you choose vitest as a test runner, others don't. Only solution I found is to know which don't and initially chose none for test runner. Then add it later in a separate step. Fine, but just like the above I forget which are like this every time.
Generators want to add e2e testing by default in sibling folders. I found that it's possible to add Playwright to the project root in a later step, but only after removing the unwanted version first. Perhaps the cli now has this option, but I know when I use the Jetbrains plugin there seems to be a bug that even when I say "none" to e2e test runner, it gets created anyway (as a sibling).
Have to know which generators to install. The naming doesn't make it easy to know which are needed
Have to wait on NX for 3rd party updates
I still really like NX both as a build cache manager and it's ex-lerna publishing features. Ultimately, we all may get replaced by AI. But in the meantime, I wonder if there's anything NX could do to allow LLMs to better leverage it as a base to scaffold things, but without generators. Granted as things stand, if you tell the LLM to work with NX that way (it may not listen but I digress), the situation is not much different to using plain n/pnpm workspaces. Perhaps the answer will be more specifically trained models that are better at scaffolding projects with all of the various tools. While I imagine model training is probably out of scope for the NX project, I wonder if there's anything that could be added or reviewed to help LLMs utilize NX better.
I don't have a lot of specific ideas here, just musing at the moment! But for now, just a simple low hanging fruit could be to let the create-nx-workspace cli command use a non-empty folder (with warning). I notice when I forget that I need an empty folder, llms (for example Claude Sonnet in Cursor) will try and fail to run that command but then proceed (without user input) to attempt to manually create the files. Unfortunately at least in my experience, it's never successful and I end up deleting everything and starting over in the terminal doing it myself.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
This is meant as constructive criticism because I like NX, but I decided after some experimentation that it wasn't worth the trouble to use generators. The idea is great in theory, but in practice it is a nightmare trying to get configurations to live with each other and have consistency. I found there are many issues. Here are just a few examples:
I still really like NX both as a build cache manager and it's ex-lerna publishing features. Ultimately, we all may get replaced by AI. But in the meantime, I wonder if there's anything NX could do to allow LLMs to better leverage it as a base to scaffold things, but without generators. Granted as things stand, if you tell the LLM to work with NX that way (it may not listen but I digress), the situation is not much different to using plain n/pnpm workspaces. Perhaps the answer will be more specifically trained models that are better at scaffolding projects with all of the various tools. While I imagine model training is probably out of scope for the NX project, I wonder if there's anything that could be added or reviewed to help LLMs utilize NX better.
I don't have a lot of specific ideas here, just musing at the moment! But for now, just a simple low hanging fruit could be to let the create-nx-workspace cli command use a non-empty folder (with warning). I notice when I forget that I need an empty folder, llms (for example Claude Sonnet in Cursor) will try and fail to run that command but then proceed (without user input) to attempt to manually create the files. Unfortunately at least in my experience, it's never successful and I end up deleting everything and starting over in the terminal doing it myself.
Beta Was this translation helpful? Give feedback.
All reactions