Você está na página 1de 28

ANÁLISE DE CMS HEADLESS

PARA O PORTAL DE
DESENVOLVEDORES DO ITAÚ

Por​ ​Ruben Paschoarelli

Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros​.
Sumário

1.O AUTOR 3
2.O QUE É HEADLESS? 4
3.SITUAÇÃO ATUAL DO PROJETO E OBJETIVO DESSE 5
DOCUMENTO

4.JOOMLA 5
5.ALTERNATIVAS : LISTA DE HEADLESS CMS 6
6.TABELA COMPARATIVA : JOOMLA x 3 CMS HEADLESS NODE.JS 7
7.TABELA COMPARATIVA : JOOMLA x 3 CMS HEADLESS PHP 9
8.TABELA COMPARATIVA : JOOMLA x 3 CMS HEADLESS ASP.NET 10
E JAVA

9.REVIEWS DE CMS 12
10.CMS COM MELHOR SCORE 25
11.CMS CLOSED SOURCE 25
12.CMS TESTADOS PORÉM REPROVADOS 25
13.FUTURO ( FRONT-END DESACOPLADO) 26
14.REFERÊNCIAS 27

2
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

1.O Autor
Ruben Marcus Luz Paschoarelli
Front-end Specialist
Full Stack-engineer
8 anos de desenvolvimento web

+ 53 projetos

linkedin.com/in/rubenmarcus
ruben.paschoarelli@zup.com.br

1 . Experiência com Desenvolvimento Front-end:


Angular, React,Vue, TypeScript, JavaScript,JQuery,Arquitetura Front-end,SASS,
CSS in JS

2. Experiência com Desenvolvimento Back-end:


Node.js, PHP, ASP.NET C#

3. Experiência com Desenvolvimento em plataformas CMS:


WordPress, Joomla, Drupal, Ghost, Netlify CMS

4. Atuei em mais de 53 Projetos:


Projetos de bancos: ​Itaú e Santander
E-Commerces: ​Centauro, Under Armour e Printi
Diversos clientes Freelancer dentre eles: ​Samsung, Panasonic,Estadão,
Monsanto

5. Atualmente:
Continuo mantendo os conhecimentos em Front-end, mas com um foco maior em
Back-end e DevOps atuando mais como FullStack.

Contribuindo para a comunidade OpenSource, com traduções de artigos e


documentações referentes a Front-end, publicando no Medium e MDN.

3
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

2.O que é Headless?

Em resumo, é um sistema de gerenciamento de conteúdo como WordPress, Drupal ou


Contentful que é separado do front-end. A principal vantagem dessa abordagem é que
ela é independente de tecnologia, o que significa que o site front-end pode ser criado
usando as ferramentas ou a tecnologia que você desejar. A principal desvantagem é que
você precisa gerenciar dois aplicativos web em vez de um.

Existem CMS que vem como padrão Headless (Baseados em API), e tem alguns que
são Baseados em GIT, geram sites estáticos. E outros que também são baseados em
API mas que não vem nessa arquitetura por padrão e é necessário utilizar plugins.
A vantagem de ser por padrão Headless e Baseado em API , é que: você tem uma fonte
de informação e pode fazer muitas aplicações para diversos dispositivos a partir dela.
O fato de ser uma funcionalidade do core do CMS, indica que a chance de suporte e
atualizações a API Headless, são grandes, ao passo que se for um plugin a chance de
não ser suportado pode ser grande.

O problema de ser baseado em GIT, e gerar sites estáticos, é que isso funciona para
apps com poucas páginas, quando nossa aplicação começa a tomar um tamanho maior,
o tempo de build fica muito grande, além de poder ter problemas em questões como
atualização de conteúdo.

4
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

3.Situação Atual do Projeto e Objetivo desse documento


O projeto do Portal de Desenvolvedores do Itaú, hoje está feito em cima da plataforma
Joomla, junto a módulos da AxWay, como o Api Portal e o Api Gateway, ambos junto
com o sistema de templates do Joomla, não dão independência para o time desenvolver
o back-end e o front-end apartados, fazendo com que o time não consiga desenvolver
de forma mais ágil.

