WebHub tracks surfers, giving them a unique session ID each time. This means your cgi program can deal with them as individuals. It's so easy most people don't even realize this is a huge obstacle in most cgi systems.
WebHub saves state automatically. This eliminates lots of programming on a new project. We save 2 kinds of data about each surfer: (a) all their input data from HTML forms, including checkbox values and (b) the 'state' of the action components they are using. (b) means that you can share the components such as TWebDataGrid (in 1 .exe) between surfers and they each get to have their own property settings. For example on the grid, displaySet is tracked for each surfer individually.
This comes back to OOP -- WebHub is object-oriented and the architecture covers a lot of bases that most people haven't even thought of yet. See Delphi In-Depth to find out more about the OOP design issues.
Cross-server. Microsoft IIS, Apache ---ask about others.
Open architecture. Other developers can add TwhWebAction components that fit into the class hierarchy smoothly to provide additional features. You can also customize the TwhApplication, TwhSession and TwhPage objects as needed.
Performance. WebHub pages are typically served in 15-50 milliseconds. Mileage may vary depending on your database design.
Scalable. WebHub scales to service multiple surfers per second on a single machine, and is compatible with hardware- and software-based load balancing.
Separation of HTML from Pascal. WebHub HTML files are kept separately, letting you or the HTML specialist(s) make changes to the page layout without requiring recompilation.
A given version of WebHub has identical features across different versions of Delphi. Any Delphi source code will recompile without changes if you upgrade Delphi annually. The release notes keep track of these sorts of details, and you can always check with Technical Support if you need to find about specific issues.