Now that you've got the basics of HTML and CSS down, we're going to take a look at how to …
Read more Read more

Today's lesson is probably the easiest part of the whole make-a-web-site process (at least for the kind of site we're making), and it involves two simple steps:

Find and register with a web host

Upload your files to your host

Once you've done that, anyone with access to that wacky world wide web can see your site. Google can find it. Potential employees can see how talented you are. All the work you put into making it is now paying off!

But I'm getting ahead of myself. Let's talk a little bit about each step.

Step 1: Find and register with a web host

You can hem and haw all day about what web host to choose if you want. Choosing a host is like buying anything online: You do some research, find a few hosts that meet your needs, and maybe consider the recommendations of your peers before you commit. For a good starting point, take a look at our list of the five best personal web hosts. The reader-voted favorite of the bunch is DreamHost, and it's what I use for hosting various simple sites. I've tried a few alternatives over the years. Some were awful (Globat), some were just fine (Bluehost), but DreamHost has always been my favorite for simple hosting needs. That said, at something like $9/month DreamHost is more expensive than a lot of other cheap hosting plans. (I've also set up full web servers from scratch on virtual private servers at Slicehost and been very happy with them. Setting up a server on something like Slicehost is well beyond the scope of this guide.)

The web's full of services happy to host your photos, blog posts, and other online data, but…
Read more Read more

Note: Keep in mind that the kind of hosting we're talking about in this lesson isn't the same kind of hosting that could run a massive web site. Hosts like DreamHost are perfectly capable at hosting static pages (like we've made) or even low-traffic webapps that require a scripting language (like PHP) and a database.

Whatever service you choose, you'll need two basic things from your host:

A domain name: This, as you probably know, is the human-friendly URL for your site. For example, when you visit http://lifehacker.com, that domain actually points to an IP address, which is a much less friendly string of numbers and dots. You want a friendly domain name.

A hosting plan: This is the service that provides you with the disk space and bandwidth for your site. It hosts your files and transfers your web page to the computers that visit your site.

Notes on choosing a domain name

If you're putting together your nameplate site, consider trying to snag yourname.com. Whether it's based on your name or not, your luck securing the domain you want will vary depending on how unusual the name of the domain you'd like is. When I'm searching for domains, I've always liked using Instant Domain Search, a tool that returns availability of domains as you type. If you want to get clever with your name (del.icio.us-style), consider the Domain Hacks search tool. Finally, if you can't seem to secure anything, give Bust a Name a look. It suggests open domains based on synonyms of a few base words.

If you've never tried it before, here's an advanced warning: If you're not flexible, or you don't have a very unique domain name, finding an available domain name can be extremely frustrating. Be patient and play around, and eventually you'll find something you're happy with. (Remember, it doesn't have to be a .com domain—it's really up to your preference.) Once you've found an available domain you like, you're ready to proceed.

Buying your domain and hosting plan

You've got a choice at this point: You can either register your domain name with a domain registrar (like the popularNamcheap or another popular option) or you can simply register your domain when you buy your hosting plan. Many hosts—including DreamHost—give you a free domain registration when you register for hosting.

A domain name is the magic that turns a raw IP address like 69.60.7.199 into a human-friendly chunk …
Read more Read more

The catch with tying your domain name to your hosting plan is that often hosts aren't as good as registrars when it comes to easily managing, transferring, and handling your domains. To that point, I've been happy with DreamHost, and I'm sure most good hosts work fine as registrars, especially if you never have to transfer to another service. I was, by comparison, very unhappy with my first host, Globat, and how difficult it was to do anything with the domain I registered through them.

So make your domain and hosting choices. Once you have, you're ready to deploy your site.

Step 2: Deploy Your Web Site

This is the incredibly easy part. Since I have a DreamHost account, I used that in the video above, but whatever you decide on, the process should be nearly identical. Here's the broad version:

Sign into your web host.

Find the FTP (or for better security, SFTP) credentials. Basically you need an FTP, SFTP, or SSH username and password. On DreamHost, my first FTP user was created automatically; you can view, edit, or create new users here. If your host didn't create a user for you by default, you should be able to create one somewhere in your host's dashboard.

Now open up your FTP client of choice. The free, open source Cyberduck (available for Windows and Mac) is a great choice if you're looking for something free and don't already have a favorite.

Click the Open Connection button, choose the connection type (FTP or SFTP), enter your domain name, username, and password, and click Connect. If all your credentials were entered correctly, you should see a directory listing of files or folders, for your domain, on your host.

For the sake of this tutorial, I'm assuming you want your site in the root directory of your server so that when someone visits, for example, yourname.com, it will load the site you created. To do that, you need to find the root folder of your domain. On DreamHost, your initial directory listing will show all the domains you're hosting, so the root of, for example, my adampash.com domain is inside the adampash.com folder.

Now that you've found your root, all that's left is to upload your site from your local computer to your server! There's not much to this part: Just drag the files from your desktop to the root folder you've opened in Cyberduck (or whatever FTP client you're using). Since your site is likely pretty lightweight, everything should upload in just a few seconds, and your site should be live for the visiting!

Congratulations! Believe it or not, that's all there is to it. You've successfully deployed your first web site.