1. A computer-implemented method of providing a communications gateway between software components of a browser-based software application, the method comprising: registering at the gateway a first dispatching application programming interface (API) wrapper and a first listening API wrapper for a first component of the browser-based software application the first application component performing a first function of the application; registering at the gateway a second dispatching API wrapper and a second listening API wrapper for a second component of the browser-based software application, the second application component performing a second function of the application; receiving an action at the gateway that targets the first application component, the first application component's listening API wrapper receiving the action for execution by the first application component; and receiving, after the execution of the action, an event at the gateway that communicates a state of the first application component, the first application component's dispatching API wrapper broadcasting the state, and the listening API wrapper of the second application component receiving the state.