se per "demo" intendi solo layout diversi (sia come base che per le singole view), potresti pensare di

- o inserire una cartella "demo" all'interno della view/layout e inserire li dentro gli elementi demo
- o aggiungere un suffisso "demo" ai file della view che si possano vedere solo via demo

es punto 1:

se hai tipo una cartella app/views/layouts/default.tpl fai una cartella app/views/layouts/demo/default.tpl ; se hai una cartella app/views/controller_name/controller_method.tpl puoi fare una cartella app/views/controller_name/demo/controller_method.tpl

ovviamente sta al tuo buon cuore di settare correttamente il sistema per fargli capire se sta in modalità demo o meno, e quindi caricare le view nella cartella demo (se esistono, altrimenti carichi quelle normali) o quelle normali

es punto 2:

da app/views/controller_name/controller_method.tpl a app/views/controller_name/controller_method.demo.tpl

Questo se stiamo parlando solo di modifiche al layout, perchè se poi devi cambiare anche le operazioni dei controllers o le interazioni coi model o altro, allora devi proprio pensare a due app diverse, una di "produzione" e una di "sviluppo" dove fare tutte le demo del caso.

Ovvio che dovrai permettere al sistema di supportare tale comportamento, modificando se necessario anche il .htaccess