4.Joomla
Joomla é um CMS feito em PHP, que tem mais de 3.3% dos sites feitos em CMS na
web. É um CMS bem completo que utiliza do conceito de módulos , temas e plugins
(assim como Wordpress) para estender seu core. Joomla é um CMS fácil de instalar e
usar, isso se você utilizar apenas as funcionalidades mais básicas dele.
Quando precisa usar funcionalidades mais avançadas, ou mexer no código do Joomla
para adaptar alguma coisa, a curva de aprendizado e dificuldade de mexer com o
projeto fica maior.
Um dos problemas de ser um dos CMS mais usados na internet, é que ele é alvo de
hackers assim como o WordPress.
E por fornecer muitos plugins de diversos fornecedores, muitas vezes os plugins podem
vir com vulnerabilidades que podem ser exploradas.

Prós e Contras:

PRÓS CONTRAS

👍​ Fácil Instalação 👎​ Alta curva de aprendizado dependendo do que


se faz

👍​ Boa Documentação fácil de Entender 👎​ Customização de plugins e temas difícil

👍​ Nível avançado de edição de usuários 👎​ Poucos desenvolvedores entendem de Joomla

👍​ Muitos plugins 👎​ Não é muito intuitivo

👍​ Open Source 👎​ UI Admin ruim

👍​ Bem organizado 👎​ CMS mais difícil que outros de se usar

👎​ Over Engineered

5
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

👎​ Updates muitas vezes quebram o CMS

👎​ SEO poderia ser melhor

👎​ Headless via plugin (mais difícil de estender e


pode ter problemas com suporte)

5.Alternativas

5.1.LISTA DE HEADLESS CMS:

Sobre os pontos levantados nas tabelas comparativas:

● Headless por default:​ O CMS tem um arquitetura e é feito pensado a Headless


ou se é possivel usa-lo como headless, é feito via Plugins/Módulos

● Customização da API:​ É possível estender / customizar a API do CMS? Quão


difícil é isso?

● Hospedagem:​ Permite self-hosted? Apenas Cloud? PAAS?

● Licença:​ Qual o tipo de licença da aplicação?

● Integrações:​ Com que tecnologias se integra, seja no Front ou no back-end?

● Tecnologia:​ Quais as tecnologias são usadas

● Documentação:​ Quão boa é a documentação? Exige já um nível de


conhecimento nas tecnologias baseadas, ou é detalhada o suficiente para
desenvolvedores mais juniors?

● Curva de aprendizado:​ Qual a curva de aprendizado, em questão de


gerenciamento, código , tecnologias e arquitetura

● Segurança:​ Como a aplicação trata autenticação , proteção de APIS e como é


vulnerável a ataques

6
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

● Data do primeiro e último release:​ É bom saber pra ver se o projeto continua
ativo e sendo atualizado

● Performance:​ O CMS foi construído pensado para performance?

● Clientes:​ Quantos clientes utilizam a plataforma, e qual o tamanho deles?


● Extensível:​ É possível fazer plugins e módulos novos? Qual facilidade para isso?

● SONAR: ​Como o CMS se integra e sai nos testes do Sonar?

● Comunidade:​ O CMS é mantido e expandido pela comunidade?

● Internacionalização: ​Tem Internacionalização nativa ou depende de plugins?

● Organização de Conteúdo:​ É fácil gerenciar e organizar o conteúdo?

● Webhooks:​ O CMS possui webhooks que disparam ações? pode ser usado para
enviar e-mails quando uma página é atualizada, para acionar o build de um site,
para usar push-notification ou qualquer outro cenário que você possa imaginar.

● Features:​ Outras Features?

● Testes Unitários:​ a plataforma suporta Testes Unitários? Já vem pré-configurado


algum framework para testes?

● Score​: Cálculo de PRÓS - CONTRAS

Tabela 1. Joomla x 3 CMS Open Source (Node.js)

CMS Strapi Ghost Apostrophe Joomla

Headless por default ✔ ✔ Via Plugin Via Plugin

Customização da API ✔ x ✔ x
Suporte a Markdown ✔ ✔ x Via Plugin

Hospedagem Local & Cloud, Paas Local, Cloud, PaaS Local Local

Licença MIT MIT MIT GPL 2.0

7
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Facilidade de Fácil/ Possui Imagem Fácil/ Possui Imagem Média/ Não possui Fácil/ Possui
Instalação/ Docker oficial oficial imagem oficial Imagem oficial
Imagem Oficial

Integrações Angular,Vue,React,Ap JS Sdk, x Muitas


ollo,GraphQL,Flutter Gatsby,Next.js, Nuxt

Tech Node.js, MongoDB, Node.js, MySql Node.js,Nunjuncks PHP / MySQL


SQLite, PostgreSQL, ,MongoDB,Expres
MariaDB, MySql s

Documentação Boa e detalhada com Simplista, possui Bem completa, Bem completa
exemplos e tutoriais bastante informações
mas carece de mais
exemplos

