www/versioned_docs/version-9.x/main/introduction.mdx
</a> <a href="https://github.com/trpc/trpc">
</a> <a href="https://github.com/trpc/trpc">
</a>
As TypeScript and static typing increasingly becomes a best practice in web programming, the API presents a major pain point. We need better ways to statically type our API endpoints and share those types between our client and server (or server-to-server). We set out to build a simple library for building typesafe APIs that leverages the full power of modern TypeScript. Introducing tRPC!
Currently GraphQL is the dominant way to implement typesafe APIs in TypeScript (and it's amazing!). Since GraphQL is designed as a language-agnostic specification for implementing APIs, it doesn't take full advantage of the power of a language like TypeScript - further reading.
If your project is built with full-stack TypeScript, you can share types directly between your client and server, without relying on code generation.