XoopsやOpenPNEで使われているSmatyテンプレートエンジンは、コンテンツをプログラムから分離して開発するのに適している。アプリケーションデザインを志す人はSmartyを学習し使いこなせるようになると便利である。Smartyの日本語訳ドキュメントもある。
オープンソース開発のプログラムを使っているときに気になるのが、そのプログラムをアップグレードしたときに旧プログラムを使って作成したコンテンツの上位互換性・移行性が確保できるかということである。せっかく苦労してコンテンツを開発したのにプログラムをアップグレードしたら既存コンテンツが使えないというのでは困る。とくに人気のあるオープンソースは開発も活発で、機能追加やバグ修正が多い。毎月一回アップグレードというものもある。新しいリリースを使いたいが移行したら動かないというのでは困る。
Webの構成やページのデザインなどほとんどの部分はHTMLとCSSで追加・変更できるが、プログラムに手を入れないと変更できない部分もある。そのプログラムがPHPやPerl、JavaScriptなどWeb用のスクリプト言語で書かれていると、見よう見まねで改造できるものである。しかし、変に改造するとアップグレードのときに再度書き直しをしなければならず面倒である。これに対処するためにSmartyというテンプレートエンジンが用いられる。
Smaryはphpで書かれたWebアプリケーションのロジックとコンテンツを分離して管理することを容易にしてくれる。CMSやSNSなどのようにコンテンツが頻繁に追加・編集されるアプリケーションでは、ロジックの開発者とアプリケーションのデザイナは違い、並行開発するほうが効率的である。同時にSmartyをそのアプリケーション利用者に公開することにより、利用者側で独自のデザインができる。ロジックが変更されてもアプリケーションのデザインは影響されないというメリットがある。