When it comes to building web applications that are integrated with your Salesforce instance, you generally have three options:
Salesforce offers a number of solutions for building web applications but each has distinct flaws:
While site.com supports authenticated pages, dynamic content, and data forms, there is no way to write code to integrate with third party libraries. In addition, it seems fairly clear that site.com was mainly meant for web sites as opposed to sophisticated web applications.
Force.com is an improvement over site.com in that it allows for integration with third party services using Apex code. The issue with Force.com sites, however, is they have effectively been deprecated and replaced by Salesforce Communities. Officially the product isn't deprecated, but in order for users to login (authenticated users), they must have a Customer Portal license. This license is no longer available to new Salesforce customers. If you were a Salesforce customer before this change was made, then you may be grandfathered in. However, even the High Volume Customer Portal Licenses (which are $1 / user / month) are still costly if you have hundreds of users. In addition, this license type is very limited.
Customer Portal suffers from the same flaws as Force.com sites - it's deprecated / replaced by Salesforce Communities and even if you use it, the user licensing model is fairly costly.
Force.com (Platform) is similar to the Force.com sites and Customer Portal in that you can build a fully functioning web application using Visualforce and Apex. The challenge, however, is that the user licensing model is even more costly - the cheapest license is $25 / month / user.
Communities seem to improve over all other options thus far. You can build Force.com Site pages to support sophisticated pages and use Apex controllers to communicate with third party libraries. However, there are still several challenges. First, it is expensive - usually starting at $1,000 / month / community! In addition, this option (and really all other previous Salesforce options) still seem to suffer from the following key issues:
Given the flaws of the Salesforce solutions, we recommend that you consider the next two options.
To build a web application from scratch, you will need to build your core functionality as well as general features such as Login, Registration, etc. In addition, you will need to setup the infrastructure and application architecture components (see a list of features provided by Web App Builder for more detail).
If you have resources to do this, then this might be a good option for you. However, many people find this a little overwhelming and they really just want to get to work building out core features that make their web application unique and compelling. They don't want to spend a bunch of time and money on the nitty gritty technical stuff such as the infrastructure / application architecture or on common non value-adding features such as registration and login.
So if the Salesforce solutions aren't great and building from scratch is out, what do you do? The answer - Web App Builder. Web App Builder overcomes all of the key limitations of the Salesforce solutions and provides all of the base infrastructure components, common features, and application architecture.