En mayo del 2003, dos jóvenes decidieron lanzar un proyecto de software libre para crear CMSs, basado en un proyecto anterior discontinuado, llamado b2/cafelog. Nunca se imaginaron que ese proyecto llegaría, 18 años después, a ser el soporte de más del 40% de los sitios publicados en todo internet.
Por supuesto, estoy hablando de WordPress.
La evolución de WordPress
Durante años, el CMS se desarrolló como tal y se mantuvo dentro del rubro en concreto. Siempre tratando de mejorar la experiencia de sus usuarios:
- En 2005 se incorporó el editor TinyMCE.
- En 2007 creó la API de Widgets y su sistema de administración, el sistema para organizar posts por categorías y las primeras herramientas para posicionar mejor en buscadores.
- En 2008 se mejoró la interfaz del administrador, se incluyó el installer para plugins y se comenzó a expandir las funcionalidades.
Aquí es dónde se encuentra el primer punto de quiebre, ya que es el momento en el que se convierte en un sistema realmente extensible. Todavía con limitaciones, pero para la época era muchísimo lo que ofrecía.
El siguiente punto de inflexión en este sentido se dio entre 2013 y 2015, momento en el que se hizo pública y se implementó la Rest API en el core de WordPress.
De esta forma, en el transcurso de 5 años amplió las posibilidades de integración casi hasta el infinito. Por medio de plugins garantizó la extensibilidad y por medio de la API la conexión desde diferentes entornos. De esta forma, todas las características que WordPress tiene disponibles se pueden implementar para proyectos de cualquier tipo.
Y no solo se cuenta con la posibilidad de crear, modificar y reemplazar funciones, sino que además se siguió trabajando en la experiencia de los usuarios. Es por ello que entre 2015 y 2017 se llevó a cabo el proceso de incorporar Gutenberg como un nuevo editor que reemplazaría al gran TinyMCE, que nos acompañó por más de 10 años.
Esto no solo mejoró inmensamente la experiencia de los usuarios que gestionan contenido, quienes ahora pueden ver en el administrador una vista muy similar a la que luego tendrán en el front, sino que también sumó herramientas modernas y divertidas para los desarrolladores. Todo el sistema de Gutenberg funciona con React y Redux como base de su entorno y esto cambió las perspectivas de crecimiento a futuro para este nuevo WordPress, que ya puede considerarse un framework.
Pero la pregunta ineludible es:
¿Por qué usar WordPress en lugar de otro framework?
La respuesta es bastante simple. Justamente por su trayectoria y su administrador. Cuando desarrollamos un sistema, no debemos perder de vista que tanto el sitio como su sistema de administración será utilizado por usuarios y debemos pensar en ambos perfiles.
Los usuarios en el centro del desarrollo
Para los usuarios que interactuarán con el sitio, tenemos infinidad de posibilidades, gracias a la Rest API de WordPress. Podemos desarrollar nuestras apps en el lenguaje y entorno que queramos, sin limitaciones. Incluso podemos desarrollar para diferentes entornos como web y mobile sin tener diferentes backends. Esto nos garantiza no tener limitaciones tecnológicas para plantear la experiencia de los usuarios finales.
Además, esta herramienta nos permite aprovechar al máximo la experiencia de los usuarios que manejarán el sistema usando un administrador con el que ya tienen afinidad. Al mismo tiempo, no limita las posibilidades de brindarles las posibilidades que sean necesarias a esos usuarios, ya que permite ampliar dicho administrador y generar una experiencia súper personalizada.
Si a esto le sumamos la posibilidad de moldear las bases de datos a gusto, podemos ver que las principales características de un framework están cubiertas. Aunque es cierto que en este punto se podría avanzar un poco más con la incorporación de herramientas como un ORM. Tal vez en un futuro nos sorprendan con esto.
Por supuesto, esta teoría tiene detractores que nos dirán que WordPress nunca va a ser un framework, pero en este caso, tomar una posición fundamentalista puede hacer que nos perdamos de utilizar una gran variedad de herramientas que van a mejorar la experiencia de todos tus usuarios y eso siempre debe ser lo principal.