Dans de nombreux cas l'usage d'un CMS comme Joomla! (Système de Gestion de Contenus) convient très largement aux besoins du client, qu'il soit de faire un site vritrine ou une site marchand. Il existe une grande variété de CMS Open Source (Joomla; Wordpress et Drupal en tête) qui correspondent aux profils et besoins de tous. Cependant dans des cas où le projet s'éloigne du modèle classique d'un site web avec sa gestion de publication de contenus et workflow associé, il peut etre avantageux de se tourner vers d'autres technologies web, toujours Open Source mais plus dédiées au développement d'un projet personnalisé.
On pense alors à utiliser des frameworks PHP (par exemple) comme Symfony, Zend, Cake PHP ou d'autres. Ces outils, s'ils sont nettement plus larges que les CMS, ne peuvent pas être mis dans les mêmes mains. En effet ils requièrent des développeurs PHP confirmés. Officiellement les frameworks PHP sont conçus pour développer aussi des sites web mais ils servent tout aussi largement au développement d'applications web métier dédiées. Les temps de développement d'un projet web avec un framework est souvent beaucoup plus long qu'avec un CMS mais le résultat est souvent plus maintenable, cohérent et évolutif si le ou les développeurs ont suivi les règles de l'art. Mais les coûts sont aussi plus élevés.
Dans certain cas le choix CMS/Framework est plus complexe car il s'agit de site web ou d'intranet comportant certaines fonctions dédiées. Tout développer avec un framework prendrait trop de temps quand une large portion du projet serait faite plus rapidement avec un CMS. Mais l'usage simple d'un CMS est souvent peu adapté aux parties métiers dédiées.
Il existe des solutions intermédiaires comme avec le Framework Joomla! qui permet des développements dédiés selon les règles de l'art tout en restant à l'intérieur d'une solution CMS. Dans cet exemple l'agence web peut développer exactement ce que demande le cahier des charges du client comme il le ferait avec un framework PHP standard mais reste intégré au site. Joomla! est un des rarrissimes CMS qui repose sur un véritable framework PHP.
On peut aussi citer l'approche CCK (exemple Seblod pour Joomla!) qui permet, tout en restant dans le CMS, de développer avec quasiment aucun code PHP des applications métier dédiées. C'est une approche qui permet des développements plus rapides et donc moins onéreux qu'un développement 100% framework.