tcomb is one of the most wonderful projects I have come across, and it works beautifully with a serialiser like transit-js.
In some sense it enables your program to resemble a type system and be able to easily serialise it at runtime. Kind of similar to how games are written, I believe. And with tcomb-form you can easily have a ui layer as well.
We're currently using react-forms with a custom json-schema to react-forms schema conversion.
[1] https://github.com/gcanti/tcomb-form [2] https://github.com/gcanti/tcomb-json-schema