Great article! Having trawled the internet and read quite a few websites on how to build a website, I can honestly say this is the most comprehensive and easy to understand - to a complete novice! Your step-by-step guide is thorough and very informative and has given me the confidence to go ahead and try to set up my own business website ... A big THANK YOU!

Hi Jamie. I am not a web developer (yet) but I am aspiring to become one some day. I am using Django Framwork for the backend. But for the frontend , I am confused. Should I study HTML , CSS and javascript and then build a website (frontend) from scratch? Or should I not waste time , and just get a theme from wordpress? How much control over the look and feel of the website do we have, when we use these themes pre-tailored for us?
When things start to become more complex and you start needing to store user information, collect form input, automatically send emails etc. you’re going to need to learn a server-side language. PHP is the most common and has been around a long time. Others include Python, Perl, Java and Ruby to name a few. You can now also choose to use JavaScript as a server side language with Node.js. You will also need to learn how to write SQL commands to interact directly with a database. (Some types of databases don’t use SQL but the most common ones do.)

I went to Berkeley during the first dot com bubble. Most of my friends who were graduates of the computer science department got their degrees without ever learning how to build a web site. Of course the tools weren’t nearly as sophisticated as they are today. But it’s amusing that people who graduated from one of the best computer science departments in the world couldn’t build a basic web site.
But testing gets complicated because some browsers only run on certain operating systems. Apple Safari runs on iOS and Mac OS, while Internet Explorer runs only on Windows. It's best to take advantage of services like Browsershots or Browserstack. Browsershots furnishes screenshots of your website as it will look in various browsers. Browserstack actually gives you full remote access to virtual machines so you can test your site in the most common environments. Alternatively, you can set up your own virtual machine, but that takes some expertise. (If you're going that route, Microsoft has some tools for developers including a ready-to-use virtual machine at modern.ie.)
Creating a website is like making a coffee now. With the help of awesome online website building sites like wix, it is very convenient to just drag and drop elements...and create a basic site within hours. For a bloggers, wordpress is the best option, but they have to learn a bit about wordpress first. After creating website, especially a blogging one, there are some necessaries like a good hosting like godaddy.com, social share plugin (I recommend social share plugins by social9.com), cdn service for protection against attracts (cloudflare.com).
In summary, learn HTML, CSS, JavaScript/jQuery and Python/web2py. This will help you create your full-featured website as easily as possible and as quickly as possible without much fuss. And it’ll be lots of fun, too, because web2py is a wonderful framework that comes with everything you need right out of the box! Batteries are included. One-stop shopping for web development!
You will need to test your web pages as you design them in the major browsers: Chrome, Firefox, Internet Explorer 11 and Microsoft Edge. All these browsers can be obtained free of charge, so it should be no hardship to get them. Unfortunately, directly testing your site is the only way you can be really sure that it works the way you want it to on your visitors' machines. In addition, if you have a smartphone, try out your site there too.
Firstly you should decide what you want to create for example you want to create a social app, portfolio or you have some great idea for your business or other requirements because if you decided once what you want to make then it will easy for you to gather information about it and when you gathered full information then you will create sitemap your website, Actually sitemap describe the relations between the main areas of your website. Such representation could help understand how usable the final product will be.It can show you the “relationship” between the different pages of a website, so you can judge how easy it will be for the end-user to find the required information or service if he starts from the main page.
Hello Amanda, I'd suggest you take a look at Squarespace. With Squarespace, you can create blogs, sell services, upload images / videos, sell digital products (ebooks). They also allow you to export most of your content into WordPress (a very powerful and popular website builder) later if you want that option. The benefit of using Squarespace now is that you can build a website without knowing how to edit codes. You can literally have your site up in quite a short period of time. With WordPress, it's much more advanced and technical so it's not as user-friendly compared to Squarespace. You can see our comparison between them here. So Squarespace is much easier to get setup and will give you what you need. Once you're established and want a much more advanced platform down the road, WordPress is worth considering. Jeremy
If you are comfortable using a word processing program to write your content, be sure to copy everything and paste it into a text file when you are done. Word processors can add extra formatting to your text that make it display incorrectly if you paste it directly into site building programs or HTML editors. Remembering this easy step can save you hours of frustration during the layout of your website.

