Software applications that come in both standalone desktop versions and web-based versions can suffer from a large array of disparities between them, both in function and user experience. This is due to the fact that each version utilizes a different application code base. Developing and maintaining different application code bases can be very costly, even if there are many similarities between the them. Developers will carry over expectations and assumptions from one code base to the other where they do not apply and will introduce bugs that can be costly to sort out. Often times, the bugs are not detected until the application is deployed.