Pular para o conteúdo principal

Adeus Jekyll, olá Docusaurus

· Leitura de 7 minutos

Mês passado foi o aniversário de 16 anos deste blog que, desde 2009, já passou por diferentes tecnologias e servidores para publicar o conteúdo. Chegou a hora de mais uma mudança, e desta vez escolhi migrar o blog do Jekyll para o Docusaurus.

Evolução do blog

Em 2009 eu comecei o meu blog utilizando o bom e velho Wordpress, que ainda é uma das maneiras mais rápidas e fáceis de se criar um blog que pode ser totalmente customizado. Depois de um tempo utilizando Wordpress, eu decidi levar o blog para um próximo nível que me daria mais flexibilidade, e decidi ter o meu próprio servidor para hospedar o blog.

Passei por diversos servidores de hospedagem, sempre procurando um melhor custo benefício já que pagava um valor mensal para manter o blog no ar. Em 2016, comecei a procurar por alternativas para reduzir meu custo e aumentar a performance do blog, já que um dos gargalos era a constante conexão do PHP com o bando de dados MySQL usado pelo Wordpress. Foi então que eu fiz uma primeira migração de framework do blog, dando adeus ao Wordpress, e olá ao Ghost.

O Ghost é um pouco parecido com Wordpress - você pode ter um blog hospedado por eles ou sua própria hospedagem. Porém, uma vantagem, que também foi uma gambiarra, era que eu podia rodar o servidor local, e "compilar" o site em páginas estáticas, e ai então publicar essas páginas no GitHub Pages. Consegui eliminar o meu custo mensal e ainda fazer o site ficar incrivelmente rápido já que conteúdo estático não precisa de conexão com banco de dados.

Depois que me acostumei com o blog em formato estático, comecei a ficar incomodado em ter que rodar um servidor local toda vez que ia publicar algo no blog. A interface do Ghost era bem legal, porém não uma necessidade. Foi então que, em 2017, dei adeus ao Ghost, e olá ao Jekyll. Diferente to Ghost (e do Wordpress), o Jekyll não tem uma interface por padrão, apenas arquivos em um repositório que são "compilado" para gerar um site estático. Isso reduziu a necessidade de rodar um servidor local, pois para publicar posts eu não precisava disso - apenas escrever e fazer um commit no git, e então o site era atualizado já que o GitHub pages consegue fazer essa "compilação".

Minha última mudança foi em 2018, quando decidi dar adeus ao GitHub Pages, e olá ao Netlify. Na época o GitHub Pages era um pouco limitado, e além disso era possível ter apenas um site estático por conta no GitHub, e eu queria publicar um novo site para o meu portfólio, também utilizando Jekyll. Foi então que migrei de plataforma, indo para o Netlify, que além de ter muito mais do que preciso, também é gratuito e suporta diversos sites ao mesmo tempo.

Foram 8 anos utilizando Jekyll no blog, e aos poucos comecei a encontrar alguns problemas que me fizeram pensar em outras opções, inclusive voltar para o Ghost, porém encontrei a solução perfeita pra mim: Docusaurus.

Mudança para Docusaurus

Jekyll é um framework incrível para criar sites estáticos, desde um simples blog ou documentação de um sistema, até sites completos com E-commerce. Existem muitos layouts (themes) gratuitos e pagos, a flexibilidade nele é imensa. Porém, é um framework um pouco velho que já está mostrando sinais de que precisa se modernizar. Um dos maiores problemas que eu tinha era depender de versões específicas de Ruby para compilar o blog, e sempre tinha problemas de incompatibilidade entre as dependências em diferentes computadores. Além disso, a maioria das dependências não eram atualizadas e eu ficava cada vez mais preso em coisas antigas.

Eu descobri o Jekyll no trabalho, pois era como a documentação era feita na época, e a mesma coisa aconteceu quando descobri o Docusaurus. Muitos dos meus problemas estão listados na comparação do Jekyll com Docusaurus, o que foi mais um incentivo para mudar. Docusaurus é uma plataforma open source desenvolvida pela Meta, e é feita com React, também mantido pela mesma empresa.

Por utilizar frameworks mais modernos, como React, o Docusaurus não possui problemas de dependências e tem uma melhor consistência entre diferentes sistemas operacionais. Configurar um site nele é bem rápido e fácil, e publicar ele no Netlify foi ainda mais fácil e rápido do que o Jekyll.

Porém, nem tudo é perfeito, e existem algumas limitações no Docusaurus que podem ser um problema. A customização nele é bem menos flexível do que o Jekyll, e não existe tantos layouts disponíveis para ele. Além disso, o foco do Docusaurus é documentação, e o blog é um sistema secundário nele e bem limitado. A customização nele é mais fechada, e requer o uso de swizzling, onde você pode expandir ou "ejetar" um componente dele para customizar. Nem todo componente é customizável, e os que são possuem um alerta dizendo que podem deixar de funcionar em atualizações futuras.

Eu tive que desativar a parte de documentação, fazer algumas mudanças no blog e customizar alguns componentes, e apesar das limitações estou bem feliz com o resultador. Vai demorar um pouco para me acostumar com o Docusaurus, mas por enquanto ele está cumprindo todos meus requisitos para um blog:

  • Simples, rápido e fácil de usar
  • Boa performance, moderno e fácil de manter
  • Me permite focar em escrever
  • Sem custo adicional

Apesar da limitação em customização e layouts disponíveis (comparando com o Jekyll), acho que o Docusaurus é o que eu estava procurando para este momento do blog. Provavelmente irei atrás de um layout melhor no futuro, mas por enquanto este layout básico e comum já está muito bom.

Novas funcionalidades

Uma das coisas que sempre tentei adicionar no blog, e sempre sem sucesso, foi uma ferramenta de busca. É uma limitação para sites estáticos, e é necessário algo externo para poder funcionar. Felizmente, o Docusaurus tem suporte nativo para uma ferramenta de busca chamada Algolia, e como você pode ver ali no canto superior direito, funciona muito bem. Tive que ajustar algumas configurações e aprender como funcionar a indexação, mas valeu o trabalho e fiquei feliz com o resultado.

Um pouco menos importante, mas também uma novidade, é poder mudar o tema do blog entre dark e light (botão à esquerda da busca ali no topo). Isso também era algo que queria adicionar ao blog, mas ficava preso os layouts do Jekyll que não tinham esse suporte porém eram gratuitos.

Outra mudança significativa pra mim foi abandonar o Google Analytics em favor do Cloudflare Analytics, que é bem mais leve e menos intrusivo, com foco em privacidade ao invés de capturar dados para publicidade. Eu utilizava o Google Analytics desde ~2010, quando movi meu blog do Wordpress para um servidor próprio, e por mais que tenho anos de dados lá, não vai fazer falta. Costumo utilizar esse tipo de ferramenta para ver quais posts são mais acessados e como leitores chegam no blog.

O Docusaurus também tem uma ferramenta que valida links quebrados e impede a publicação do site (esse comportamento é configurável). Isso ajuda demais a não deixar passar links que não funcionam, mas também foi um dos maiores trabalhos que tive quando migrei - corrigir todos links quebrados ao longo dos últimos 16 anos.

Por fim, por ser moderno e utilizar React, isso também me possibilita estudar algo novo, como o irmão React Native, muito utilizado para aplicativos.

Conclusão

Já estava na hora de uma atualização na tecnologia por trás do blog, e apesar do Docusaurus parecer menos flexível do que o Jekyll, ele é mais moderno e fácil de manter. Agora é arrumar detalhes que possam estar quebrados e focar em publicar mais conteúdo por aqui, e também migrar meu portfólio para Docusaurus.