You can create a new template(optional) with a field as multilist, set the datasource to a specific location(home node) and add condition for your template.
Now you can use this field as your left navigation, where you can get title/links and other fields(if required).
You can create your own custom resolver by inheriting RenderingContentsResolver
Over ride ResolveContents method, get your data source item, which will have the droptree field. you can get the child/related items details and create your JObject item to return, as per your requirement.
It is feasible and you just need to expose the API. So, on your react component, you will have a button whereby you will bind it to a function.
In that particular function, you can use Axio to call your endpoint (contact/submit).
Then, it is pretty much straight forward. You need to implement the API and register it in Sitecore so that when the url mysite....
Make sure your top level placeholders have been added to rootPlaceholders setting in package.json file:
Unless the root level placeholders are set, the placeholders and their components do not render in ...