How do I go about making a very customized theme?

Since the changes you want would imply fetching extra data to pages, a theme or a component wouldn’t be enough, you need a plugin to achieve your vision.