Curva de aprendizado Baixa - Média Baixa - Média Baixa - Média Depende do que
depende do nível do depende do nível do depende do nível se quer fazer.
desenvolvedor desenvolvedor do desenvolvedor Pode ser baixa,
se algo simples,
ou bem alta se
algo mais
complexo

CLI SIM SIM SIM SIM

Escalabilidade Alta Alta Alta Alta mais


complicada

Swagger Plugin x x x
Social Login/LDAP Não, mas no x Via Plugin Via Plugin
Roadmap de
desenvolvimento

Segurança Tokens, JWT Tokens,JWT,Encriptaç Bearer Token, API OAuth, Tokens


ão, Keys

Data do Primeiro e 2015,2020 2013,2020 2010,2020 2005, 2020


último Release

Performance Alta Alta Alta Depende da


forma de
utilização

Clientes Walmart, Nasa,IBM Mozilla, Stanford, Michelin,NPM,Pen Santander, Itaú,


Apple silvânia Uni. Toyota

Extensível Sim via Plugins x Sim via Plugins Sim via Módulos
e Plugins

SONAR ✔ ✔ ✔ ✔

Comunidade Ativa Ativa Ativa Ativa

Internacionalização Via Campos de Nativa via plugin


conteúdo com sufixo
diferente

8
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Organização de Via Content-Types Via Pages e Posts Via Content-Types Artigos


Conteúdo

Webhooks Sim Sim via Plugin via Plugin

Features GraphQL, Rest API, GraphQL, Rest API, Plugins Extensions

Testes Unitários Sim - Jest Não Não PHPUnit

Suporte Enterprise Sim Sim Sim Third-Party

Tabela 2. Joomla x 3 CMS Open Source (PHP)

CMS Directus WordPress Cockpit Joomla

Headless por default ✔ Via Plugin ✔ Via Plugin

Customização da API ✔ Via Plugin x x


Suporte Markdown Via Interfaces Via Plugin Via Field Types Via Plugin

Hospedagem Local & Cloud, Local, Cloud, PaaS Local Local


Paas

Licença GPL 3.0 GPL 2.0 GPL 2.0 GPL 2.0

Facilidade de Instalação/ Fácil/ Possui Fácil/ Possui Fácil/ Possui Imagem Fácil/ Possui
Docker Imagem Oficial Imagem oficial Imagem oficial oficial Imagem oficial

Integrações JS SDK Muitas x Muitas

Tech PHP/ MySQL/ PHP/ MySql PHP / SQLite PHP / MySQL


VueJS

Documentação Bem Boa e com muito Fraca Bem completa


Documentada conteúdo

Curva de aprendizado Baixa - Média Baixa Baixa - Média depende Depende do que se
depende do nível do nível do quer fazer. Pode ser
do desenvolvedor desenvolvedor baixa, se algo
simples, ou bem alta
se algo mais
complexo

CLI SIM SIM SIM SIM

Escalabilidade Média Alta Alta Alta mais


complicada

Swagger x Plugin x x
Social Login/LDAP Plugin Plugin x Via Plugin

9
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Segurança Token,JWT,OAut Tokens,JWT,OAuth OAuth OAuth, Tokens


h

Data do Primeiro e 2011,2020 2003,2020 2010,2020 2005, 2020


último Release

Performance Boa Depende da forma Alta Depende da forma


de utilização de utilização

Clientes AT&T, Prada, 80% dos sites que Michelin,NPM,Pensilvâni Santander, Itaú,
Google, usam CMS PHP a Uni. Toyota
Snapchat

Extensível SIM SIM Sim via Addons, mas Sim via Módulos e
sem guide de Plugins
desenvolvimento

SONAR ✔ ✔ ✔ ✔

Comunidade Ativa Ativa Ativa mas pequena Ativa

Internacionalização Nativa via plugin via plugin

Organização de Collections & Via Pages e Posts Collections e Singletons Artigos


Conteúdo Fields

Webhooks Sim via Plugin via Plugin via Plugin

Features Social Login, Plugins Plugins Extensions


GraphQL

Testes Unitários PHPUnit nos Plugins Não PHPUnit

Suporte Enterprise Sim Sim Sim - mas pequeno Third-Party

Tabela 3. Joomla x 3 CMS Open Source (.NET,Java)

CMS dotCMS Squidex Gentics Mesh Joomla

Headless por ✔ ✔ ✔ Via Plugin


default

Customização da ✔ x x x
API

Suporte a ✔ via Field Types x Via Plugin


