yo he creado cms de cero y sé como hacerlo, primero debes establecer ciertas cosas importantes:
Función del CMS, hay cms para blog, para foro, para musica, para videos, etc.
En base a la función del CMS, tienes que modelar la base de datos, o bien algun otro sistema de almacenamiento, por ejemplo XML.
Luego de modelar el almacenamiento de datos, tienes que pensar en la arquitectura de la aplicación, si usas un lenguaje orientado a objetos deberás especificar namespaces, clases y métodos, si usas un lenguaje lineal, distribuir de forma intuitiva los archivos segun su función.
Después deberás pensar en cómo el usuario final va a manejar tu sistema, necesitas crear un panel de control lo más versátil posible.
Finalmente viene la tarea de crear algoritmos seguros combinando todo lo anterior, y prácticamente entras en la fase de programación pura y dura.