The rule of thumb is that UI should always be handled by the Client, and if you need communication with the Server you can use Remotes.
You can use the Server for UI, but you need to be absolutely sure you understand the implications. An example of this would be iterating all the players to set the state of a UI instead of relying on a remote, as that would decrease the amount of connections and networking required. In that case, you’d have to be absolutely sure your code can handle edge cases like the Player not being completely loaded in, the player leaving, or that UI not existing in their PlayerGui at that time. It’s really a big headache for almost no gain.

