A computer system is used to create an application. An application is created using an authoring environment. The application is converted into a master application template by creating an application representation and creating associated metadata that define at least one allowable modification that may be made to the application representation. The master application template may be certified. A child application template is derived from the master application template by deleting at least one allowable modification of the master application template, or by deleting, adding, or modifying at least one constraint to at least one allowable modification of the master application template, where the effect of the deletion, addition, or modification is to reduce the scope of the allowable modification to the child application template source code. The child application template is used to create an application.