Code-first
Define plain Go interfaces. gotsrpc parses your source via the AST and generates everything else — no IDL, no annotations required.
Generate Go service proxies and idiomatic Go and TypeScript clients from your Go interfaces — code-first, no schema language to learn.

gotsrpc is a code generator that produces type-safe RPC bindings between Go services and TypeScript clients, with optional Go-to-Go RPC support. You write a Go interface, describe it in a small YAML config (gotsrpc.yml), and gotsrpc generates:
gotsrpc_gen.go) that serve your implementation over HTTPgotsrpcclient_gen.go) for calling those services from Gogorpc_gen.go, gorpcclient_gen.go) — opt-infetch calls.gotsrpc is deliberately not RESTful. It targets teams where the same people (or closely collaborating teams) own the Go backend and the TypeScript frontend. In that setting a REST layer adds ceremony without buying much, and GraphQL's value — letting frontend teams query independently of backend developers — is less relevant. gotsrpc instead makes the Go interface the single source of truth and keeps both ends in lockstep through generated, type-checked code.
Ready to try it? Head to the Getting Started guide.