diff --git a/packages/webui/src/trpc/TRPCClientProvider.tsx b/packages/webui/src/trpc/TRPCClientProvider.tsx
new file mode 100644
index 0000000..5408969
--- /dev/null
+++ b/packages/webui/src/trpc/TRPCClientProvider.tsx
@@ -0,0 +1,37 @@
+import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
+import { httpBatchLink } from "@trpc/client"
+import { ReactNode, useState } from "react"
+import { trpc } from "./trpc"
+
+
+export interface TRPCClientProviderProps {
+ children: ReactNode
+}
+
+
+export function TRPCClientProvider({ children }: TRPCClientProviderProps) {
+
+ const [queryClient] = useState(new QueryClient())
+
+ const [trpcClient] = useState(trpc.createClient({
+ links: [
+ httpBatchLink({
+ url: "http://localhost:8080/rpc",
+ headers: async () => ({}),
+ })
+ ]
+ }))
+
+
+ return (
+
+
+ {children}
+
+
+ )
+
+}
diff --git a/packages/webui/src/trpc/trpc.ts b/packages/webui/src/trpc/trpc.ts
index b644009..bb82294 100644
--- a/packages/webui/src/trpc/trpc.ts
+++ b/packages/webui/src/trpc/trpc.ts
@@ -2,4 +2,4 @@ import type { Router } from "@todo-tests/common/rpc"
import { createTRPCReact } from "@trpc/react-query"
-export const trpc = createTRPCReact()
+export const trpc: ReturnType> = createTRPCReact()