I’m a massive fan of building stuff from the ground up. There are loads of plugins around for everything you could ever wish for in a WordPress blog, but I feel both rewarded and secure when I build features from scratch.
https://premium.wpmudev.org/blog/how-to-build-your-own-wordpress-contact-form-and-why/