Something worth considering with client side rendering, is the idea that the user may not be able to tell the difference between "still rendering" and "done", making me want that final "order of correctness" flow to have a branch for client side rendering that includes a "maybe?" in case there's a server connection somewhere that's slow or broken.
I'm sure I'm getting too pedantic because this post isn't about best practices for implementing it, and I'm currently bitter about a tool I have to use that does it poorly, having no difference between "fetching information" (aka, still rendering), "no information to fetch" (aka, done rendering), and "connection broken, please refresh" (aka, reboot the server, AGAIN).
When you say end-to-end encrypted, what are you referring to?
What's the intent for this tool that isn't solved via TLS?
Also, just as an aside, but this is kind of funny given the context: