Solid stores are a great improvement over raw signals, but they still come with their own gotchas. First off, it's an entirely new syntax. You need to learn its documentation. You always have to use setStore, and it has a weird syntax like `setStore("users", 2, "loggedIn", false)` and even pushing items to an array is weird. In Gea it's just regular JavaScript: `this.users[2].loggedIn = false` or `this.users.push(...)`. MobX also comes with its own syntax.
In the end Gea is basically as simple as a plain old JavaScript class, made reactive by its compiler.
> You always have to use setStore
This is a design choice, and explained in their docs:
> You need to learn its documentation. You always have to use setStore, and it has a weird syntax like `setStore("users", 2, "loggedIn", false)` and even pushing items to an array is weird.It's optional, and incidentally quite expressive and powerful. But they also support mutable drafts out of the box.