Features include: 1) tRPC like DX 2) openapi schema generation 3) The server only returns valid over the wire json so you know exactly what youre getting on the client. i.e the server will not let you respond with a Date object. You'll need to convert it into a string/number before you do 4) (Almost) everything is well defined. When you create an xprv app, you can tell it how to handle errors like Internal Server Error or 404 and it will infer the types of the response 5) If something does go wrong, you also get full access to the underlying express objects.
This is not to say that the project is perfect. There are a few downsides: 1) Only deals in json at the moment. Other file types like images, or even text is not really supported. 2) The errors can be a little confusing at times. Asserting valid over the wire json uses complicated utility types and it's errors are not clear.