Say you have a function in the backend, for example in typescript:
function handler(a: A, b: B) {}
With a suitable tooling, you can generate the type for frontend to call handler(a, b) in a type-safe way, which could be validated on the backend and frontend.
So you're just a "generation" step away from bluring BE/FE communication.
Apologies, I know what generation is. But the ABI that is the wire between the front and the back is notorious for not being stable. Such that I was asking if you have experience with a generation stack that is favorable. Most folks I know do not have favorable experience in this realm. Best I know of, are those that drop down to something like protobuff to describe the messages.
function handler(a: A, b: B) {}
With a suitable tooling, you can generate the type for frontend to call handler(a, b) in a type-safe way, which could be validated on the backend and frontend.
So you're just a "generation" step away from bluring BE/FE communication.