Markdown

Hospedagem Local & Cloud, Paas Local, Cloud, PaaS Local Local

Licença BSD 3 MIT Apache 2.0 GPL 2.0

Facilidade de Fácil/ Possui Imagem Fácil/ Possui x Fácil/ Possui Imagem oficial
Instalação/ Docker oficial Imagem oficial
Imagem Oficial

10
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Integrações Docker,Magento,Confluen .NET x Muitas


ce,AWS,Akamai,Kubernet SDK,Pre-render,Kaf
es ka,RabbitMQ

Tech Java ASP.NET C#, Java, OrientDB PHP / MySQL


Angular, MongoDB,
Orleans

Documentação Boa mas confusa Boa Boa Bem completa

Curva de Média - Alta Média Média - Alta Depende do que se quer


aprendizado fazer. Pode ser baixa, se
algo simples, ou bem alta
se algo mais complexo

CLI Não SIM Não SIM

Escalabilidade Alta Alta Alta Alta mais complicada

Swagger x Nativo x x
Social Login/LDAP LDAP OIDC x Via Plugin

Segurança Tokens, JWT , ​SAML , O Tokens,JWT,Encript JWT OAuth, Tokens


Auth 2 ação,

Data do Primeiro e 2009,2020 2013,2020 2015, 2020 2005, 2020


último Release

Performance Alta Alta Alta Depende da forma de


utilização

Clientes National Geographic, ?? Governo da Áustria Santander, Itaú, Toyota


Loréal, Canonical, Nasa

Extensível Sim via Plugins x x Sim via Módulos e Plugins

SONAR -- -- -- ✔

Comunidade Ativa Ativa ?? Ativa

Internacionalização Nativa Nativa x Plugins

Organização de Via Content-Types Via Pages e Posts Content Tree Artigos


Conteúdo

Webhooks Sim Sim Não via Plugin

Features GraphQL, Rest API, Versionamento de GraphQL, O Auth 2 Extensions


conteúdo, GraphQL

Testes Unitários Sim - JUNIT Não Não PHPUnit

Suporte Enterprise Sim Sim - time pequeno Sim - time pequeno Third-Party

11
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Reviews de CMS:

1. Strapi
Imagem docker: ​https://hub.docker.com/r/strapi/strapi

1.1 Sobre o CMS

Strapi é um CMS Open Source , feito em Node.js e MongoDb, também suporta


MYSQL,MariaDB, SQLite e PostgreSQL. Vem com suporte á fácil deploy a AWS, Digital
Ocean e Heroku.
Tem uma documentação rica e vários tutoriais de como usar o CMS. É possivel instalar
local, usando Docker, usando Plataform.sh
É possível fazer testes unitários com Jest, ou outros frameworks de teste, já que o Strapi
tem um webpack configurável.
Strapi, possui também webhooks para disparar ações para outras aplicações.
A Arquitetura do Strapi é bem simples e fundamentada, explica-se como escrever
plugins, como modelar a API do Strapi, como montar os conteúdos a serem exportados.
Considero a curva de aprendizado do Strapi entre baixa e média, depende do
conhecimento do dev com Node.js e do conceito de CMS Headless, se o dev tiver
dúvidas pode dar uma olhada nos exemplos, tutoriais ou documentações já existentes.
É possível restringir as chamadas das apis com JWT a grupos de usuários do Strapi.
Internacionalização é apenas possivel com um workaround, criando campos com sufixo
por línguas:
https://medium.com/strapi/content-internationalization-with-strapi-507ef5869c15
Teste do Sonar do repo do Strapi:
https://sonarcloud.io/dashboard?id=rubenmarcus_strapi-1

1.2 Features
Estrutura de Arquivos, Controllers, Filtros, Models, Atributos,
Relações: Many-to-many, One-to-many, One-to-one , One-way,
Lifecycle callbacks, Plugin, Plugin styles, Policies, Global policies, Scoped policies,
Plugin policies, Public assets, Requests, Responses, Routing, Services

1.3 Prós e Contras:

12
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

PRÓS CONTRAS

👍​ Headless por Default 👎​ Internacionalização só via workaround

👍​ Boa Documentação fácil de Entender 👎​ Poucas extensões

👍​ Webhooks 👎​ Alguns usuários reclamam de Bugs

👍​ Fácil de estender 👎​ Sem controle de versão dos Dados

👍​ Open Source

👍​ Grandes clientes no mercado

👍​ GraphQL

👍​ Customização de APIS

👍​ Restrição de APIS via User Roles

