Here is good answer from Reddit (Angular2+ community). It’s from a developer who tested both and switched to NGXS.
I would like to share my experience. We have a medium-large enterprise
app. We started with NGRX, but it quickly became clear thatNGRX code is much difficult to understand and write to teammates.
NGRX is boilerplate hell. You spend lot of time with it.
The concept of “Effects” is good, but it just adds extra layers of
complexity which could be simplified.Developer Experience (DX) was horrifying.
Then we switched to NGXS.
It has minimum boilerplate. You jump right into “action” :D.
We were delighted by its DX.
It is much easier to understand for teammates and everybody was
suddenly productive.There are some tradeoffs like server calls are in reducers, but it
made sense to use after a while.PLUGINS! There are loads of plugins from logging to forms handling
(Awesome thing ever).