In most cases, UI should be done client-side. However, I just encountered a scenario where I was placing ViewportFrames inside of a BillboardGui.
It turns out that Camera objects don’t replicate at all, which means that ViewportFrames created by the server can’t have a custom Camera object placed in it. This makes it impossible to use ViewportFrames created by the server.