Price and complexity - mostly. In all seriousness, the difference between these two projects is really blurred for a lot of clients and developers alike, especially with the rise of modern front end technologies that give static websites so much power in their functionality.
For the majority of small businesses and freelancers, you’re looking for a website. A web application is a term used for web projects that have a larger scope of functionality than your average website (think content management systems, booking systems, social media platforms like Facebook, Twitter, etc.).
Common Use Cases for a Website
You probably need a basic website if:
- You need to attract attention from your customers/audience and give them a way to contact you
- You need to sell an online product through another hosted service like Shopify
- You need to display your work and communicate with your customers/audience
- Display information from another external service provider (ie. Instagram feed, Google Calendars, or any other API)
- You need to be able to edit the content on your website without the help of a developer (pst... fellow developers, check out the JAMStack)
When Your Website Borders a Web Application
To keep this as simple as possible, if you’re envisioning building a product or service, you’re probably entering the realm of a web application.
The complex processes that are required to deliver web-based services and products usually require a database and server to run the application that handles all the logic of your app. This server and database interact with the website to make the magic happen. As you can imagine, this project gets a lot more complicated and therefore expensive - pricing something like this is a separate task in itself. Based on the complexity of your application, it could be anywhere from $10,000 to hundreds of thousands of dollars to develop.
You’re probably in the market for a web app if you’re looking for the following:
- User authentication and permissions
- Allowing users to upload, delete and edit data
- Storing extensive amounts of data
- Custom e-commerce and payment features
- And so much more…
This list is just a few examples and is in no way exhaustive, but hopefully, it gives you an idea of the features that fall outside the scope of a regular website. It’s also worth mentioning that some of these features can be implemented by talented front end developers using modern tools (ie. the JAMStack), meaning that some lightweight web apps won’t require a server and the costs involved there. Speaking of costs, let's talk about maintaining a website and/or web app.
Maintaining a Website
There really isn’t that much to it, if you develop the site right. If a developer codes the site, there are no nasty WordPress updates and such to keep up with. Of course, there are inevitably going to be small bugs that arise throughout the life of a site, and those will have to be fixed (generally, companies offer a time period after launch that they handle these free of charge, ours is 1 year).
Other than that, the only maintenance that will have to be addressed is keeping up with domain name registration, hosting services, and content updates (this should be done through a content management tool that the client can access if they choose, preferably). There will come a time when you may want to update the design of your site some years down the road to stay up to date, but this doesn’t fall under regular maintenance, it’s more like replacing your car or the entire transmission.
Maintaining a Web Application
Higher scope and functionality ultimately means more overhead and chances for things to go wrong…
A web application is much needier than a website. To start, the server has to be maintained - security, uptime, and backups all need to be taken care of. Next up, you will probably have a database. Someone has to look after that and make sure it’s also secure and you’re not at risk for losing all your data or falling victim to a hack. On top of all this, you also have the website on the front end that needs to be kept in check, so it plays nicely with all these other components of your application.
Bugs in the app are always going to creep in at some level of your app, there are just too many moving parts and use cases for things to go wrong. Most companies/developers building these sorts of applications offer a retainer for these or package it into the fixed price.
Finally, 99% of the time you are going to need to have some sort of testing in place. Testing is a very opinionated topic and ultimately it’s up to you and your developer to decide how important it is to your application. It could be as simple as running checks each time your app is launched/updated or as complex as running automated tests at set intervals throughout the day. Either way, someone has to build and maintain this, and that cost has to be taken into account somewhere in the project.
Hopefully, this cleared the air on what kind of project you need for your business and gave you some insight into what goes into projects of different scope. If you want an in-depth breakdown of the project you have in mind, feel free to contact us at firstname.lastname@example.org for a free quote.
Thanks for reading!