Different options to build a website
5 min read

Different options to build a website

There are so many options nowadays to build and host a website, with all the cloud services, SaaS services and different kind of software and frameworks available, it's easy to get lost. Here's my take on the subject from a software developers perspective and my opinion on the best solutions at this moment.

Please note that I had to make some assumptions to simplify this subject. In tech world there are as many solutions as there are problems, so you might be able to work around some of the issues that I raise here regarding specific technologies.

The traditional way: Wordpress

Building websites the traditional way usually involves Wordpress, an open source software, which almost half of the websites in the whole Internet uses. Wordpress requires a programming language called PHP, which is installed on a server.

Wordpress is a CMS (content management system) so it offers a user interface where you can login to the Wordpress directly and edit the pages. The page data is stored in a database which also runs on the server.

You can rent a webhotel to host the Wordpress site for you. Webhotel is an easily managed webserver, which multiple customers share together. It can be quite cheap, but also not very fast, because you share the resources.

To add features to a Wordpress site, you install plugins through the graphical user interface. Some of them can be free but for the better ones you need to pay extra.

Being so popular, Wordpress is the most attacked software in the Web. So whenever a new security issue is found, you need to be fast update the software, and the plugins.

Developing a Wordpress site can be tricky because normally you only have one "instance" of it. So when you make changes to the website, the changes are then live on the internet. It is difficult to create a new a new layout for example without affecting the live site in the process.

Wordpress requires a server under it and this server is a computer actually located somewhere in the world. So visitors from other side of the world are probably going to get more latency when visiting your website. This means it's going to be slower experience for them.

The modern way: Jamstack

Modern way of writing websites goes back to the roots of the Web, where websites consisted of just html, css and javascript files. This is called a static website and the modern workflow to build one is  called Jamstack.

Jamstack combines many ideas behind the word. I won't go to the details, but the main things are that the website is separated from the data and the website is static , meaning that it doesn't depend on a programming language on a server. The website is just simple files: html, css and javascript. This means it's fast, because the Internet browser of the user doesn't ever have to wait for the server to run and interpret code. It just downloads the files and displays them.

The developer however doesn't write html, css and javascript directly, but uses modern command line tools and web frameworks to build the website. It makes the development process easier, faster and more enjoyable.

The modern workflow allows versioning the website, so that the developer can easily have many versions of the website. He can redesign any part of the web site in peace, on his computer, and only publish it to the web when you are happy with it. It is easy to go to a previous version of the site if needed.  

Static websites are a lot safer than dynamic websites because there is no attack surface. That's however not the whole truth. You most likely want to use some functionality on the website for example analytics, reservations, forms, comments etc. To have this functionality you either need to pay for a service and use their software on your site or the developer needs to install open source versions of the software on a server and then maintain them for security updates.

One upside to simple static websites is that they can be easily hosted and there are many solutions to choose from. There are even some free options to host a static website and also automatically replicate the site to multiple corners of the world (cdn). This means whenever a user visits your website, they get the copy nearest to them, so the latency is low and this makes the website fast to load.

<git based CMS>

The closed way: website builders

There is a third option. Website builders have existed for a long time but they have come a long way for sure. From all the website builders of today, Webflow is probably the most modern with lot of functionality. If you just need a simple website, then Squarespace would be another good option. Confusingly, Wordpress.com is also a SaaS version of the Wordpress (wordpress.org) software.

The upside from CMS systems like Wordpress apply here too: you can login and edit the content and the layout yourself. However, there are more limitations in what you can and can't do with website builders than building a custom website. You are usually using ready-made templates to build the website, which can be great if you just want a website. But when you want to make changes to the layout though, editing the templates can be hard or impossible, depending on the service.

Usually there is also no separate “development environment”, what you edit is "live", there is no undo. There might an option to copy your site and then work on the copy though.

Website builders are offered as a SaaS service so it doesn't require separate hosting. You just pay for the hosting in the price of the software.  Usually the hosting is not as fast as a dedicated server or global replication (cdn). Also when building a website from templates, the result always has extra markup compared to a custom built website, making the website slower to load.

The biggest downside for me in using a website builder however is, that you become totally dependent on the company. So if the company decides on pricing changes, policy changes or the quality of their hosting, customer service or availability drops, there's not much you can do about it.

Also, if your site saves user data, you need to check where in the world the data is stored and this can make it more difficult to follow GDPR regulations.

The comparison

Let's now compare these different approaches to build a website.

Wordpress Static website Static website
+ git based CMS
Website builder
No need for security updates ❌ No ✅ Yes ❌ No ✅ Yes
Fast and light ❌ No ✅ Yes ✅ Yes ❌ No
Updating content without technical knowledge / developer ✅ Yes ❌ No ✅ Yes ✅ Yes
Independent ❌ (No) ✅ Yes ✅ Yes ❌ No
Hosting without server/webhotel ❌ No ✅ Yes ✅ (Yes) ✅ Yes
Separate versions for development ❌ No ✅ Yes ✅ Yes ❌ (No)

Conclusion

All the different options have their places. Wordpress is a tested and popular CMS solution that is widely used, but CMS solutions like it are slower, need security updates and it's very complicated to test big changes beforehand.

Website builders offer the whole package as a service, are easy for non-developers to use too, but are limited in functionality and speed and you are stuck with the platform and company that you choose.

As a web developer myself, I would definately go with the Jamstack and the static website route today as I prefer modular solutions with open source software. Static sites are are fast and enjoyable to develop with modern tools.

As for the different hosting options for the static website.. well that's a blog post for another day. 😊