How to build a website: What you need to get started

I’ve been building websites since 1995. Courtesy of the Wayback Machine, you can even see the slightly cringe-worthy first one I ever put up. You’ll need to make your browser much narrower because it was designed in the days when screens were only 800 pixels wide.

With 26 years of experience making sites, it’s fair to say I’ve been asked, “So Dave, what do I need to do to get my own website?” a few hundred times, minimum. In this article, we’re going to answer that question. To get started, let’s define our terms.

Website hosting and building

What is a website?

From a website visitor’s perspective, a website is someplace online you visit to get information or to do something. But from a site operator’s perspective, a website is, fundamentally, one or more directories of files, possibly accompanied by one or more databases of tables.

You may have heard terms like HTML, CSS, JavaScript, Java, PHP, and more. These are all, more or less, computer languages in that they follow a specifically defined syntax and, when processed, produce a result of some kind.

HTML (Hypertext Markup Language): This is a text file containing formatting commands for constructing a webpage. You can control the text style, add headings, lists, and place media content. Most HTML pages also embed or include content from other web languages as well, like CSS.

CSS (Cascading Style Sheets): These are files that help format the webpage. They contain positioning and styling information that gives a page its pleasant look.

JavaScript and Java: These are programming languages, initially developed to run in the browser to modify a page’s behavior on the fly. Now, there are server-side versions, like Node.js for JavaScript and Enterprise Java Beans for Java. Almost all web applications, like Gmail and Facebook, use Java and JavaScript (or a modified dialect) to make the pages more dynamic.

PHP, Python, Ruby, etc: These are server-side programming languages that run web applications on the server. For example, an online store will need to call out to a payment processor. Most of that payment processing is handled server-side in a web programming language.

Back in 1995, when I got my start on the Web, there were no web builders or content management systems. I had to hand-code all my HTML. Today, unless you’re writing custom functionality, you probably won’t have to know any of these languages in detail to create a successful site. But you might want to have a passing awareness of them and to understand basic HTML and CSS at the least, because little bits of customization in terms of how your site looks may require CSS or HTML tweaking.

A webpage is essentially a single document. A website is a collection of related webpages. Many websites, using web programming languages, also work with databases (which provide fast search and retrieval). These sites build the webpages dynamically, constructing all the elements as a user visits the page, and then transferring that cluster of elements as files to a user’s browser.

Although we hand-crafted our pages — HTML tag by HTML tag — back in the mid-1990s, that’s no longer a preferred practice. Today, you’re almost always going to use some sort of page builder or content management system (CMS), which will do most of the super-tedious page formatting and assembly work for you.

Content site vs. web application?

According to Internet Live Stats, there are 1.8 billion websites live right now. Each site is different (except, of course, for those sites cloned by scammers who hope to get web traffic from the stolen work of others). But even though there are millions of variations in what constitutes a website, right now we’re going to lump them all into two categories: Content site and web app.

Even here, there’s some wiggle room. Many apps have content as well. And many content sites have sections that are web apps. Any site that has a forum, for example, is hosting a web app.

From a “Dave, what do I need to do to get my own website?” point of view, if you’re reading this article or asking that question, let’s agree you’re looking to build a content site. You’re asking because you want to present information about the goods and services you offer, or about a topic of interest, or some other site that’s mostly information-based.

Web applications, although incredibly valuable (see all our writing about the cloud), usually require skilled programmers to create. If you’re looking to set up your first site, you’re not ready to worry about coding. For the rest of this article, we’ll assume your site is mostly content-based, although you may have some app features (like e-commerce or a forum).

Build it yourself or hire a consultant (or get your nephew to do it)

If you run a large corporation that can hire a web team, sure, go out and hire a consultant. And while there are many web developers out there (freelance and with agencies) that do a wonderful job, they can increase complexity considerably. For now, I’m going to tell you a few reasons why I don’t recommend you hire someone. After, I’ll show you some tips for succeeding if you do.

Let’s start with the reasons you might want to avoid hiring someone. At the top of the list is cost. Building a custom website is a lot of work. While it’s possible to crank out cookie-cutter sites where only the logo and colors change, anything built with more of a personal touch will take days to weeks to months.

I volunteer with a nonprofit. I agreed to build their site. It had just a few highly custom features (a tweaked membership list and member-only access). Even with just a few custom features, it took me a couple of weeks to put it together. Even the cost of hiring the least expensive developer, billing for 80 to 100 hours of time, is going to add up.

