Como desarrollador web independiente, ¿cómo decide uno usar un CMS o codificarlo todo?

La regla genérica es que use un sistema CMS a menos que no haya otra opción. Es preferible usar el código existente, ya que acelera el desarrollo y ya comienza con un marco (generalmente) bien probado.

Pero debe familiarizarse con múltiples sistemas CMS para poder elegir el más adecuado para cada trabajo. WordPress es un buen marco, por ejemplo, pero podría no ser la opción preferida para su cliente.

En la situación ideal, escribiría su propio sistema CMS o personalizaría uno existente para usted y lo usaría para su desarrollo. Este sería su proyecto insignia y se usaría en su propio sitio web de perfil.

También puede ir un poco en el medio utilizando un entorno de desarrollo con un marco MVC. El uso de MVC mantendrá su código organizado en el proyecto que realice y acelerará el desarrollo. Como la mayoría de los marcos MVC tienen un diseño genérico para páginas web, están un poco más cerca de un sistema CMS que comenzando desde cero. En combinación con algunos otros marcos, ya podría tener las herramientas para comenzar con la codificación sin un sistema CMS completo, ya que los marcos le proporcionan lo que necesita.

Pero en general, es una decisión que debe tomar por proyecto. Los sistemas y marcos CMS no son balas de plata que pueden manejar cualquier cosa.

Hubo un momento en que esto estaba en mi mente antes de cada nuevo proyecto más pequeño. Desde hace unos años, mi solución ha sido utilizar un CMS de estilo framework (o CMF) como Processwire (mi favorito para los últimos 20 proyectos). Obtiene lo mejor de ambos mundos: el extenso conjunto de herramientas y la interfaz de usuario del CMS, pero también una completa libertad para crear código que no necesariamente se basa en el CMS.

En general, hay tantas cosas que considerar incluso en los proyectos web más pequeños que un CMS junto con un marco CSS básico hace que la vida del profesional independiente sea más fácil y garantiza la compatibilidad básica, y la capacidad de actualizar por seguridad, etc.

Para el desarrollo rápido de aplicaciones, puede usar CMS, Framework, etc. Pero para aprender cómo funciona un sitio web o cómo personalizar el CMS, debe codificarlo.