👍​ Segurança via JWT

👍​ Integração com CLOUD: AWS

👍​ Baixa curva de aprendizado

👍​ Bastante material para integrar com


frameworks Front-end

👍​ Fácil geração de Plugins via CLI

👍​ Payload Simples

👍​ Fácil Inicialização de Projetos

👍​ Poder escolher o BD

👍​ suporte a Markdown

Exemplo de Payload:

https://gist.github.com/rubenmarcus/9b5a759da10420d37343a0d74f5eef1d

1 - Nessa page criada no Strapi coloquei: código HTML, código JS, imagens, o formato
do JSON / Payload é muito mais simples que outros CMS

Markdown Payload:
13
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

https://gist.github.com/rubenmarcus/3b148417b5686581ff0d4bfda17dabdf

Link com o Product Board do roadmap de desenvolvimento do Strapi:


https://portal.productboard.com/strapi/1-public-roadmap/tabs/3-planned

Score: ​14

2 . Ghost
Start: Docker

https://hub.docker.com/_/ghost

2.1 Sobre o CMS

Ghost é um CMS open source feito em Node.js e MySQL. Foi o primeiro CMS em
Node.js que ganhou notoriedade na web por ser um CMS simples , com design
agradável e com muitas integrações com apps e serviços famosos na web.
Ghost é meio limitador e não tem documentação oficial para estender o CMS.Não existe
muita informação de como fazer isso: ​https://github.com/TryGhost/Ghost-App​ , Existe
esse repositório sem muito suporte e informações.
​Internacionalização​ é nativa, mas apenas possível com algumas customizações de
templates e rotas
Ghost é muito forte na parte de segurança apis de conteúdo são públicas e apis com
/admin necessitam de autenticação via JWT, o CMS por default vem com fácil
configuração de SSL, proteção contra brute-force, proteção de SQLi, prevenção contra
XSS, encriptação de senhas, serialização dos dados.
Teste do Sonar do repo do Ghost:
https://sonarcloud.io/dashboard?id=rubenmarcus_Ghost

2.2 Features
Editor mínimo e intuitivo, Bom gerenciamento de conteúdo,Bons recursos SEO
incorporados nativamente,Aplicativos nativos para desktop e dispositivos
móveis.,Seguro e auditado independentemente,Temas personalizados, AMP ,
JavaScript SDK, Templates em Handlebars

14
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

2.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ Internacionalização parece gambiarra

👍​ Boa Documentação fácil de Entender 👎​ Integração apenas por Webhooks

👍​ Webhooks 👎​ Voltado mais para Conteúdo de blogs , criação


de conteúdo customizado dificultado

👍​ Design Intuitivo 👎​ Sem controle de versão dos Dados

👍​ Open Source 👎​ ​sem Customização de APIS

👍​ Grandes clientes no mercado 👎​ Documentação com poucos exemplos

👍​ GraphQL 👎​ Hospedagem um pouco cara

👍​ Fácil de gerar conteúdo 👎​ Templates em Handlebars

👍​ Bem Seguro 👎​ Payload mais complicado

👍​ Suporte a Markdown

👍​ Baixa curva de aprendizado

👍​ Bastante material para integrar com


frameworks Front-end

👍​ JavaScript SDK

👍​ suporte a HTML Nativamente

👍​ Fácil Inicialização de Projetos

Exemplo de Payload:

https://gist.github.com/rubenmarcus/6b222aad59c40d33e772c630a67bffc3

1 - Nessa page criada no Ghost coloquei: Texto com bold e link, coloquei código html e
uma galeria de imagens, o conteúdo do post completo está no parâmetro mobiledoc, e
precisa dar unescaped.
Acredito que o payload está um pouco confuso.

15
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Score: ​6

3 . Apostrophe CMS
3.1 Sobre o CMS

Apostrophe CMS é um CMS que foca muito na experiência do usuário, e tem como
padrão 3 plugins: Um de SEO, um de API Headless, e um de internacionalização.
Permite content-types,e tem uma documentação bem detalhada de como estender o
CMS.
Teste do Sonar do repo do Ghost:
https://sonarcloud.io/dashboard?id=rubenmarcus_apostrophe

3.2 Features
Bearer Tokens e API Tokens, Plugin Headless, Boa edição de conteúdo, ContentTypes

3.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ Não tem Docker Image

👍​ Boa Documentação fácil de Entender 👎​ Headless via plugin (mais difícil de estender e
pode ter problemas com suporte)

👍​ Webhooks 👎​ Poucos Módulos, tendo que desenvolver vários