Another advantage of CSS (of separating the content from the layout and look) is that it is easier to make changes in the future. Without CSS, coming back from a 3 month vacation can be a nightmare. Navigating through content mixed together with layout HTML can be more vexing then deciphering hieroglyphics, more tangled then last years Christmas tree lights. But with CSS, content is separated from layout, it is much easier to make changes to your website even if your cruise vacation is unexpectedly extended a couple years due to Somali pirates.


The cost of making a website depends on a lot of different factors. If you decide to build your site with WordPress, you can get a new site for less than $50. For example, hosting a WP site with Bluehost will cost you only $2.95 per month, and that includes the registration of a custom domain! You will definitely need to invest a few bucks extra on a premium theme (which will probably be something in a range of $40-120), maybe a few premium plugins (on average, a plugin will cost you about $70), but that’s pretty much it.
Thanks so much for this awesome article :) I had literally no experience in building a website when I started using Weebly and I was surprised at how easy it was to make! I'm interested in looking into other platforms now that I'm up and running, particularly Wordpress? But I'll probably be sticking with Weebly for a long time until I'm ready, it really was super easy to use. Thanks again :)
You get what you pay for – Hosting is one of the biggest fees in starting a brand new business website. If you have an extremely limited budget and want to go for the cheapest hosting, that’s fine, just don’t expect anything amazing for $5/month. In general, the more you’re paying, the faster the hosting will be. Speed will help connect you in the social media world where you will likely be playing with ads and posts.
Hey Vivy, I haven't used any of those hosting services before so I can't quite comment. I've used Bluehost and WP Engine. WP Engine is more expensive, but they're good. They're a hosting service that is dedicated to WordPress users, so their support people are quite knowledgeable about WP in general. I've had excellent experiences with them. Jeremy
Website Builder: Website builders (such as Wix and Weebly) are the perfect solution for beginners with minimal technical knowledge looking to create their own designed website. Having advanced light years over the past 3-4 years, website builders offer outstanding functionality and out-of-the-box design and features that would meet most business needs. In many instances, Builders offer a ‘drag-and-drop’ functionality whereby you see the results as you create the site. A wide range of templates are offered and whilst color and positioning can be changed, website builder templates are generally less customizable than those used by CMS platforms.
Seeing page layouts with real content and photos, along with your logo and colors will really bring your vision of the site to life. Use this time to make necessary changes! If you’re working with experienced designers, they will provide mock-ups or prototypes in several developmental stages for feedback. Making changes is costly and more difficult to implement later, so use this time judiciously.
HostGator often offers promotions, coupons and special offers to customers during their initial term. Please note that special offers are limited-time promotional prices that are available to new customers and are valid for the Initial Term only, and not for successive or renewal periods. Promotional rates apply to GATOR, Shared, Cloud, VPS, Dedicated, WordPress and Reseller hosting plans and will automatically renew after initial term at regular rate found in your control panel. Note: If you register a free domain through us and wish to cancel your account, there is a fee to retain your domain.
List of Required Features: Think about what your site needs to do in order to achieve its purpose. For example, if the site needs to display your portfolio, then it must have a good quality photo gallery; if you want to collect leads, you need to have a form and a “thank you” page; selling products? You will need a shopping cart and secured checkout page and so on… You will most likely list a number of required features for your site.
All of the web services listed here have you start by choosing from a selection of templates for your site. The better ones, such as Duda, Squarespace, Weebly, and Wix, use templates that automatically reformat your site for viewing on mobile devices. They also offer specifically targeted templates based on your site's purpose, such as for promoting a bakery's sales, getting gigs for a musician, or keeping wedding guests informed.

