1. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor, cause the processor to customize and configure a user interface, the customizing and configuring comprising: providing source code and metadata for a base set of user interfaces, wherein the base set of user interfaces is executed on multiple channels; configuring the metadata for a specific channel; projecting, for the specific channel, one or more task flows from a task flow template that comprises a set of control flow rules that control navigation of the user interface by sub-setting the task flow template into the one or more task flows, wherein each task flow comprises a subset of the control flow rules, and wherein each task flow is configured for the specific channel; and projecting, for the specific channel, one or more regions from a base region, wherein a region comprises a user interface component that controls an appearance and a functionality of at least a portion of a page of the user interface, wherein each region is configured for the specific channel, and wherein each region differs in appearance and functionality from the base region.