Is it a good idea to have dynamical front-end forms that rely on back-end schemas?

This is more of a design philosophy question, as I can see a way to do both things, and pros and cons to both roads; I'd like to know if there are any commonly accepted principles or problems I'm ignoring for this use case.

Fundamentally, I'm working on both back and front end of a site that's used to input entries into a database. There are front-end forms corresponding to back-end data structures that will then be pushed into MongoDB. I have two possible roads ahead:

  1. have front and back-end be completely separated. Back end validates data it receives against a schema before pushing it into the database, front-end has its own forms and scripts to process input and send it to the back end;
  2. have the back end not only store schemas, but have a way to send them to the front end when queried; the front end then dynamically generates forms based on those, for example with a text field for a string input, a check box for a boolean, etc.

The disadvantage of 1 is that if I need to change anything in the future, I need to change it in two places, and it's easier for discrepancies to arise by mistake. The disadvantage of 2 is that it muddles form and function, as you need some stylistic information (e.g. length of a text field) to be stored serverside and sent with the schema. Also, a pointless need to keep the fields ordered where a simple schema wouldn't require that. I'm leaning towards 1 as I don't think many changes should happen in the future anyway. A third way could be to store all the necessary information in a JSON file, then both the front and back end can access it separately and do their own thing with it.

Any thoughts? Are there any major issues with either approach I've overlooked that might come back to bite me down the road?