I created this before I knew that tRPC is a thing. It's basically the same idea. Typesafety across server and client.