As for forms, I think if you wanted a completely custom form, then you would have to use something like TypeForm or JotForm and embed that into your Ghost blog.
It tries to focus solely on publishing and blogging, but recommends other services you can tie in if you need to which you can find here - https://ghost.org/integrations/
All I have to do to write an new post is:
hugo new post/name-of-post.md
fire up vim on the name-of-post.md file and write my post in markdown.
run hugo to generate the html
cd to the public directory and run rsync to publish the new html post to my site.