Adeus Wordpress, olá Jamstack
Depois de mais de 10 anos a usar Wordpress, o mundo evoluiu e o Abapinho decidiu evoluir com ele.
Porquê abandonar o Wordpress?
Porque o Wordpress:
- É todo dinâmico, corre em PHP e é gerado no momento
- Como tal precisa de uma base de dados
- E tem um back-office para configurar tudo
- Que obriga a gerir utilizadores e passwords
- E a manter uma série de plugins
- Como caches para ficar mais rápido
- E alojar isto custa dinheiro
As coisas acima descritas não só adicionam complexidade como são pontos de vulnerabilidade na segurança do site.
Porquê adoptar Jackstack?
Porque com Jamstack:
- O site é estático, gerado uma vez e publicado
- Como tal não precisa de base de dados
- Nem de back-office
- Nem de utilizadores
- Nem de plugins
- Nem de hosting com capacidades dinâmicas
- Por ser só HTML é muito mais rápido
- Sem precisar de sistemas de cache
- E ainda por cima por ser colocado numa CDN
- Que o torna ainda mais rápido
- Além disso o conteúdo é todo baseado me Markdown em vez de HTML
- E por isso muito mais simples e poderoso
- A publicação é totalmente automatizada por CI/CD
Ironicamente, ao mesmo tempo que, sendo site estático, é em tudo mais simples, as ferramentas que suportam a sua edição, geração e publicação são tão poderosas que o resultado é muito melhor do que o dinossaurico Wordpress.
Que ferramentas?
Edição
O site é agora apenas uma estrutura de pastas com ficheiros Markdown e alguns templates em HTML e Go. Está alojado num repositório privado no GitHub e é editado localmente no Visual Studio Code. Mas também pode ser editado online no Forestry que integra directamente com o repositório no GitHub.
O Visual Studio Code e o Forestry são grátis.
Geração
Os Static Site Generators são mais que as mães. O mais conhecido é o Jeckyl mas eu optei pelo Hugo porque me pareceu mais simples e versátil e porque é feito em Go e eu gosto de Go. Quando faço commit para o main branch, é automaticamente iniciado um pipeline CI/CD que executa o comando Hugo que gera o site todo a partir do markdown+templates.
O Hugo é grátis
Alojamento
O site está alojado na CDN do Netlify que é uma global edge network e é publicado automaticamente através do mesmo pipeline CI/CD que corre a cada commit para o main branch. O Netlify tem a vantagem adicional de gerar deploy previews que são uma óptima forma de testar novidades no site antes de o publicar.
o netlify é grátis.
Coisas dinâmicas
Ainda que o conteúdo seja todo estático, há algumas coisas que ainda assim têm de ser dinâmicas:
- Comentários: podia usar o Disqus que é um SaaS grátis mas eles são famosos por não respeitarem a privacidade dos utilizadores e por isso optei pelo Remark42 que corre num Docker container na minha VPS;
- Analytics: poderia usar o Google Analytics mas isso seria dormir com o inimigo, por isso estou a usar o Matomo que corre noutro Docker container na minha VPS;
- Pesquisa: estou a usar o Algolia. Quando o site é publicado, o pipeline CI/CD enviar um JSON com o conteúdo em português e inglês para o Algolia que o transforma em índices pesquisáveis por um scriptzinho Javascript que tenho em todas as páginas.
- Notificações por email: o Remark42 envia nofificações por email. Para isso estou a usar o SendGrid.
O Remark42 e o Matomo são grátis. O Algolia é grátis até 10000 pesquisa por mês e o SendGrid é grátis até 100 emails/dia. A VPS custa 5€/mês na Contabo.
Conclusão
Bem, isto explica porque é que ultimamente não tenho publicado tantos artigos no site. Para já decidi manter o design inalterado apenas porque seria complicado demais fazer tudo. Num futuro próximo vou abordar essa questão e tentar inventar uma nova imagem que seja responsive, para poder funcionar bem em telemóveis pois esse é o principal problema do Abapinho hoje.
Quaisquer críticas e sugestões são bem-vindas.
O Abapinho saúda-vos.