Ask Claude to Generate tRPC Routers from Your Existing API
If you're moving from REST to tRPC for end-to-end type safety, Claude can convert your existing route handlers into fully typed tRPC procedures.
Read my Express routes in src/routes/ and convert them to tRPC v11 routers.
Use Zod for input validation on every procedure.
Preserve the existing business logic but restructure it as queries and mutations.
Generate the app router that merges all sub-routers.
Claude will read your existing endpoints, infer the input/output shapes, and produce typed tRPC routers:
// src/server/routers/user.ts
import { router, publicProcedure } from "../trpc";
import { z } from "zod";
export const userRouter = router({
getById: publicProcedure
.input(z.object({ id: z.string().uuid() }))
.query(async ({ input }) => {
return db.user.findUnique({ where: { id: input.id } });
}),
update: publicProcedure
.input(z.object({ id: z.string().uuid(), name: z.string().min(1) }))
.mutation(async ({ input }) => {
return db.user.update({ where: { id: input.id }, data: { name: input.name } });
}),
});
For a gradual migration, ask Claude to convert one route file at a time and keep both versions running side by side.
tRPC gives you type safety from database to browser — Claude handles the tedious conversion so you get there faster.
Log in to leave a comment.
The /security-review command scans your uncommitted changes for injection vectors, auth gaps, hardcoded secrets, and other common vulnerabilities.
The SessionStart hook fires when any session begins or resumes, making it ideal for loading environment variables and running one-time setup scripts.
Ask Claude to write property-based tests for your functions using fast-check — it identifies the mathematical invariants in your code and generates tests that cover inputs you'd never enumerate by hand.