👍​ Design Intuitivo 👎​ Sem controle de versão dos Dados

👍​ Open Source 👎​ ​sem Customização de APIS

👍​ Grandes clientes no mercado 👎​ Não tem GraphQL

👍​ SEO 👎​ Templates em Nunjuncks

👍​ Fácil de gerar conteúdo 👎​ Comunidade pequena

👍​ Plugin de Social Login 👎​ sem suporte a Markdown

16
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

👍​ Suporte a Internacionalização

👍​ Baixa curva de aprendizado

👍​ Bastante material para integrar com


frameworks Front-end

Score: ​3

4 . Directus
Start: Docker
https://hub.docker.com/r/directus/directus

4.1 Sobre o CMS

Directus é um CMS Open Source feito em PHP e MySQL, com diversas features, entre
elas, Espelhamento do Banco de Dados, Headless API,GraphQL, SDK JS.

4.2 Features
Autenticação via OAuth, GraphQL, Collections, Envio de E-MAIL por API,
Versionamento de Dados, SCIM

2.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ Documentação incompleta para alguns cenários

👍​ Boa Documentação fácil de Entender 👎​ Cacheamento as vezes falha

👍​ Webhooks 👎​ Problemas com escalonamento do Banco de


Dados

👍​ Design Intuitivo 👎​ Sem controle de versão dos Dados

👍​ Open Source 👎​ Usuários reclamam de BUGS críticos

17
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

👍​ Grandes clientes no mercado 👎​ Problemas com Updates

👍​ GraphQL

👍​ Fácil de gerar conteúdo

👍​ Bem Seguro

👍​ Baixa curva de aprendizado

👍​ Interfaces

👍​ Internacionalização nativa

👍​ JWT, Token Rolante

👍​ JavaScript SDK

👍​ Fácil Inicialização de Projetos

👍​ Banco de dados Espelhado

👍​ Customização de APIS

👍​ Suporte a buckets Amazon S3

👍​ SSO, 2FA

Score: ​13

5 . WordPress
Start: Docker
https://hub.docker.com/_/wordpress/

2.1 Sobre o CMS

WordPress é o CMS mais popular da internet.


Tem uma comunidade gigante, e possui muitos recursos e desenvolvedores.

18
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

2.2 Features
Plugins, Temas

2.3 Prós e Contras:

PRÓS CONTRAS

👍​ Bom com SEO 👎​ Customização de APIS precisa mexer bastante


no código

👍​ Boa Documentação fácil de Entender 👎​ Muitos ataques de Hackers. Plataforma mais


hackeada do mundo

👍​ Webhooks 👎​ Voltado mais para Conteúdo de blogs , criação


de conteúdo customizado dificultado

👍​ Design Intuitivo 👎​ Plugins podem ter malware

👍​ Open Source 👎​ ​Plugins podem ter problemas conforme o


fornecedor

👍​ Grandes clientes no mercado 👎​ grande chance do código ficar uma bagunça e


mal configurado

👍​ GraphQL 👎​ Hospedagem um pouco cara

👍​ Fácil de gerar conteúdo 👎​ Hospedagem cara para empresas comparado


com outros CMS

👍​ Suporte a Markdown

👍​ Baixa curva de aprendizado

👍​ Bastante material para integrar com


frameworks Front-end

👍​ suporte a HTML Nativamente

👍​ Grande comunidade

👍​ Plugins para JWT,OAuth e OpenID

👍​ Fácil Inicialização de Projetos

Score: ​7

19
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

6 . CockPit CMS
Start: Docker
https://hub.docker.com/r/agentejo/cockpit/

2.1 Sobre o CMS

Cockpit é um CMS Headless feito em PHP e SQLite.

2.2 Features
Webhooks, GraphQL

2.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ O time é apenas uma pessoa

👍​ Boa Documentação fácil de Entender 👎​ Muito simplista

👍​ Webhooks 👎​ Sem controle de versão dos Dados

👍​ Design Intuitivo 👎​ ​sem Customização de APIS

👍​ Open Source 👎​ Documentação com poucos exemplos

👍​ Flexivel

👍​ GraphQL

👍​ Fácil de gerar conteúdo

👍​ Bem Seguro

👍​ Suporte a Markdown

👍​ Baixa curva de aprendizado

👍​ FORMS

👍​ suporte a HTML Nativamente

👍​ Fácil Inicialização de Projetos

20
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

Score: ​9

7 . dotCMS
Start: Docker
https://github.com/dotCMS/docker/tree/master/images/dotcms

