Your Docusaurus site did not load properly.

A very common reason is a wrong site baseUrl configuration.

Current configured baseUrl = / (default value)

We suggest trying baseUrl =


TypeScript toolkit for building end-to-end type-safe APIs

Server/client example
The client above is not importing any code from the server, only it's type declarations.
Import type only imports declarations to be used for type annotations and declarations. It always gets fully erased, so there’s no remnant of it at runtime.

Get Started


🧙‍♂️  Automatic type-safety

Automatic type-safety & autocompletion inferred from your API-paths, their input data, & outputs.

🍃  Light & Snappy DX

No code generation, run-time bloat, or build pipeline. Zero dependencies & a tiny client-side footprint.

🐻  Add to existing brownfield project

Easy to add to your existing brownfield project with adapters for Connect/Express/Next.js.

  1. @trpc/client depends on some babel runtime helpers + that a fetch() polyfill/ponyfill is used if the browser doesn't support it. @trpc/react is built on top of react-query.