O que você mais gosta ApostropheCMS?
Um pouco da história de por que começamos a usar o ApostropheCMS primeiro. A maioria dos nossos projetos, ou mais especificamente, nossos clientes, requerem uma maneira de mudar facilmente o conteúdo no site, ou seja, texto, imagens, estilos, etc. Bem, isso é uma noção ou requisito óbvio, você pensaria. No entanto, se você está acostumado a trabalhar com frameworks de front-end como Vue ou React, o conteúdo é gerenciado diretamente via um banco de dados ou, em melhores casos, há um middleware/API. Craft, Sanity, Contentful e outros do ecossistema JAMstack são exemplos de tais ferramentas CMS que podem ser "plugadas" e permitem que o usuário final gerencie o conteúdo dentro de uma interface mais amigável. Esses são ótimos, mas levam tempo para serem implementados do ponto de vista do desenvolvimento. Poderíamos optar por "jardins fechados" como Wix ou Squarespace, que são tecnicamente editores WYSIWYG completos. Esses são ótimos para desenvolvimentos rápidos de sites. No entanto, eles têm quase zero flexibilidade em termos de personalização. Webflow também não serve, pois é limitado em como os dados são manipulados (por exemplo, sem internacionalização) e, mais importante, você não pode ajustar o código da maneira que gostaria.
E então há o WordPress, o CMS em que cerca de um terço dos sites atuais da Internet são construídos. WordPress é um pouco de monstro com sua grande biblioteca de plugins. Por um lado, ele pode fazer muitas coisas bem se você souber quais plugins usar e como usá-los efetivamente em conjunto. Mas tanto o usuário quanto o desenvolvedor podem encontrar barreiras (ou se perder) quando buscam funcionalidades personalizadas que o WordPress em si ou sua gama de plugins não oferece.
Achamos que o ApostropheCMS preenche a lacuna entre uma interface fácil de usar e ainda fornece liberdade ao desenvolvedor para adicionar scripts personalizados, bibliotecas, frameworks, etc., bem como modificar o código-fonte subjacente. Devemos pausar aqui por um momento e realmente apreciar como o ApostropheCMS lida com o "gerenciamento de conteúdo". É um exemplo clássico de um editor WYSIWYG com capacidades de edição em contexto/na página. Não há um aplicativo de painel separado para acessar os dados - a maioria dos dados pode ser alterada através de uma janela modal ou diretamente na página. É tão intuitivo quanto você esperaria - selecione um texto e reescreva-o. Ou precisa fazer upload de uma imagem para seu blog ou construir um formulário? Sem problema! Claro, nem sempre é tão simples, mas é aí que o desenvolvedor pode brilhar fazendo as mudanças necessárias no código e adicionando quase qualquer recurso exigido pelo usuário final. Não há limites, pois toda a plataforma é construída com pacotes de software populares (mais notavelmente Node.js, Express, Nunjucks e MongoDB).
Além disso, por trás do projeto ApostropheCMS está uma grande equipe de pessoas que estão atentamente ouvindo seus usuários, bem como uma comunidade de desenvolvedores em crescimento. Quaisquer questões urgentes podem ser discutidas com a equipe principal em um canal do Discord. E quaisquer adições de recursos ou correções podem ser propostas em um repositório do GitHub. Exatamente o que você esperaria de uma comunidade colaborativa que está constantemente elevando os padrões da plataforma (open-source!). Análise coletada por e hospedada no G2.com.
O que você não gosta ApostropheCMS?
ApostropheCMS é excelente no que pode fazer por padrão. No entanto, uma vez que há necessidade de adicionar ou estender funcionalidades, o verdadeiro desafio começa. Na maioria dos casos, precisamos nos aprofundar para obter certos dados (que geralmente não estão disponíveis através da variável de dados do Nunjucks) do banco de dados. No momento, temos que estender a função `construct()` para conseguir isso. Seria bom ter um armazenamento de dados estilo Vuex e uma busca de dados estilo Axios no lado do cliente (ou possivelmente até no lado do servidor?). Ou, em outras palavras, um sistema de operações CRUD de dados mais direto e mais universal. Ao contrário de outros frameworks, costumávamos nos perder no ciclo de vida da aplicação. Alguns de nossos colegas juniores frequentemente não tinham certeza de quais partes do código eram do lado do servidor e quais partes eram do lado do cliente. Além disso, há tantos métodos para cada módulo (+ considerar herança) usados em todo o projeto. Leva tempo para o desenvolvedor compreender totalmente sua operação e/ou propósito. De fato, a curva de aprendizado é relativamente íngreme para usar o ApostropheCMS de forma eficaz. No final, tudo se resume à legibilidade e extensibilidade do código que achamos que poderia ser melhorada. Gostaríamos de enfatizar que esta é a nossa experiência com o A2; o A3 pode estar adotando uma abordagem melhor. Também é importante notar que a documentação do Apostrophe é bem escrita e ajuda muito a navegar pelos "funcionamentos internos" do sistema estabelecido. Análise coletada por e hospedada no G2.com.