Closing Thought
The core value of Zod + tRPC in one line:
"Runtime validation (Zod) plus compile-time inference (tRPC) means a backend change immediately surfaces as a TypeScript error in the frontend."
This solves the root problem of "types are fine but runtime breaks" in REST + TypeScript stacks.
If you have external clients or non-TypeScript consumers, tRPC isn't the right tool. In that case, adding Zod for server-side validation in your existing REST setup already gets you most of the benefit.
For a full-stack TypeScript project where your team owns both sides? tRPC is worth a serious look.