2.1 Sobre o CMS

O dotCMS é um CMS Opensource que fornece flexibilidade, segurança e


escalabilidade.O CMS é responsivo a dispositivos móveis e pode ser acessado de
qualquer lugar, o que ajuda na construção de uma estratégia móvel multicanal e permite
o compartilhamento de conteúdo em diferentes dispositivos e plataformas. Sendo uma
plataforma de experiência digital, o dotCMS ajuda a criar experiências dinâmicas do
usuário por meio de conteúdo, personalização, personas, fluxos de trabalho e ações
direcionados. O CMS vem com APIs RESTful que oferecem suporte ao modelo sem
cabeça, o que permite fornecer e consumir conteúdo de sistemas de terceiros. As
empresas podem criar quantos sites e aplicativos quiserem usando um único sistema
com melhor eficiência e velocidade.

2.2 Features
WYSIWYG Editing,Versionamento, SEO ,Multilingual (i18n/UTF-8),Multi-site
hosting,Global publishing,Custom content types,Mobile device preview,Content
Geolocation,Full text searching/Metadata

21
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

2.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ Apache Velocity

👍​ Suporte Enterprise 👎​ Documentação complicada

👍​ Webhooks 👎​ Curva de aprendizado Alta

👍​ SSO, OpenID, Ldap 👎​ problemas com BUGS

👍​ Open Source 👎​ Overengineering

👍​ Grandes clientes no mercado 👎​ Um pouco mais complicado de fazer as coisas


do que em outros CMS

👍​ GraphQL 👎​ UI Bugs

👍​ Suporte a Markdown

👍​ Bem Seguro

Score: ​2

8 . Squidex
Start: Docker
https://hub.docker.com/r/squidex/squidex

2.1 Sobre o CMS


Squidex é um CMS feito em ASP.NET e MongoDB, que também possui um serviço de
cloud e de suporte Enterprise.

2.2 Features
GraphQL, Plugins, Api Keys, Elastic Search, Algolia , Webhooks

22
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

2.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ Documentação com poucos exemplos

👍​ Boa Documentação fácil de Entender 👎​ Coisas que vem por default em outros CMS, tem
que ser feitos em código

👍​ Webhooks 👎​ Voltado mais para Conteúdo de blogs , criação


de conteúdo customizado dificultado

👍​ Design Intuitivo 👎​ Sem controle de versão dos Dados

👍​ Open Source

👍​ Plugins

👍​ GraphQL

👍​ Fácil de gerar conteúdo

👍​ Bem Seguro

👍​ Suporte a Markdown

👍​ MongoDB

👍​ Internacionalização

👍​ Open Id

👍​ Editor de conteúdo customizado

Score: ​10

9 . Gentics Mesh
Start: Via .jar
https://getmesh.io/

9.1 Sobre o CMS


Gentics Mesh é um CMS feito em Java e OrientDB, que possui como clientes o Governo
da Áustria, e tem uma comunidade relativamente pequena.Possui ótimas funções como
suporte fácil a clusterização, Versionamento dos dados, além de uma boa
23
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

documentação. O ponto fraco do CMS, é que é pouco usado, o suporte não é dos
melhores, e muitos plugins são pagos, quando são padrões em outros CMS

9.2 Features
Versionamento,Internacionalização, OAuth 2.0, Plugins, Forms, Cluster Mode, Elastic
Search

9.3 Prós e Contras:

PRÓS CONTRAS

👍​ Headless por Default 👎​ Sem Webhooks

👍​ Boa Documentação fácil de Entender 👎​ sem logs do que é feito no CMS

👍​ Fácil Clusterização 👎​ Plugins básicos que já vem em outros CMS são


cobrados

👍​ Design Intuitivo 👎​ ​sem Customização de APIS

👍​ Open Source 👎​ Sem ter como extender

👍​ OAuth 2.0 👎​ Sem suporte a Markdown

👍​ GraphQL 👎​ Payload mais complicado

👍​ Plugins

👍​ Bem Seguro

👍​ Cluster Mode

👍​ Versionamento de Dados

👍​ Elastic Search

👍​ Fácil Inicialização de Projetos

Score: ​6

24
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

10.Cms com melhor score:

1.Strapi score:14

2.Directus score:13 ​(PS: Durante teste local foram encontrados bugs críticos, que
não foram encontrados durante teste em servidor)

3.Squidex score:10

11.Cms closed source:


Existem muitas plataformas proprietárias, tanto em level Enterprise,
como em nível apenas comercial são algumas, são :