Beyond cost, however, is the loss of control. I also maintain a free donations app, again as part of my pro bono work. At least once a week, someone contacts me telling me that they lost their developer (or they have no idea who the original developer was) and they need to know how to modify their site.

You are unlikely to have access to the same developer for the entire life of your site. Consultants move on, get new jobs, move away, die, or get fired. If you are solely reliant on someone else to keep your site alive, you’re at serious risk. It’s incredibly valuable, especially for your first few sites, to build them yourself. Learn about hosting. Learn about your content management system. Learn about backups.

If you build up these basic skills, you’ll be able to jump in if your developer is unavailable. At the very least, you’ll have a better chance of understanding whether the consultant’s asking price is reasonable or over-inflated.

If you do want to hire a consultant, my biggest piece of advice is to keep each job simple, with clear objectives and a measurable set of guidelines. Rather than hiring someone to develop your entire site, you might hire someone to configure your e-commerce plugin — and teach you how to maintain it. Rather than having someone design the entire site, you might hire someone to help you choose your site’s colors and tweak your CSS to display them.

You get the idea. Keep the jobs simple, tangible, and objectively measurable. It’s much easier to convince a vendor to make a fix because payments aren’t processing than it is to try to convince a consultant to redesign because you didn’t get the light and airy feeling you were hoping for.

Getting ready to get ready

Up until this point, you’ve been getting ready to get ready. You’ve learned about the different kinds of files a website uses. You’ve learned to think about the difference between content sites and web apps. You’ve looked into hiring consultants and (at least if you follow my advice) you’re going to try to build your first site on your own.

You have a couple of more decisions to make about what web technology to use and what hosting provider. But before you jump into the logistics, you need to think through more about your site itself.

We know it’s going to be content rather than mostly code. But beyond that, what are you trying to accomplish? If you want to take orders, you’re going to need to look into payment gateways and payment processing. If you ship physical goods, you’re going to need your cart software to manage shipping and fulfillment tracking. If you ship digital goods, you’re going to need your cart to manage licensing, expiration, renewal, downloads, and registration.

If you plan on building a mailing list, you’re going to need a mailing services partner to manage your list and deliver your mail messages. And you’ll also want to decide how tightly you want to integrate your mailings with your web content. Do you want a mailing automatically triggered for each new blog post, or do you want to write your own mailer when you’re ready to do a promotion?

You’re also going to need a domain. Do not let any of the web hosting providers try to convince you to use something like yourname.theirname.com. It’s better to have yourbrand.com as your domain name. Domain names cost about $10 a year and you go to a domain registrar to buy one. The only challenge, like with vanity license plates, is finding one that hasn’t already been used.

Here’s a caution: Most registrars also offer some form of domain marketplace, where those who own domain names try to sell them to others who want them. Stay away. I have an acquaintance who decided he wanted a very specific name and spent thousands to buy it. Yes, the name of your company might have already been taken. Be creative. There are still many great combinations of letters out there. Don’t spend hundreds, thousands, or even tens of thousands of dollars on a domain name. Just be creative and choose one that’s available.

These decisions will help you look into the features that you’re going to choose when you look for a web builder or content management system. Let’s talk about that now.

Choosing a content management system

There is a wide spectrum between writing every bracket around every tag in every HTML file when coding a site completely on your own, and dumping text and photos into Facebook or Medium and being at the mercy of some walled-garden corporate algorithm.

We’re going to focus in the middle of that spectrum. There will be some configuration and setup decisions and a lot of design decisions, but it isn’t really a choice between writing all your own code or letting Facebook dictate who sees your message. You’ll be able to build a site that’s your property, with your look, feel, and identity.

Here, too, there are decisions. You can go the website builder route. You can sign up to Wix or Squarespace or an equivalent service, and they’ll take care of both hosting and constructing your webpages. All you’ll need to do is choose a theme, and then fill the site with your content.

Depending on your budget, going with a website builder is a very simple and practical solution, especially if the themes provided are appropriate for the kind of work you’re doing. There is, however, a substantial downside: Lock-in. Most web builders are proprietary, so if you want to switch to another service, you’ll have to rebuild your site either mostly or entirely from scratch. At the very least, there will be a ton of cutting and pasting between services.

For smaller sites, that’s not much of an issue. Rebuilding five or 10 webpages is no big deal. But if your site is 50, 100, or even thousands of pages, that’s a lot of copying and pasting (or, if you’re very lucky, exporting and importing). Think about this: If you do one blog post every weekday, you’ll have at least 261 pages by the end of a year. Content expands very quickly.

