# tRPC v11 > End-to-end typesafe APIs for TypeScript. Write procedures on the server, call them from the client with their types, and serve them on any runtime. Every page is also markdown: add `.md` to its URL, or request it with `Accept: text/markdown`. - For v10: https://trpc.io/llms-v10.txt - For v9: https://trpc.io/llms-v9.txt ## tRPC - [tRPC](https://trpc.io/docs/introduction.md) - [Quickstart](https://trpc.io/docs/quickstart.md): Learn how to quickly get started and setup tRPC - [Agent Skills](https://trpc.io/docs/skills.md): Set up and use TanStack Intent to provide AI agent skills for tRPC - [Concepts](https://trpc.io/docs/concepts.md) - [Videos and Community Resources](https://trpc.io/docs/videos-and-community-resources.md) - [Example Apps](https://trpc.io/docs/example-apps.md): Example apps built with tRPC ## Backend Usage - [Backend Usage](https://trpc.io/docs/server/overview.md) - [Define Routers](https://trpc.io/docs/server/routers.md) - [Define Procedures](https://trpc.io/docs/server/procedures.md) - [Context](https://trpc.io/docs/server/context.md) - [Input & Output Validators](https://trpc.io/docs/server/validators.md) - [Middlewares](https://trpc.io/docs/server/middlewares.md) - [Merging Routers](https://trpc.io/docs/server/merging-routers.md) - [Overview](https://trpc.io/docs/server/adapters.md) - [Standalone Adapter](https://trpc.io/docs/server/adapters/standalone.md) - [Express Adapter](https://trpc.io/docs/server/adapters/express.md) - [Fastify Adapter](https://trpc.io/docs/server/adapters/fastify.md) - [Next.js Adapter](https://trpc.io/docs/server/adapters/nextjs.md): Serve tRPC from a Next.js API route with createNextApiHandler, or from an App Router route handler with fetchRequestHandler - [AWS Lambda + API Gateway Adapter](https://trpc.io/docs/server/adapters/aws-lambda.md) - [Fetch / Edge Runtimes Adapter](https://trpc.io/docs/server/adapters/fetch.md) - [Server Side Calls](https://trpc.io/docs/server/server-side-calls.md) - [Authorization](https://trpc.io/docs/server/authorization.md) - [Error Handling](https://trpc.io/docs/server/error-handling.md) - [Error Formatting](https://trpc.io/docs/server/error-formatting.md) - [Data Transformers](https://trpc.io/docs/server/data-transformers.md) - [Content Types](https://trpc.io/docs/server/non-json-content-types.md) - [Metadata](https://trpc.io/docs/server/metadata.md) - [Response Caching](https://trpc.io/docs/server/caching.md) - [Subscriptions](https://trpc.io/docs/server/subscriptions.md) - [WebSockets](https://trpc.io/docs/server/websockets.md) - [Service-Oriented Architecture](https://trpc.io/docs/server/service-oriented-architecture.md) ## Client Usage - [Client Overview](https://trpc.io/docs/client.md) - [Links Overview](https://trpc.io/docs/client/links.md) - [HTTP Link](https://trpc.io/docs/client/links/httpLink.md): A terminating link that sends each tRPC call as its own HTTP request - [HTTP Batch Link](https://trpc.io/docs/client/links/httpBatchLink.md): A terminating link that batches concurrent tRPC calls into a single HTTP request - [HTTP Batch Stream Link](https://trpc.io/docs/client/links/httpBatchStreamLink.md): A terminating link that batches tRPC calls and streams each response as soon as it is ready - [HTTP Subscription Link](https://trpc.io/docs/client/links/httpSubscriptionLink.md): A terminating link for subscriptions over Server-sent Events - [Local Link](https://trpc.io/docs/client/links/localLink.md): A link for direct procedure calls without HTTP overhead - [WebSocket Link](https://trpc.io/docs/client/links/wsLink.md): A terminating link that sends tRPC operations over a WebSocket - [Split Link](https://trpc.io/docs/client/links/splitLink.md): A link that routes each operation down one of two link chains based on a condition - [Logger Link](https://trpc.io/docs/client/links/loggerLink.md): A link that logs tRPC operations and their results - [Retry Link](https://trpc.io/docs/client/links/retryLink.md): A link that retries failed operations - [Headers](https://trpc.io/docs/client/headers.md) - [Send cookies cross-origin](https://trpc.io/docs/client/cors.md) - [tRPC Client](https://trpc.io/docs/client/vanilla.md) - [Set up a tRPC Client](https://trpc.io/docs/client/vanilla/setup.md) - [Inferring Types](https://trpc.io/docs/client/vanilla/infer-types.md) - [Error Handling](https://trpc.io/docs/client/vanilla/error-handling.md) - [Aborting Procedure Calls](https://trpc.io/docs/client/vanilla/aborting-procedure-calls.md) - [TanStack React Query](https://trpc.io/docs/client/tanstack-react-query.md): TanStack React Query integration for tRPC - [TanStack React Query](https://trpc.io/docs/client/tanstack-react-query/setup.md): Set up the TanStack React Query integration with or without React context, then query, mutate and invalidate - [TanStack React Query](https://trpc.io/docs/client/tanstack-react-query/usage.md): The options and key factories on the trpc proxy, such as queryOptions, infiniteQueryOptions, mutationOptions, subscriptionOptions, queryKey, queryFilter and pathFilter, plus key prefixing and type inference - [Migrating from the classic React Client](https://trpc.io/docs/client/tanstack-react-query/migrating.md): Migrating from the classic React Client - [Set up with React Server Components](https://trpc.io/docs/client/tanstack-react-query/server-components.md): Prefetch tRPC queries in React Server Components, hydrate them into client components, and call procedures directly on the server - [Set up with TanStack Start](https://trpc.io/docs/client/tanstack-react-query/tanstack-start.md) - [Prefetching with handles](https://trpc.io/docs/client/tanstack-react-query/handles.md) - [React Query Integration (Classic, deprecated)](https://trpc.io/docs/client/react.md): The classic React Query integration, which only gets bug fixes and will be removed in the next major version of tRPC - [Set up the React Query Integration](https://trpc.io/docs/client/react/setup.md): How to use and setup tRPC in React - [Set up with React Server Components](https://trpc.io/docs/client/react/server-components.md) - [Inferring Types](https://trpc.io/docs/client/react/infer-types.md) - [useQuery()](https://trpc.io/docs/client/react/useQuery.md): Fetch data with the classic trpc.procedure.useQuery() hook, its tRPC-specific options and streaming - [useMutation()](https://trpc.io/docs/client/react/useMutation.md): Call mutations with the classic trpc.procedure.useMutation() hook - [useInfiniteQuery()](https://trpc.io/docs/client/react/useInfiniteQuery.md) - [useSubscription()](https://trpc.io/docs/client/react/useSubscription.md) - [useUtils](https://trpc.io/docs/client/react/useUtils.md): Invalidate, refetch, prefetch and update cached query data with the classic trpc.useUtils() helpers - [createTRPCQueryUtils](https://trpc.io/docs/client/react/createTRPCQueryUtils.md) - [useQueries()](https://trpc.io/docs/client/react/useQueries.md) - [Suspense](https://trpc.io/docs/client/react/suspense.md) - [getQueryKey](https://trpc.io/docs/client/react/getQueryKey.md) - [Aborting Procedure Calls](https://trpc.io/docs/client/react/aborting-procedure-calls.md) - [Disabling Queries](https://trpc.io/docs/client/react/disabling-queries.md) - [Next.js Integration](https://trpc.io/docs/client/nextjs.md) - [Set up with Next.js App Router](https://trpc.io/docs/client/nextjs/app-router-setup.md) - [Server Actions](https://trpc.io/docs/client/nextjs/server-actions.md): Define Next.js Server Actions as tRPC procedures with experimental_caller, so they get input validation, middlewares and metadata - [Set up with Next.js Pages Router](https://trpc.io/docs/client/nextjs/pages-router/setup.md) - [Server-Side Rendering](https://trpc.io/docs/client/nextjs/pages-router/ssr.md): Prefetch a page's tRPC queries in getServerSideProps with createTRPCOptionsProxy, build the context from the request, and set the status and cache headers - [Static Site Generation](https://trpc.io/docs/client/nextjs/pages-router/ssg.md): Prefetch tRPC queries in getStaticProps with createTRPCOptionsProxy and dehydrate, and stop the client from refetching them - [Server-Side Helpers](https://trpc.io/docs/client/nextjs/pages-router/server-side-helpers.md): Prefetch or fetch tRPC queries in getServerSideProps and getStaticProps with createTRPCOptionsProxy and a query client, then pass them to the page as trpcState - [Aborting Procedure Calls](https://trpc.io/docs/client/nextjs/pages-router/aborting-procedure-calls.md): Cancel in-flight requests when a component unmounts with the abortOnUnmount option on a query - [Starter Projects](https://trpc.io/docs/client/nextjs/starter-projects.md) - [OpenAPI (alpha)](https://trpc.io/docs/openapi.md) ## Community - [Awesome tRPC Collection](https://trpc.io/docs/community/awesome-trpc.md) - [Contributing](https://trpc.io/docs/community/contributing.md) - [Testimonials / Love](https://trpc.io/docs/community/love.md) - [Sponsors](https://trpc.io/docs/community/sponsors.md) ## Extra information - [FAQ / Troubleshooting](https://trpc.io/docs/faq.md) - [HTTP RPC Specification](https://trpc.io/docs/rpc.md) - [Further Reading](https://trpc.io/docs/further-reading.md) - [Migrate from v10 to v11](https://trpc.io/docs/migrate-from-v10-to-v11.md) ## Optional - [Full documentation](https://trpc.io/llms-full.txt): every page above in one file