What is the difference between a website and a web app?

What is the difference between a website and a web app?

It may come as a shock to a lot of people but a website and a web application are two different things, a lot of people use the two terms interchangeably and while it isn't harmful in the average scenario it can be costly when you're trying to have one built and mention the wrong type of web platform.

A website is made up of static webpages, it's typically made using HTML, CSS, and Javascript, static webpages don't have much functionality to them, sure you can click things and it'll take you to other pages and the likes however in terms of interactivity, a website is as interactive as a CV. A web application (or web app) is made up of interactive web pages which are dynamic, A web application can be made with so many languages (though at runtime they are translated into Javascript in order to run on the browser) what this means is that it can respond to users, you can log in, post things, request things, and get automatic responses. An example is Hasnode, hashnode.com is a web app. In terms of interactivity, a web app is like a video game.

By now you realize that a website is cheaper and faster to create than a web app, if you need a web platform that gives information, doesn't have too many pages, and will not require a lot of modification you should go with a website if you want a web platform that is interactive and is likely to grow a lot in the future then you need a web app. Make no mistake, you can collect some form of data from users with a website, it's however a one-way connection where they can give you data but you can't respond to said data. While a lot of software engineers feel that excel isn't a database, I have been able to link a form on a static website to a Google sheet thereby allowing me to receive data from the user. There are however limitations to the amount and type of data you can receive from a user using a website.

In conclusion, at times some web projects don't need so many fireworks, understanding your needs (as a client) or understanding the client's needs (as a software engineer) is critical to ensuring mutual satisfaction between you and the client. As developers, we shouldn't let our need to prove how good we are at coding get in the way of customer satisfaction or cost them more than they should pay. They may not figure out what you've done but there will be some level of deep-seated resentment that you don't really need. Always choose the simplest way to get things done, you don't win trophies for complexity.