Hostinger is a website which provides a very good platform to register your domain and host your site. If you already have a domain, it also lets you link your existing domain to the website hosted on it. There are a couple of hosting plans which are displayed on the front page for you to choose as per your requirements. But if you're looking for completely free hosting of your website, it can be done using 000webhost which is powered by the same company.
GitHub provides a very good platform to keep our repositories, modify and control them in an organised way. It also enables us to create free website of our own with a domain "
All you need is an HTML template which can be downloaded for free based on your requirement(blog, wedding website, etc) or a code which is capable of displaying a webpage.