Last Updated:

Detailed guide to build and publish a website for FREE


If you have ever searched "How to create a website for free" or "Free website for my business" in Google (I know you already have done that before landing on this article), you should have seen many companies and blog posts explaining the same. But there was always a catch, ain't it? But this article is for people who want to build a website without a Cent, Kopek, Penny or a Rupee. Yes this is for you.

Here are 6 of the biggest names appear in Google with one or more "offerings" that I'm going to explain later.

Lets see what are the catches of above services when you go with one of them.

  • Build the website for free, but you have to pay for a custom domain name.
    This is the most common catch. They present you with a feature rich and easy to use website builder. Once you build a website, you can even host it for free and they give a domain name too. But that domain name is not a TLD (Top Level Domain). Instead a subdomain under their brand. If you want to connect a custom domain, then you have to pay.

  • Build the website for free, but hosting is not free.
    These services allow you to create a website quickly but then you have to subscribe to one of their plans to host your site. Otherwise you can just download your site and host somewhere else.

  • Limited features or website with their branding
    You can build a website with limited features. During the making of website, they remind you of some cool features that you can use if you had their "Premium" plan. Even after you can continue to host it and attach your own domain, but they will add their branding and back-links to their main website in your sites footer, sidebar or anywhere others can see.

  • Limited bandwidth, requests per month, number of pages and many more limitations.

 Then how can I build and run my own website for free?

First lets see the ingredients you want to run the website.

  1. Website builder (If you don't know coding or don't want, instead want to focus more on content and business)
  2. Domain name
  3. Hosting

Once you have all of the above 3 for free of charge, then you have a free website. Now I will explain each of the above in details. Actually there are many ways to obtain each of that. But here I'm explaining a working and proven method with tools that I have personally tried and successfully published a website.

Free website builder

There are many free website builders, some are online and some are offline to install and run on your computer. Out of many free website builders that I have tried, I found that Publii is the most promising software. It supports MacOs, Windows and Linux computers. Also It is a fully open source and free software that you can install without any doubt. So go ahead, download it from this link. Download Publii. When the download is complete double-click on the downloaded file to run the installer.

Once the installation is done, Publii will start automatically. For future use, a shortcut will be added to the desktop if you're using Windows, or to the Launchpad on Mac so you'll have easy access to Publii next time around. When Publii is launched for the first time you can see the following screen, where you can setup your website that we are going to launch for FREE.

Create Your First Website

Select an icon, website name (this is not the domain name) and author name to start the creation of the website. Then you can select a theme from the settings menu, after that you are ready to create articles or posts. Just go through the software and I'm pretty sure you will catch up with its features quickly. It is a neatly designed software with non tech users in mind; you can always refer to Publii's documentation which covers almost all the things it can do in simple terms.

Free hosting for the website

Now we need some place to host our website. There are many free hosting providers supported by Publii including Github pages, Amazon S3, Google cloud, Gitlab. But my favourite is Netlify. Even though they have pricing for some premium plans, their free plan is more than enough for our website.

Netlify pricing
  1. First thing is signing up. Go to and create an account. Once you created the account, login to Netlify. Now you'll see the Your Sites screen, which should be empty since we haven't created a site yet!
  2. Until we create our real website, it is required to create a dummy website in Netlify, so we can continue with our other configurations. Publii provides a sample website (which only contains an empty page) for this purpose. Download it from this link and drag and drop this zip file to Netlify's Your Sites screen. Now Netlify will create a site for you.
  3. Now click on the site's name to go inside its settings, you will see a subdomain like in the picture below. Copy that link and paste in a notepad.
  4. Click on Site Settings button, then scroll little bit down to see something like below. Copy that API ID and paste it in a notepad. We will need it later.
  5. Now click on your profile icon on the upper right corner, then click on User settings.
  6. Scroll down to New access token button and click on it.
  7. Give a name and click Generate token. Netlify will give you a long random character token. Copy this and keep it in the same notepad like before.

    We are done for the moment with Netlify. Now let's go and grab a free domain.

Free domain name

This is one of the hardest to find for free. But as I promised in the start of the article, I will show the correct way to obtain a free domain.

There is a service offering FREE domain names for anyone. Not only one but 5 Top Level Domain names. That service is freenom. They offer .TK / .ML / .GA / .CF / .GQ domain names free for unlimited period of time !!!

Freenom is the world's first and only free domain provider. Our mission is to bring people online and help countries develop their digital economy.

  1. Go to the freenom website from this link, then search for your required domain name. Pick one (or all) of the domain names and click on "Get it now" button(s). Finally click Checkout.
    Freenom domain search
  2. Now click on "Forward this domain" button and paste the website url you copied from Nelify (in step 3) to the text box. Also select the period as 12 Months. That is the maximum allowed period for one time. But don't worry, you can again renew it before it expires for another 12 months.
    Forward domain
  3. In the next screen, enter your email address and follow the registration process. Then you will have your new domain ready.
    Register domain

Wiring it all together

Now we need to connect everything together; Domain to hosting, hosting to Publii, Publii to domain. Then you will have your site ready. Follow me with the final steps.

  1. Go to Publii and click on the Server option in the left-sidebar to open the Server Settings screen.
  2. Set the domain as what you have registered from Freenom.
  3. From Protocol dropdown, select Netlify
  4. Enter the API ID (copied at step 4 of Netlify registration) of your Netlify site into the Site ID field.
  5. Enter the Netlify token we created (at step 5) in the Netlify token field, and click the Save settings button to save changes.
    Publii configurations
  6. Now click on the Test connection button to see if everything is working. If that's ok you can start creating your website. 
  7. Once you are done with creating some posts, click on Sync your website button to publish the site. It will take some time. Once the Publii shows it's done, hit your domain name on browser and see your zero cent website !!!.

That's all folks. But there are many things you can do with Publii / Netlify / Freenom combination. I will later post on how to do other configurations like proper dns configurations, forwarding www domain, Enabling Google analytics, Google ad sense and many more. This post is a starter guide for anyone to start with their own site without spending money. Share this article if you found it useful. 

Recommended readings: