Judging by the little time I played with it, I would say it similar to tRPC in that it is type safe for the client, but the way to get there is different.
In tRPC we create a server router and export its type to use in the client and we also have the trpc client. But we use the /trpc endpoint for everything. Every request that is intended to mutate something, is sent as a POST request (mutation), and every request that is for retrieval/get, is sent as a GET request (query).
In Nestia, we keep using the Nest server and routers, but nestia parses all modules/controllers/routes info, and creates a client (sdk) with the parameters and return types and we keep using the traditional HTTP methods.
In my case, I want to keep using TypeScript decorators and opinionated standards set by Nest team, so tRPC doesn't work for me.
That's why I was trying to get the list of all routes so I could build a union type for my client, and I finally achieved it thanks to ChatGPT.
But Nestia also achieves the same thing. So I will keep giving Nestia a try.
The premise of typia, what Nestia uses for data validation and transformation, and Nestia as a whole is SPEED. I prioritize User Experience (UX) over speed.
The use of JSDoc to define the fields validators is against UX, it's redundant (TypeScript already have types, why make a new language on top of another language!?) and it's against aesthetics (using comments to implement logic).