Quick Website On Your Own

The Easy Ways

Making a website can be complex and technically challenging, but if you just want something simple and easy to use, you can do your own.

There are essentially three parts to building a website. 

1. Get a domain

2. Get it hosted

3. Add your content

There are infinitely many ways you can accomplish those three steps, but I recommend one of two easy methods.

Method 1:

Pay wordpress.com or squarespace.com something like $30-$500 per year and get an easy domain registration along with hosting and point and click tools to add your content. This is the easiest way to get world class capabilities relatively inexpensively.

Method 2:

Pay just for the domain part and get the point and click tools for free. It's cheaper than the easiest options but still not hard.

That's really all there is to it.

The Medium Difficulty Way

If you want complexity, there are a variety of options.

Get a host and a CMS (Content Management System) that works on it.

For hosting, as a good second choice, I recommend Google App Engine. You can pick your own content management system and most users will get free service, but fees are reasonable if you have a high traffic volume. There are some different options described at http://www.lleess.com/2013/03/cms-on-google-app-engine-gae.html . You can use Wordpress or GuteCMS and probably others. I use  Vosao

There are other free hosts out there and some that are reasonably inexpensive. I've had mixed experiences with them so I don't really have a strong alternate recommendation. GoDaddy provides hosting and CMS as well, but I don't think it is quite as easy to use as Google Sites and don't feel like it is quite as Google Sites and don't feel like it is as flexible as Google App Engine.

You'll still need to register a domain. I recommend GoDaddy, DynDNS or Comodo, but most are pretty easy to use and set up.

Adding the content is pretty simple with a CMS.

The Hard Way


You can host your own server if you can afford the bandwidth. Pretty much any computer that is connected to the Internet can be a web server. All you need to do is ensure that you can do it with your ISP and run web server software. The most common is Apache. There are versions of Apache for pretty much every operating system but Linux is the most common. I recommend using CentOS (a linux distribution) as your operating system for Apache. My personal choice of servers is usually for Nginx but it is less well known and therefore a little more complex to get set up correctly. Nginx pays off by scaling very well and being very fast and lightweight.

Alternatively, you can purchase hosting and manage your sever that somebody else is running. Softlayer is one option that I've seen good results with, but you can search for VPS services and find many options.

Domain services:

There are a variety of options for this, but I recommend GoDaddy or DynDNS for this. If you're hosting your own server, DynDNS will let your server keep the IP address current automatically. If you've got a VPS then either works or a dozen other options. The important bit is that you know you need to have your DNS provider point your domain to your IP.

If you really want to make it hard, you can do your own DNS services. Bind is the most common software for this, but I like dnsmasq since it is usually easier to set up.


CMS systems are what I recommend for ease. There are lots out there, but I have had good experiences with PmWiki and MediaWiki. I've got some experience with MODX as well. There are literally thousands of options, but I recommend that you pick one in a programming language you're interested in learning or already know.

CMS is not actually required. If you are willing to build all your pages yourself, you can code them in any programming language you like or just build text based HTML pages.  This is by far the most challenging option, but it does pay off if you don't have much content to manage or are really comfortable with programming and HTML.

If you decide you want to do everything the hard way, you'll need: