1. A method for executing a cross-platform application in a web browser-based shell, comprising: instantiating one or more shared components in the browser-based shell, the one or more shared components exposing a common runtime environment to widgets loaded into the browser-based shell; receiving, from an application server, a first workflow definition representing a first step of a workflow, and the first workflow definition specifying first widgets to be loaded into the browser-based shell, wherein the first widgets comprise modular components that each perform a function represented by the first step of the workflow, and wherein each widget comprises a user interface definition; obtaining, from one or more of a remote source, a local cache, or a temporary memory, the first widgets; loading, into the browser-based shell, the first widgets; and generating a user interface according to the first workflow definition, based on the user interface definition associated with each widget of the first widgets, wherein generating the user interface exposes the function represented by the first step of the workflow to a user which, when invoked by a user, initiates a transition to a second step of the workflow.