!function(n,t){function r(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function i(e){return void 0===e}if(n){var o={},s=n.TraceKit,a=[].slice,l="?";o.noConflict=function(){return n.TraceKit=s,o},o.wrap=function(e){function n(){try{return e.apply(this,arguments)}catch(e){throw o.report(e),e}}return n},o.report=function(){function e(e){l(),h.push(e)}function t(e){for(var n=h.length-1;n>=0;--n)h[n]===e&&h.splice(n,1)}function i(e,n){var t=null;if(!n||o.collectWindowErrors){for(var i in h)if(r(h,i))try{h[i].apply(null,[e].concat(a.call(arguments,2)))}catch(e){t=e}if(t)throw t}}function s(e,n,t,r,s){var a=null;if(w)o.computeStackTrace.augmentStackTraceWithInitialElement(w,n,t,e),u();else if(s)a=o.computeStackTrace(s),i(a,!0);else{var l={url:n,line:t,column:r};l.func=o.computeStackTrace.guessFunctionName(l.url,l.line),l.context=o.computeStackTrace.gatherContext(l.url,l.line),a={mode:"onerror",message:e,stack:[l]},i(a,!0)}return!!f&&f.apply(this,arguments)}function l(){!0!==d&&(f=n.onerror,n.onerror=s,d=!0)}function u(){var e=w,n=p;p=null,w=null,m=null,i.apply(null,[e,!1].concat(n))}function c(e){if(w){if(m===e)return;u()}var t=o.computeStackTrace(e);throw w=t,m=e,p=a.call(arguments,1),n.setTimeout(function(){m===e&&u()},t.incomplete?2e3:0),e}var f,d,h=[],p=null,m=null,w=null;return c.subscribe=e,c.unsubscribe=t,c}(),o.computeStackTrace=function(){function e(e){if(!o.remoteFetching)return"";try{var t=function(){try{return new n.XMLHttpRequest}catch(e){return new n.ActiveXObject("Microsoft.XMLHTTP")}},r=t();return r.open("GET",e,!1),r.send(""),r.responseText}catch(e){return""}}function t(t){if("string"!=typeof t)return[];if(!r(j,t)){var i="",o="";try{o=n.document.domain}catch(e){}var s=/(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(t);s&&s[2]===o&&(i=e(t)),j[t]=i?i.split("\n"):[]}return j[t]}function s(e,n){var r,o=/function ([^(]*)\(([^)]*)\)/,s=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,a="",u=10,c=t(e);if(!c.length)return l;for(var f=0;f0?s:null}function u(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function c(e){return u(e).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function f(e,n){for(var r,i,o=0,s=n.length;or&&(i=s.exec(o[r]))?i.index:null}function h(e){if(!i(n&&n.document)){for(var t,r,o,s,a=[n.location.href],l=n.document.getElementsByTagName("script"),d=""+e,h=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,p=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,m=0;m]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,o=n.split("\n"),l=[],u=0;u=0&&(g.line=v+x.substring(0,j).split("\n").length)}}}else if(o=d.exec(i[y])){var _=n.location.href.replace(/#.*$/,""),T=new RegExp(c(i[y+1])),E=f(T,[_]);g={url:_,func:"",args:[],line:E?E.line:o[1],column:null}}if(g){g.func||(g.func=s(g.url,g.line));var k=a(g.url,g.line),A=k?k[Math.floor(k.length/2)]:null;k&&A.replace(/^\s*/,"")===i[y+1].replace(/^\s*/,"")?g.context=k:g.context=[i[y+1]],h.push(g)}}return h.length?{mode:"multiline",name:e.name,message:i[0],stack:h}:null}function y(e,n,t,r){var i={url:n,line:t};if(i.url&&i.line){e.incomplete=!1,i.func||(i.func=s(i.url,i.line)),i.context||(i.context=a(i.url,i.line));var o=/ '([^']+)' /.exec(r);if(o&&(i.column=d(o[1],i.url,i.line)),e.stack.length>0&&e.stack[0].url===i.url){if(e.stack[0].line===i.line)return!1;if(!e.stack[0].line&&e.stack[0].func===i.func)return e.stack[0].line=i.line,e.stack[0].context=i.context,!1}return e.stack.unshift(i),e.partial=!0,!0}return e.incomplete=!0,!1}function g(e,n){for(var t,r,i,a=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,u=[],c={},f=!1,p=g.caller;p&&!f;p=p.caller)if(p!==v&&p!==o.report){if(r={url:null,func:l,args:[],line:null,column:null},p.name?r.func=p.name:(t=a.exec(p.toString()))&&(r.func=t[1]),"undefined"==typeof r.func)try{r.func=t.input.substring(0,t.input.indexOf("{"))}catch(e){}if(i=h(p)){r.url=i.url,r.line=i.line,r.func===l&&(r.func=s(r.url,r.line));var m=/ '([^']+)' /.exec(e.message||e.description);m&&(r.column=d(m[1],i.url,i.line))}c[""+p]?f=!0:c[""+p]=!0,u.push(r)}n&&u.splice(0,n);var w={mode:"callers",name:e.name,message:e.message,stack:u};return y(w,e.sourceURL||e.fileName,e.line||e.lineNumber,e.message||e.description),w}function v(e,n){var t=null;n=null==n?0:+n;try{if(t=m(e))return t}catch(e){if(x)throw e}try{if(t=p(e))return t}catch(e){if(x)throw e}try{if(t=w(e))return t}catch(e){if(x)throw e}try{if(t=g(e,n+1))return t}catch(e){if(x)throw e}return{mode:"failed"}}function b(e){e=1+(null==e?0:+e);try{throw new Error}catch(n){return v(n,e+1)}}var x=!1,j={};return v.augmentStackTraceWithInitialElement=y,v.guessFunctionName=s,v.gatherContext=a,v.ofCaller=b,v.getSource=t,v}(),o.extendToAsynchronousCallbacks=function(){var e=function(e){var t=n[e];n[e]=function(){var e=a.call(arguments),n=e[0];return"function"==typeof n&&(e[0]=o.wrap(n)),t.apply?t.apply(this,e):t(e[0],e[1])}};e("setTimeout"),e("setInterval")},o.remoteFetching||(o.remoteFetching=!0),o.collectWindowErrors||(o.collectWindowErrors=!0),(!o.linesOfContext||o.linesOfContext<1)&&(o.linesOfContext=11),void 0!==e&&e.exports&&n.module!==e?e.exports=o:"function"==typeof define&&define.amd?define("TraceKit",[],o):n.TraceKit=o}}("undefined"!=typeof window?window:global)},"./webpack-loaders/expose-loader/index.js?require!./shared/require-global.js":function(e,n,t){(function(n){e.exports=n.require=t("./shared/require-global.js")}).call(n,t("../../../lib/node_modules/webpack/buildin/global.js"))}});
If you want to improve the chances that your website will work in future versions of all web browsers, consider validating the code for your web pages. In layman's language, this means that you should check that the underlying code of your web page, called "HTML" and "CSS", has no syntax errors. You don't actually need technical knowledge of HTML and CSS to validate the page, since you can use one of the numerous free web page validators around to do the hard work. On the other hand, if the validator tells you that your page has errors, it may sometimes be hard to figure out what's wrong (and whether the error is actually a serious one) if you don't have the requisite knowledge. Having said that, some validators actually give concrete suggestions on how to fix your code, and one of them, called "HTML Tidy", is even supposed to be able to fix errors for you.
A domain name is the virtual address of your website. Ours is websitebuilderexpert.com. That’s where you find us. The New York Times’ is nytimes.com. That’s where you find them. And so on. Your site needs one too, and when setting up a WordPress site it’s something you may have to take care of yourself. Bluehost lets you choose a domain for free as part of the signup process.
×