Meni je taj smarty mnogo ružan. Nisam php programer, ali kad moram koristim TWIG
http://twig.sensiolabs.org/ za templating.
Razmisli i o renderovanju templatea na klijentu (Handlerbars, Mustache ...). Kod na klijentu stvarno može lepo da se razdvoji i upotrebom RequireJSa (AMD).
Handlebars ili Mustache - templating
RequireJS - za organizaciju modula, dependency injection, optimizaciju js-a itd
BackboneJS, EmberJS - eventualno ako praviš single-page aplikaciju.