¿Qué es lo que más te gusta de ApostropheCMS?
Un poco de historia sobre por qué comenzamos a usar ApostropheCMS primero. La mayoría de nuestros proyectos, o más específicamente, nuestros clientes, requieren una forma de cambiar fácilmente el contenido en el sitio, es decir, texto, imágenes, estilos, etc. Bueno, eso es una noción o requisito obvio, pensarías. Sin embargo, si estás acostumbrado a trabajar con frameworks de front-end como Vue o React, el contenido se gestiona directamente a través de una base de datos o, en mejores casos, hay un middleware/API. Craft, Sanity, Contentful y otros del ecosistema JAMstack son ejemplos de herramientas CMS que pueden ser "enchufadas" y permiten al usuario final gestionar contenido dentro de una interfaz más amigable. Esos son geniales pero toman tiempo para implementar desde un punto de vista de desarrollo. Podríamos optar por los llamados "jardines cerrados" como Wix o Squarespace que son técnicamente editores WYSIWYG completos. Esos son geniales para desarrollos rápidos de sitios web. Sin embargo, tienen casi cero flexibilidad en términos de personalización. Webflow tampoco es suficiente ya que está limitado en cómo se manejan los datos (por ejemplo, no hay internacionalización) y, más importante, no puedes modificar el código de la manera que te gustaría.
Y luego está WordPress, el CMS en el que se construyen alrededor de un tercio de los sitios web actuales de Internet. WordPress es un poco un monstruo con su gran biblioteca de plugins. Por un lado, puede hacer muchas cosas bien si sabes qué plugins usar y cómo usarlos efectivamente en conglomeración. Pero tanto el usuario como el desarrollador pueden encontrarse con obstáculos (o perderse) cuando buscan funcionalidades personalizadas que WordPress en sí mismo o su gama de plugins no ofrece.
Creemos que ApostropheCMS llena el vacío entre una interfaz fácil de usar y aún proporciona libertad al desarrollador para agregar scripts personalizados, bibliotecas, frameworks, etc., así como modificar el código fuente subyacente. Deberíamos hacer una pausa aquí por un momento y realmente apreciar cómo ApostropheCMS maneja la "gestión de contenido". Es un ejemplo de libro de texto de un editor WYSIWYG con capacidades de edición en contexto/en página. No hay una aplicación de panel de control separada para acceder a los datos: la mayoría de los datos se pueden cambiar a través de una ventana modal o directamente en la página. Es tan intuitivo como esperarías: selecciona un texto y reescríbelo. ¿O necesitas subir una imagen para tu blog o construir un formulario? ¡No hay problema! Por supuesto, no siempre es tan simple, pero ahí es donde el desarrollador puede brillar haciendo los cambios necesarios en el código y agregando casi cualquier característica requerida por el usuario final. No hay límites ya que toda la plataforma está construida con paquetes de software populares (más notablemente Node.js, Express, Nunjucks y MongoDB).
Además, detrás del proyecto ApostropheCMS hay un gran equipo de personas que están escuchando atentamente a sus usuarios, así como a una creciente comunidad de desarrolladores. Cualquier problema urgente se puede discutir con el equipo central en un canal de Discord. Y cualquier adición de características o correcciones se pueden proponer en un repositorio de GitHub. Exactamente lo que esperarías de una comunidad colaborativa que está constantemente llevando la plataforma (¡de código abierto!) a estándares más altos. Reseña recopilada por y alojada en G2.com.
¿Qué es lo que no te gusta de ApostropheCMS?
ApostropheCMS es excelente en lo que puede hacer por defecto. Sin embargo, una vez que surge la necesidad de agregar o extender funcionalidad, comienza el verdadero desafío. En la mayoría de los casos, necesitamos profundizar para obtener ciertos datos (que generalmente no están disponibles a través de la variable de datos de Nunjucks) de la base de datos. En este momento, tenemos que extender la función `construct()` para lograr eso. Sería bueno tener un almacén de datos al estilo Vuex y una obtención de datos al estilo Axios en el lado del cliente (¿o posiblemente incluso en el lado del servidor?). O, en otras palabras, un sistema de operaciones CRUD de datos más sencillo y universal. A diferencia de otros frameworks, solíamos perdernos en el ciclo de vida de la aplicación. Algunos de nuestros colegas junior a menudo no estaban seguros de qué partes del código eran del lado del servidor y qué partes eran del lado del cliente. Además, hay tantos métodos para cada módulo (+ considerar la herencia) utilizados en todo el proyecto. Al desarrollador le lleva tiempo comprender completamente su operación y/o propósito. De hecho, la curva de aprendizaje es relativamente empinada para usar ApostropheCMS de manera efectiva. Al final, se reduce a la legibilidad y extensibilidad del código que creemos que podría mejorarse. Nos gustaría enfatizar que esta es nuestra experiencia con A2; A3 puede estar adoptando un mejor enfoque. También es importante señalar que la documentación de Apostrophe está bien escrita y ayuda en gran medida a navegar por los "entresijos" del sistema establecido. Reseña recopilada por y alojada en G2.com.