So You Want to Build a Website

Building a website is a four step process

  1. Create the HTML pages.
  2. Get a domain name.
  3. Get an ISP (Internet Service Provider) to host the site.
  4. Load the HTML pages onto the server.

Step One

Of these four steps the first is really the simplest. HTML is easy to create; just look at my tutorial. The tutorial will give the basics. In addition you will need a little boilerplate at the top of the page. The following is some example text that should be enough to start with:

<!DOCTYPE html>
  <title>Add Your Page Title Here</title>
  <meta charset='utf-8'/>
  <meta name="Author"
     content="Add Your Name Here"/>
  <meta name="description"
     content="Add a Description of Your Page Here"/>
Put Your Html For The Page Here

Just copy this simple boilerplate text and add the information in RED using your text editor. Do NOT use a word processor, use a text editor like 'Notepad' on Windows or 'nano' on Linux.

Or use the 'textarea' in the form below; edit it and then save the text by clicking submit. You can add all of your HTML with this form. The submit dialog will ask you for the location where you want the file (download.html) to reside.

Step Two

It is probably best to find an ISP (Internet Service Provider) and then get your domain name from them as it is often easier if everything is handled by one organization. That way there is less finger-pointing. I have had very good results with the following ISPs:

There are thousands of ISPs from very very big to very small. Any of those above should be pretty safe.

Go to the website of any one of the above and you can see what domain names are available. For example, at lamphost.net click on their Hosting Extras navigator at the top of the page and select Domain Names. Then select Register Your Domain Name. Enter the domain name you would like. Click the submit button and they will tell you if it is available and what it will cost. From there just select the number of years you want and click continue. It is that simple. All of the ISPs have similar facilities.

Step Three

Setting up a hosting plan is almost as simple as getting your domain name. Most ISPs have online instruction describing the process. You want a Shared Hosting plan. That means you will be sharing the server with a number of other people. You will not be able to interact with them and they will not be able to interact with you. What it means, however, is that the ISP will make sure that everything on the server is secure and that your data is always safe and backed up. It also possibly means that once in a while things may slow down if someone else's traffic goes way up. There are other types of dedicated server plans but they are more expensive and beginners would not know how to use them anyhow. Almost all ISPs have monthly and yearly plans. To start off, I would suggest the monthly plan as the difference between the two is not much and with a monthly plan you are not tied down. Wait until you are sure 1) you like it and 2) you want to maintain a web presence.

Step Four

All of the above is pretty simple as long as you have a credit card. Now things get a bit more complex. Once you have ordered your domain name and host, your ISP will send you an email with the important information. Here is where it may get a bit confusing as the information is usually pretty terse and esoteric. All three of the ISPs I have listed have pretty good phone support. I think without a doubt Lamphost.net has the best but the other two are also pretty good. Don't hesitate to CALL if you get stuck or just don't understand what they are talking about.

In a nutshell, what your ISP should send you in the email is:

If you didn't register your domain name with the same ISP that is doing your Shared Hosting, then you may have some more work to do before anything will work.

You will need the DNS addresses your ISP sent you. There are usaually two domain names that look something like ns1.something.com and ns2.something.com. You will need to go to the website of the "Registrar" for your domain name. They will also have a way for you to log in (usually at the top of the screen) and should have sent you a welcoming email with your account name and password. You will need to get to a place where you can enter the two DNS addresses your ISP sent. This may require some reading and if all else fails, call their customer support line. The two addresses your ISP sent are used to connect your domain name to your ISP's DNS server. Hopefully you registered your domain name at the same ISP that is providing your web hosting and they have done all this for you.

Once you have your Username and Password you can access your ISP's Control Panel where you can (if you know what you are doing) set up your site. At this point be prepared to do some reading, a lot of reading. Every ISP is different so even those of you who have done this many times before get stumped. Remember, you are paying for support so CALL if you don't understand or if things just don't seem to work the way they are described. Sometimes it is your fault but a lot of the time their site just isn't working right (hard to believe but true).

You may need to set up or enable FTP and email. Some ISPs have that set up for you in a default configuration and some don't. Using the Control Panel try to find information about your FTP account because this is the easiest way to get the web pages you created in step one onto the web server.

Initially your domain probably points to a page that says something like "Under Construction". You need to upload an "html" file to the server and name it "index.html". Use your FTP account to do this. Most browsers let you log in to the FTP account by simply entering "ftp://your-domain-name.extension". After a second there will appear a dialog box that asks for your Username and Password. If your ISP has sent you this information in its email (lucky you), just enter it. If you had to set up the FTP account via the ISP's Control Panel be sure you use the username which may or may not contain the full email address like for example: myname@thisISP.com. Or it might just be just myname. Experiment a little if it doesn't work right off.

Once you get FTP access, find the directory where your website reside. This may be the first directory you come to in the FTP screen or your ISP may have given you a further path to follow (or maybe you are on your own). Look around and examine the various directory. Somewhere you should find a file called index.html or default.html (the html may also just be htm). You want to load your own home page file and call it index.html. Once you have uploaded your home page, go to a new tab in your browser and enter your URL (domain name) and see if you see your home page.

If all goes well, you are on your way. Now just write some more HTML pages, add some links and images and you are a webpage designer. If all does not go well, get on the phone to technical support and they WILL help you.

After the Party

After you have your first page up and running, it is time to think of some other things. Remember we said something about "ssh" account. Well, ssh stands for secure shell and it is a way for you to log into the server and do anything you can do on a command line. If you fear the command line as most Windows users do, you can forget about this. But if you really want to enjoy and learn, you should look into using ssh. If you are working on a real computer operating system, that is Linux or Max OS X, you can also use "sshfs" which lets you mount the remote filesystem on your local computer and use your favorite text editor to work on your pages in vitro (so to speak). It really makes working on a remote system fun and easy. You will never want to use FTP again.

Once you have mastered HTML you may want to get a WYSIWYG (What You See Is What You Get) editor like Dreamweaver. I personally think that this is cheating and that WYSIWYG editors produce really bad bloted HTML. If you want nice tight HTML, you really need to code it yourself.

In reality there is actually a fifth step. That step never ends: It is maintenance and enhancement. At some point you may want to move from the static website you built to a more dynamic exciting page. This will require some client programming with Javascript and probably some server back-end programming with PHP. This is when all of this really becomes fun and better than any video game. You can make your website as interesting and exciting as you want -- the sky is the limit. Good luck and have fun.