The other approach is to run a non-proprietary content management system on a hosting provider. That way, you can switch hosting providers and your CMS can move with you. If you run an active website for any number of years, you WILL switch hosting providers. Whatever you start with will become unreliable, more costly, offer less quality support, or give you some other reason where you’ll want to leave. It’s rare to stick with one hosting provider unless you simply have no way out. So planning to be able to switch is useful.

The sweet spot: WordPress

I’m going to go out on a very safe limb and recommend you consider WordPress as the foundation of your website. According to tracking service W3Techs, WordPress now runs 40% of all websites and has a 64.3% market share of all sites based on a content management system.

WordPress is an open-source CMS you install on your hosting provider’s site. Usually, WordPress comes pre-installed, or you need to run a quick installer to create the site. The installation process involves answering a few basic questions. To just get WordPress up and running, it rarely takes more than about five minutes or so.

It’s the customization of WordPress that can take a while. That non-profit I told you about earlier was a WordPress site that took weeks to build. Some of that time was spent on getting the non-profit to decide on a logo, gathering all the names of the members, and agreeing on wording and messaging. But the bulk of the time was spent choosing and configuring the plugins, themes, and layouts that best fit the group’s mission and provided the professional look and feel that was desired.

Speaking of plugins and themes, let’s talk about them. Plugins extend WordPress’s capabilities. There are thousands upon thousands of them. I consider plugins the great strength of WordPress because they allow you to customize WordPress to do almost anything. Many are free, many more are paid add-ons. Many offer a free core plugin but sell either a pro version or add-on capabilities.

The second great strength of WordPress is its enormous themes library. There are some very nice free and default themes, and a tremendous number of excellent commercial themes available. This, too, is one of the reasons I confidently recommend WordPress.

But… keep in mind that once you integrate a bunch of plugins and themes into WordPress, you’re going to have something of a lock-in situation as well. It’s not the same as being stuck on one hosting provider, but you may have data formatted just to work with your chosen plugins, or pages formatted to work with just the theme you’ve chosen.

The difference between module-level lock-in and hosting-level lock-in is that you can often find replacement themes and plugins, and you can almost always move your entire WordPress site (including all those plugins and themes) to another host without too much work.

Also, you may have heard about security problems with WordPress. Don’t let that scare you away. Keep in mind that 40% of the internet is running WordPress, so millions of websites run it. That makes a very large target of opportunity for bad guys and opens up a wide range of errors people can make in configuring their sites. But if you do the simple practices of backing up your sites and applying updates as they come out, you’ll almost always be in the clear.

One other benefit of WordPress: Because it’s so huge, there’s an enormous user community and almost unlimited amount of training, help, and support, and a virtual cornucopia of resources, sites, and helpful people out there who know WordPress.

Choose a hosting provider

If you go with one of the all-in-one web builders like Wix or Squarespace, you won’t have to choose a hosting provider. But if you go with some other CMS or WordPress, you’ll need to contract with a company to deliver your webpages to your visitors.

I wrote about the hosting provider business model in Best free web hosting in 2021: Cheap gets expensive fast, so click over there and give it a read-through. You’ll learn a ton about how to think about hosting, what services hosting providers offer, and some of the pricing tricks hosting providers try to foist upon their customers.

Another article to check out, on our sister site CNET, is How to choose a web hosting provider. There, I wrote about the different types of hosting and servers to take into consideration.

Here’s a quick tip: You can probably get by with shared hosting if you don’t have a ton of pages or a complex site. But stay away from the bottom-of-the-barrel pricing plans. You get what you pay for. Look for a plan that’s roughly about $10 per month if you’re running WordPress or anything with a basic CMS. If you’re running complex e-commerce, expect to spend more.

The reason for this is that you’ll need a base level of performance to be able to feed pages with any responsiveness. The super-cheap sites will have terrible performance and often lax security. If you’re creating your first impression on the Internet, make it count. Spend a few bucks — way less than we used to spend mailing out brochures back in the pre-Internet dark ages — to get a decent quality but still affordable offering.

Final thought

There’s a lot to learn, but it’s not unreachable. More to the point, if you go through the learning curve, you’ll never be completely at the mercy of expensive consultants who may cost a lot and still leave you unsatisfied. I’m not saying consultants are bad, but taking control by learning how to set up your own site will help you become an informed site operator.


You can follow my day-to-day project updates on social media. Be sure to follow me on Twitter at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, and on YouTube at YouTube.com/DavidGewirtzTV.

LEAVE A REPLY

Please enter your comment!
Please enter your name here