This document discusses best practices for structuring large GWT applications. It addresses challenges like supporting different features based on runtime, development stage, or audience. Solutions proposed include using plugins determined at compile-time and a publish/subscribe messaging system. Another challenge is enabling server-side capabilities to change, like for different environments. Bootstrapping and messaging with presence are offered as solutions. The document then introduces Project Errai, which consolidates JBoss GWT efforts. Errai-Bus provides an asynchronous messaging backbone. Errai-Workspaces define UI environments. Errai Widgets complement open-source widget libraries. The techniques aim to provide a common architecture and enable independent component composition.