
Description
Entry point for all tRPC skills. Decision tree routing by task: initTRPC.create(), t.router(), t.procedure, createTRPCClient, adapters, subscriptions, React Query, Next.js, links, middleware, validators, error handling, caching, FormData.
SKILL.md
tRPC -- Skill Router
Decision Tree
What are you trying to do?
Define a tRPC backend (server)
- Initialize tRPC, define routers, procedures, context, export AppRouter
-> Load skill:
server-setup - Add middleware (.use), auth guards, logging, base procedures
-> Load skill:
middlewares - Add input/output validation with Zod or other libraries
-> Load skill:
validators - Throw typed errors, format errors for clients, global error handling
-> Load skill:
error-handling - Call procedures from server code, write integration tests
-> Load skill:
server-side-calls - Set Cache-Control headers on query responses (CDN, browser caching)
-> Load skill:
caching - Accept FormData, File, Blob, or binary uploads in mutations
-> Load skill:
non-json-content-types - Set up real-time subscriptions (SSE or WebSocket)
-> Load skill:
subscriptions
Host the tRPC API (adapters)
- Node.js built-in HTTP server (simplest, local dev)
-> Load skill:
adapter-standalone - Express middleware
-> Load skill:
adapter-express - Fastify plugin
-> Load skill:
adapter-fastify - AWS Lambda (API Gateway v1/v2, Function URLs)
-> Load skill:
adapter-aws-lambda - Fetch API / Edge (Cloudflare Workers, Deno, Vercel Edge, Astro, Remix)
-> Load skill:
adapter-fetch
Consume the tRPC API (client)
- Create a vanilla TypeScript client, configure links, headers, types
-> Load skill:
client-setup - Configure link chain (batching, streaming, splitting, WebSocket, SSE)
-> Load skill:
links - Use SuperJSON transformer for Date, Map, Set, BigInt
-> Load skill:
superjson
Use tRPC with a framework
- React with TanStack Query (useQuery, useMutation, queryOptions)
-> Load skill:
react-query-setup - Next.js App Router (RSC, server components, HydrateClient)
-> Load skill:
nextjs-app-router - Next.js Pages Router (withTRPC, SSR, SSG helpers)
-> Load skill:
nextjs-pages-router
Advanced patterns
- Generate OpenAPI spec, REST client from tRPC router
-> Load skill:
openapi - Multi-service gateway, custom routing links, SOA
-> Load skill:
service-oriented-architecture - Auth middleware + client headers + subscription auth
-> Load skill:
auth
Quick Reference: Minimal Working App
// server/trpc.ts
import { initTRPC } from '@trpc/server';
const t = initTRPC.create();
export const router = t.router;
export const publicProcedure = t.procedure;
// server/appRouter.ts
import { z } from 'zod';
import { publicProcedure, router } from './trpc';
export const appRouter = router({
hello: publicProcedure
.input(z.object({ name: z.string() }))
.query(({ input }) => ({ greeting: `Hello ${input.name}` })),
});
export type AppRouter = typeof appRouter;
// server/index.ts
import { createHTTPServer } from '@trpc/server/adapters/standalone';
import { appRouter } from './appRouter';
const server = createHTTPServer({ router: appRouter });
server.listen(3000);
// client/index.ts
import { createTRPCClient, httpBatchLink } from '@trpc/client';
import type { AppRouter } from '../server/appRouter';
const trpc = createTRPCClient<AppRouter>({
links: [httpBatchLink({ url: 'http://localhost:3000' })],
});
const result = await trpc.hello.query({ name: 'World' });
See Also
server-setup-- full server initialization detailsclient-setup-- full client configurationadapter-standalone-- simplest adapter for getting startedreact-query-setup-- React integrationnextjs-app-router-- Next.js App Router integration
More skills from the trpc repository
View all 24 skillsadapter-aws-lambda
deploy tRPC APIs on AWS Lambda
Jul 18API DevelopmentAWSBackendtRPCadapter-express
mount tRPC as Express middleware
Jul 18API DevelopmentBackendExpresstRPCadapter-fastify
mount tRPC as a Fastify plugin
Jul 18API DevelopmentBackendFastifytRPCadapter-fetch
deploy tRPC on edge runtimes
Jul 18CloudflareDeploymentEdgetRPC +1adapter-standalone
mount tRPC on Node.js servers
Jul 18API DevelopmentBackendNode.jstRPCauth
implement authentication in tRPC applications
Jul 18AuthAuthenticationBackendtRPC
More from tRPC
View publishercaching
configure HTTP caching for tRPC queries
trpc
Jul 18BackendCachingPerformancetRPCclient-setup
set up vanilla tRPC clients
trpc
Jul 18API DevelopmentFrontendtRPCerror-handling
implement typed error handling in tRPC
trpc
Jul 18BackendDebuggingtRPCTypeScriptlinks
configure tRPC client link chains
trpc
Jul 18API DevelopmentFrontendtRPCmiddlewares
compose middleware for tRPC procedures
trpc
Jul 18BackendMiddlewaretRPCnextjs-app-router
implement tRPC in Next.js App Router
trpc
Jul 18BackendFrontendNext.jstRPC +1