How to host a Website for FREE with custom domain name!
So, in-order to host a website on the internet, you need two things :
You need a domain name, so that people know where to reach you on the Web. For example, techraj156.com is the domain name of this website. It is like an address on the Internet.
You need a hosting provider, so that you can host the code of your website (that makes your website run) and connect it to your domain, so that when visitors open your domain name in their browser, the code gets fired up and your website is displayed to the viewer.
You can register a domain name of your choice (based on the availability) from a domain registrar like GoDaddy. As you can guess, you obviously need to pay in-order to register a domain under your name. How much? Well, it depends on the name of your domain which you want to register. Domains with a catchy name and a .com suffix are usually high in price.
Also, you need to subscribe to a hosting provider (like hostinger, godaddy, heroku, etc) so that you get to host your website.
But what if you want to run a website on the Internet for FREE?
There is a way!
In-order for this to work, you need to have a GitHub account and you also need to be a current Student in any school or college.
There is a program called GitHub Education which is doing an exceptional job of providing people in education industry (teachers, students) with awesome tools for free!
Follow these steps to run a website with a custom domain name using GitHub Student Developer pack :
Apply for GitHub Student Developer Pack
Login into your GitHub account (create one if you don't have already), and go to education.github.com
Now, you need to apply for the Student Developer Pack.
Enter the email address you use for your school if it's different from the one you made your GitHub account with. If the email you use for school has the custom domain of your school (For example, email@example.com) then this process is going to be a lot more simpler, because GitHub needs to first verify that you are a student, and submitting a email with custom domain of your school will fasten the verification process (usually not more than a minute if you have an email with your school's domain). If you add another email ID, you need to verify it.
Finally, click on Submit your Information and this will submit your info for GitHub to verify. As I already said, if you have an email with your school's domain name, it usually won't take more than a minute. But if you don't, you may want to additionally submit a copy of your School ID if GitHub asks for it. The max time for verification is 12 days.
Once you are verified, you will be notified via email.
You can now open your Student Developer pack, and you will see a ton of tools available for you for FREE!
There are three offers available to register a domain name for FREE :
Register a .tech website on get.tech for 1 year.
Register a .me domain on namecheap.com for 1 year.
Register a domain on name.com for 1 year.
It's your choice what domain you want to register, whether to go for a .tech domain (which I love, check out mine) or go for a .me domain or any other domain.
We'll use name.com to register our domain. Go to name.com and link your GitHub account.
Now search for the domain you want to register and check for it's availability.
Check out, and get the DOMAIN FOR FREE!
You now successfully registered your domain. The next step, is to host it on the Internet.
GitHub Student Developer Pack has free offers for hosting too! For example, you can host your website on heroku for two years without paying anything!
Heroku is a cloud service, and it may be quite complex for beginners to use it. But if you've experience in the field of cloud computing, you can avail this offer through your GitHub account.
But to keep things simpler, let's host on 000webhost.com
Create your account on 000webhost.com and create a website with any name (the name doesn't matter as we will soon be connecting our registered domain with this website)
Once the website is created, go to your sites and wait until the status of your site is Running.
Go to your Site settings (Manage website -> Website Settings), and you will find your website's FTP information. Using FTP (File Transfer Protocol), we can upload files to our hosting space.
Download FileZilla to connect to your website's FTP and upload your files.
Once downloaded, install and open FileZilla.
Go to File -> Site Manager
Click on New Site, and add the information of your site's FTP into their respective fields in filezilla. Make sure you select "Use only Plain FTP" in the encryption drop box.
Finally, click connect. Now you'll be able to see that you have connected to your site's FTP. Go to /public_html in the remote site
In the local site section, go to the directory on your computer where you saved your website's source code. If you don't have any source code to start with, you can download some pre-made website templates from here.
Now drag all the files from your website source code directory into the Remote site.
Once the upload is done, your website must be running. Go to the website URL (that you created with 000webhost, it will generally be like yourwebsite.000webhost.com) and you must see your website.
You can now link your registered domain with the website that you created on 000webhost.
Go to your Website tools (Manage Website -> Tools -> Set Web Address)
Click Add Domain, and select the first option "Park Domain", and click next. Note down the nameservers of 000webhost (Usually ns01.00webhost.com , ns02.000webhost.com) Enter your domain name and click Park domain.
Now go to your name.com dashboard and open your domain's details page. Click on manage nameservers.
Add both the nameservers of 000webhost and click Apply Changes.
Now you need to wait for the nameservers to propagate. This may take 24-48 hours. Usually, it takes not more than an hour.
Once your domain is linked to 000webhost name servers, your website will go live!
So, you just hosted a website with your own domain name on the Internet for FREE of cost!
If you like this article, don't forget to share it on your social media!
Leave a comment if there's anything we can help you with.