ButterCMS, GraphCMS, Contentful, Cosmic JS, Magnolia, Zesty, Sanity, Prismic,​Liferay


Digital Experience Platform​,​Sitecore Experience Platform​,IBM FileNet Content
Manager,​Oracle WebCenter Content,​OpenText EIM,​Adobe Experience Manager

Infelizmente não tive tempo para realizar um comparativo entre as ferramentas, e


algumas não é possível nem testar, sem antes fazer um orçamento com o time de
Vendas, como os CMS da LifeRay, Oracle e Adobe.

12.Cms testados porém reprovados

Daptin​: Feito em GO, O CMS é muito voltado a desenvolvedores. Dá liberdade para


fazer as coisas e controlar, mas tem que fazer muita coisa na mão, que já existe.

KeystoneJs​ - é mais um framework, do que um CMS

OctoberCMS:​ não tem headless a não ser por plugin, orientado a ser um CMS comum

GRAV​ - não tem headless

25
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

13.Futuro

Front-end Desacoplado:

SSR - Melhor para SEO


Proteção contra XSS
Proteção contra CSRF

Custom Environments

TypeScript

AMP

OAuth 2.0, SSO , OpenID suporte

Critical CSS

Semantic HTML

WCGA 2.0 - Compliance de Acessibilidade

GraphQL

PWA (?)

Sugestões: Next.js (React) , Nuxt.js (Vue) , Angular Universal (SSR)

26
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

14.Referências

14.1 Documentações:
1. https://docs.joomla.org/Main_Page
2. https://docs.techjoomla.com/joomla-rest-api/com-api-introduction/
3. https://strapi.io/documentation/v3.x/getting-started/quick-start.html
4. https://ghost.org/docs/
5. https://docs.apostrophecms.org/
6. https://docs.directus.io/getting-started/introduction.html
7. https://getcockpit.com/documentation
8. https://codex.wordpress.org/
9. https://developer.wordpress.org/rest-api/
10. https://docs.squidex.io/
11. https://squidex.io/comparison/strapi
12. https://squidex.io/comparison/directus
13. https://dotcms.com/documentation/
14. https://getmesh.io/docs/
15. https://docs.dapt.in/
16. https://www.keystonejs.com/quick-start/
17. https://octobercms.com/help/guidelines/developer
18. The Joomla Hacking Compedium: ​https://www.exploit-db.com/papers/15780

14.2 Listas de CMS:


19. https://www.cmswire.com/web-cms/13-headless-cmss-to-put-on-your-radar/
20. https://headlesscms.org/

14.3 Comparações de CMS:


21. https://www.capterra.com.br/
22. https://www.g2.com/categories/headless-cms
23. https://stackshare.io/
24. https://www.slant.co/topics/8122/~open-source-headless-cms-s
25. https://www.trustradius.com/products/joomla/reviews?qs=pros-and-cons

14.4 Blogs e Artigos:


26. https://medium.com/better-through-code/headless-cms-self-hosted-or-paas-c559b8f938fc
27. https://medium.com/hackernoon/headless-cms-first-change-your-mindset-e9f6d8b6a41e
28. https://medium.com/strapi/10-reasons-why-you-should-use-a-headless-cms-cea598880dc7

27
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.
ANÁLISE DE CMS HEADLESS PARA O PORTAL DE DESENVOLVEDORES DO ITAÚ

29. https://medium.com/@prismicio/beyond-headless-cms-9f280022d73b
30. https://medium.com/manacespereira/construindo-uma-api-completa-com-nodejs-strapi-em-menos-
tempo-do-que-voc%C3%AA-imagina-9b787d3a8cde
31. https://blog.codecasts.com.br/headless-cms-o-que-s%C3%A3o-onde-vivem-o-que-comem-2fcf421
0eec1?source=user_profile---------0-----------------------
32. https://devunleashed.com/article/why-i-cant-recommend-strapi/
33. https://medium.com/kata-engineering/headless-wordpress-next-js-what-we-learned-c10abdf80f6a
34. https://www.episerver.com/articles/headless-helps-you-meet-the-customer-where-and-how-they-w
ant-to-shop-or-conduct-tasks
35. https://snipcart.com/blog/jamstack
36. https://medium.com/@bretcameron/building-my-first-headless-cms-what-i-wish-i-knew-at-the-start-
1f3ef3a00bb8

28
Este documento é de uso interno, limitado a funcionários da ZUP IT Innovation, não podendo ser copiado, reproduzido ou
compartilhado com terceiros.

Você também pode gostar