Open-Source Scheduling Platform
Complete scheduling infrastructure with availability calculations, booking workflows, team management, and integrations—all built on tRPC with comprehensive type safety across hundreds of endpoints.
Gaming Infrastructure Platform
Real-time gaming services handling tournament brackets, leaderboards, and game state synchronization with tRPC subscriptions and high-performance data fetching.
Full-Stack TypeScript Monorepo
Reference architecture for building production tRPC applications with Next.js, Expo, and shared type-safe packages across web and mobile platforms.
Link Management Platform
High-performance link shortening with analytics, team workspaces, and API key management built on tRPC with Prisma for the data layer.
What tRPC Developers Actually Build
Before writing your job description, understand what tRPC work looks like in production applications:
Scheduling & Productivity Tools
Cal.com (open-source Calendly alternative) uses tRPC for their entire API layer:
- Availability calculations with complex business logic
- Booking workflows with real-time validation
- Team management with role-based permissions
- Integration APIs for connected calendars and apps
- Webhook delivery and event handling
Their tRPC routers handle everything from simple CRUD to complex multi-step workflows—all with end-to-end type safety.
Gaming & Real-Time Applications
Ping.gg (gaming infrastructure platform) leverages tRPC for:
- Real-time game state synchronization
- User authentication and session management
- Leaderboard and statistics APIs
- Tournament bracket management
- Payment and subscription handling
The T3 Stack Ecosystem
The T3 Stack (Next.js + tRPC + Prisma + Tailwind) has become the go-to starting point for TypeScript full-stack applications. tRPC developers often work on:
- SaaS applications with subscription billing
- Internal tools and admin dashboards
- Developer tools and CLI companions
- Content management systems
- E-commerce platforms
Startups & MVPs
tRPC is particularly popular for:
- Rapid prototyping where type safety catches bugs early
- Small teams where frontend and backend developers overlap
- Projects prioritizing developer experience over multi-platform support
- Applications where iteration speed matters more than supporting non-TypeScript clients
tRPC vs REST vs GraphQL: Understanding the Trade-offs
When evaluating candidates, understanding how tRPC fits in the API landscape helps you assess their architectural thinking.
The Type Safety Spectrum
| Aspect | tRPC | REST | GraphQL |
|---|---|---|---|
| Type Safety | Automatic inference | Manual (OpenAPI optional) | Generated from schema |
| Client Languages | TypeScript only | Any language | Any language |
| Schema Definition | None required | OpenAPI/Swagger optional | SDL required |
| Code Generation | None | Optional (OpenAPI codegen) | Required (codegen) |
| Learning Curve | Low (if you know TS) | Low | Moderate |
| Tooling Maturity | Growing | Excellent | Excellent |
| Multi-Client Support | Poor | Excellent | Excellent |
| Batch Requests | Built-in | Custom implementation | Built-in |
When tRPC Excels
- TypeScript monorepos: Same language on frontend and backend
- Rapid development: No schema files to maintain, instant type updates
- Small teams: Everyone can work across the stack
- Internal tools: No need for multi-platform API support
- Next.js applications: First-class integration with App Router and Pages Router
When REST or GraphQL Might Be Better
- Mobile apps: Native iOS/Android need OpenAPI or GraphQL clients
- Third-party API consumers: External developers need documented contracts
- Microservices: Cross-service communication may use different languages
- Large frontend teams: GraphQL's schema provides clear contracts
- Public APIs: Documentation and SDK generation favor OpenAPI/GraphQL
The Key Interview Question
Ask candidates: "When would you choose tRPC vs. REST vs. GraphQL for a new project?"
Good answer: Considers the team's language constraints, whether external clients need access, development speed requirements, and long-term maintenance trade-offs.
Red flag: Dogmatically favors one approach without considering context.
The tRPC Architecture Deep Dive
Router Structure
tRPC organizes APIs into routers—collections of related procedures:
// Example tRPC router structure
export const userRouter = router({
// Query: Read operations
getById: publicProcedure
.input(z.object({ id: z.string() }))
.query(async ({ input, ctx }) => {
return ctx.db.user.findUnique({ where: { id: input.id } });
}),
// Mutation: Write operations
updateProfile: protectedProcedure
.input(z.object({
name: z.string().optional(),
bio: z.string().max(500).optional(),
}))
.mutation(async ({ input, ctx }) => {
return ctx.db.user.update({
where: { id: ctx.user.id },
data: input,
});
}),
});
The Type Inference Magic
What makes tRPC special is how types flow automatically:
- Server defines procedure with input validation (Zod) and output
- tRPC infers types from the router definition
- Client imports types from the server (no codegen step)
- TypeScript validates all client calls against server contracts
When you change getById to require a new field, every frontend call site gets a type error immediately—no waiting for tests to fail or runtime errors.
Context and Middleware
tRPC's middleware system handles cross-cutting concerns:
// Context creation - runs for every request
export const createContext = async ({ req }: { req: Request }) => {
const session = await getSession(req);
return {
db: prisma,
user: session?.user,
};
};
// Protected procedure - requires authentication
const protectedProcedure = t.procedure.use(async ({ ctx, next }) => {
if (!ctx.user) {
throw new TRPCError({ code: 'UNAUTHORIZED' });
}
return next({
ctx: { ...ctx, user: ctx.user }, // user is now non-nullable
});
});
The tRPC Developer Skill Spectrum
Level 1: Basic tRPC User
- Can create simple routers with queries and mutations
- Uses Zod for basic input validation
- Follows T3 Stack patterns and documentation
- Understands the basic client-server type connection
- Can add tRPC to an existing Next.js project
This is typical of developers who followed T3 Stack tutorials.
Level 2: Competent tRPC Developer
- Designs well-organized router hierarchies for larger applications
- Implements middleware for authentication, logging, and rate limiting
- Uses Zod schemas effectively with transforms and refinements
- Understands and configures context properly
- Handles errors gracefully with custom error formatting
- Implements optimistic updates on the client
- Integrates tRPC with React Query effectively (caching, invalidation)
This is the minimum for production applications.
Level 3: tRPC Expert
- Architects tRPC for larger teams with proper module boundaries
- Implements advanced patterns: subscriptions, batching, file uploads
- Optimizes performance with proper React Query configuration
- Builds custom tRPC links for logging, retries, and error handling
- Understands tRPC internals for debugging complex issues
- Can evaluate when tRPC isn't the right choice and recommend alternatives
- Contributes to tRPC ecosystem packages
This is senior/staff engineer territory.
Common Hiring Mistakes
1. Requiring Years of tRPC Experience
tRPC v10 (the current major version) released in 2022. Mainstream adoption started around 2021-2022 with the T3 Stack. "3+ years tRPC experience" is asking for early adopters, not necessarily the best candidates.
Better approach: "Experience with TypeScript APIs (tRPC, Next.js API routes, or similar)"
2. Testing tRPC Syntax Instead of TypeScript Thinking
Don't ask: "What's the difference between a query and mutation in tRPC?"
Do ask: "How would you design a type-safe API for a feature with complex validation requirements?"
The first tests documentation recall; the second tests whether they understand type-safe system design.
3. Ignoring Transferable Experience
Developers from these backgrounds often excel at tRPC:
- React Query/TanStack Query users: Already understand the client-side patterns
- GraphQL developers: Familiar with typed APIs and schema thinking
- TypeScript backend developers: Understand the server patterns
- Zod users: Already know the validation library tRPC uses
4. Over-Focusing on tRPC, Under-Testing TypeScript
tRPC is a thin layer on top of TypeScript. The hard problems are:
- Designing type-safe data structures
- Understanding TypeScript generics and inference
- Modeling complex business logic with types
- Building maintainable full-stack applications
A developer who deeply understands TypeScript will master tRPC quickly. The reverse isn't necessarily true.
5. Not Assessing Full-Stack Thinking
tRPC is a full-stack technology—the whole point is that one person can work across the stack. Assess:
- Can they reason about both frontend and backend concerns?
- Do they understand React Query patterns for data fetching?
- Can they design APIs that are ergonomic for frontend consumption?
The Recruiter's Conversation Guide
Questions That Reveal Depth
Instead of "Rate your tRPC skills 1-10":
"Tell me about a challenging tRPC feature you built. What made it complex, and how did you solve it?"
Listen for:
- Understanding of the type inference system
- Router organization decisions
- Error handling and validation approach
- Client-side caching and invalidation strategy
Instead of "Do you know Zod?":
"How do you handle validation for a form that has dependent fields—where the valid options for field B depend on what was selected in field A?"
Listen for:
- Understanding of Zod transforms and refinements
- Thinking about server vs. client validation
- How they handle type narrowing
Instead of "Have you used tRPC with Next.js?":
"Walk me through how you'd add a new feature that requires a new API endpoint, database query, and UI component. What's your process?"
Listen for:
- Full-stack thinking
- Type-first development approach
- Integration with database layer (usually Prisma)
- Testing strategy
Where to Find tRPC Developers
Community Hotspots
- T3 Stack Discord: Most active tRPC community
- tRPC Discord: Official server with job channels
- Next.js community: High overlap with tRPC users
- daily.dev: Developers following TypeScript/full-stack topics
Conference & Meetup Presence
- Next.js Conf and Vercel-related events
- TypeScript conferences
- React conferences (tRPC is primarily a React ecosystem tool)
Portfolio Signals to Look For
- T3 Stack projects on GitHub (look for production complexity, not just templates)
- Contributions to Cal.com or other open-source tRPC projects
- Blog posts explaining tRPC patterns (not just tutorials)
- Full-stack TypeScript projects with well-organized routers
Transferable Talent Pools
- GraphQL developers (similar typed API mindset)
- React Query power users
- Prisma developers (often used together)
- Next.js full-stack developers