Patrocinado por
Patrocinado por Inetum

Adeus Wordpress, olá Jamstack

images/thumbnail.png - Thumbnail

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.