40,788
stars
+0
1,726
forks
99
watchers
5,530
prs
1,376
issues
246
releases
944
discussions
README
tRPC
Move fast and break nothing.End-to-end typesafe APIs made easy.
The client above is not importing any code from the server, only its type declarations.
Intro
tRPC allows you to easily build & consume fully typesafe APIs without schemas or code generation.
Features
- ✅ Well-tested and production ready.
- 🧙♂️ Full static typesafety & autocompletion on the client, for inputs, outputs, and errors.
- 🐎 Snappy DX - No code generation, run-time bloat, or build pipeline.
- 🍃 Light - tRPC has zero deps and a tiny client-side footprint.
- 🐻 Easy to add to your existing brownfield project.
- 🔋 Batteries included - React.js/Next.js/Express.js/Fastify adapters. _(But tRPC is not tied to React, and there are many community adapters for other libraries)_
- 🥃 Subscriptions support.
- ⚡️ Request batching - requests made at the same time can be automatically combined into one
- 👀 Quite a few examples in the ./examples-folder
Quickstart
There are a few examples that you can use for playing out with tRPC or bootstrapping your new project. For example, if you want a Next.js app, you can use the full-stack Next.js example:
Quick start with a full-stack Next.js example:
sh
yarn
yarn create next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
npm
npx create-next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
pnpm
pnpm create next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
bun
bunx create-next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
deno
deno init --npm next-app --example https://github.com/trpc/trpc --example-path examples/next-prisma-starter trpc-prisma-starter
👉 See full documentation on tRPC.io. 👈
Star History
Core Team
Do you want to contribute? First, read the Contributing Guidelines before opening an issue or PR so you understand the branching strategy and local development environment. If you need any more guidance or want to ask more questions, feel free to write to us on Discord!
Project leads
The people who lead the API-design decisions and have the most active role in the development
Alex / KATT
Julius Marminge
Nick Lucas
Active contributors
People who actively help out improving the codebase by making PRs and reviewing code
Matthieu Hocquart
Special shout-outs
Individuals who have made exceptional contributions to tRPC through code, documentation, community building, and other valuable efforts
Theo Browne
Sachin Raja
Sponsors
If you enjoy working with tRPC and want to support us, consider giving a token appreTop issues
#3297feat: Support RSC & App Layouts62 comments · 2022-11-27#1963Add a way to access the `ctx` in the `input` parsers34 comments · 2022-06-07#1290👋 Who's using tRPC? 23 comments · 2021-11-19#3958docs: recommendations on how to handle "dependency injection"18 comments · 2023-03-09#6562bug: wslink keepalive timeout should close original connection11 comments · 2025-02-24#5004feat: publishing AppRouter without hassle10 comments · 2023-11-05#6978feat: Bind return type of a procedure to the input type of the `output` schema9 comments · 2025-10-18#6306feat: Better structural sharing in tanstack-query9 comments · 2024-12-10
Discussions
#7622You're really slow for the age of AI3 comments · 2026-10-01#7566A11yKit: End-to-End Type Safety Meets Web Accessibility (WCAG 2.2) Auditing for Full-Stack tRPC Apps0 comments · 2026-09-08#7528getMessageFromUnknownError test asserts against a local copy, not the live implementation2 comments · 2026-08-28#7463Idempotent tRPC mutations, deduped on the input0 comments · 2026-08-09#7456`eridu-tech` — the server-side infrastructure behind your tRPC procedures0 comments · 2026-08-04#7421Feedback request: AI PR descriptions for TypeScript API frameworks1 comments · 2026-06-27#7416I built a tRPC extension for versioning individual procedures (so stale clients stop breaking)0 comments · 2026-06-18#7414is loggerlink toggling via window localstorage a good design or cheap hack?4 comments · 2026-06-17
Latest release
v11.25.2 v11.25.2 2026-11-08@trpc/server Fixes fix(server): accept an empty POST body as undefined input by @1AbdullahButt in https://github.com/trpc/trpc/pull/7964 fix(server): guard subscriptions on closing websockets by @Tiscs in https://github.com/trpc/trpc/pull/7976 New Contributors @1AbdullahButt made their first contribution in https://github.com/trpc/trpc/pull/7964 @Tiscs made their first contribution in https://github.com/trpc/trpc/pull/7976 Full Changelog: https://github.com/trpc/trpc/compare/v11.25.1...v11.25.2