Skip to content
tRPC

Partners

Next.js Integration

On this page

tRPC + Next.js

Next.js makes it easy to build a client and server together in one codebase. tRPC makes it easy to share types between them, ensuring typesafety for your application's data fetching.

tRPC provides first-class support for both the App Router and the Pages Router. Choose the guide that matches your project:

App Router

The recommended approach for new Next.js projects. Uses React Server Components, the fetch adapter, and @trpc/tanstack-react-query.

Key features:

  • Server Components - Prefetch data on the server and stream it to the client
  • Streaming - Leverage Next.js streaming for optimal loading performance
  • Suspense - Use useSuspenseQuery with Suspense boundaries for loading states

Get started with App Router →

Pages Router

Uses the Next.js adapter for the API, and the same client as the App Router: @trpc/tanstack-react-query.

Key features:

  • Server-side rendering - Prefetch a page's queries in getServerSideProps and render them into the first HTML. Read more about SSR.
  • Static site generation - Prefetch queries in getStaticProps and generate static HTML files. Read more about SSG.

Get started with Pages Router →

Choosing between App Router and Pages Router

App RouterPages Router
Recommended forNew projectsExisting Pages Router projects
Data fetchingServer Components, prefetchQueryprefetchQuery in getServerSideProps or getStaticProps
Server adapterFetch adapterNext.js adapter
Client package@trpc/tanstack-react-query@trpc/tanstack-react-query
Provider setupTRPCProvider in the root layoutTRPCProvider and HydrationBoundary in _app

Pages under Next.js Integration