Something I've wondered for awhile: why would I want to design with gRPC rather than well-defined HTTP/JSON endpoints? Is it just a perf thing?

Lets turn the question around: When should you prefer HTTP/JSON:

At the moment as long as you want to use the endpoint directly from a browser. gRPC uses some HTTP features that are not [yet] available from within browser JS APIs.

A gRPC->JSON proxy service is simple. I'd use gRPC inside my datacenter, and convert to JSON on the way in and out of the browser.

There's already a project that auto-generates a normal REST proxy from a gRPC definition: https://github.com/grpc-ecosystem/grpc-gateway