Adeus GitHub Pages, olá Netlify
Há 2 anos atrás escrevi este post contando a minha mudança do Wordpress para o Ghost, e 1 ano depois escrevi este outro post contando a mudança do Ghost para Jekyll. Em ambos os casos eu hospedei o blog no GitHub Pages, um serviço gratuído e muito bom. Porém, após 2 anos utilizando comecei a esbarrar em algumas limitações, e então conheci o Netlify.
Limitações do GitHub Pages
Eu tinha dois sites hospedados no GitHub Pages, meu blog e o meu portfólio. Para poder hospedar os dois tive que criar uma organização para o blog, pois o GitHub Pages suporta apenas um site por conta, considerando que a URL única gerada para cada site tem o login da conta como sub domínio. Este ano mudei minha conta no GitHub para poder ter repositórios privados, e decidi mudar os dois repositórios dos sites pra mesma conta. Não consegui fazer dois sites funcionarem com URLs diferentes, por que o segundo site da conta acabava ficando em um diretório dentro do site principal.
Decidi mudar os dois sites para um respositório privado por que estou planejando mudar o layout do blog para comemorar os seus 10 anos e provavelmente vou contratar alguem pra fazer isso, e não quero que o layout tenha seu fonte disponível. Outro ponto é que eu quero fazer mudanças e testar sem que essas mudanças fiquem visíveis para quem acessar o repositório.
Outro ponto que vai me ajudar muito na frequencia de postagens é que, embora o Jekyll não tenha agendamento de posts, eu posso criar um branch novo e abrir um Pull Request para cada post novo, e quando quiser publicar basta fazer o merge deste branch. Neste caso também não queria deixar isso público no repositório, por que muitos posts que escrevo acabam nem sendo publicados ou deixo arquivado para outro momento. Ter que sempre passar um post escrito em outro lugar para o blog me dava preguiça as vezes, então acredito que escrever com antecedência direto no repositório eu deixar como um branch vai me ajudar bastante.
O Netlify
Pesquisando como fazer funcionar mais de uma hospedagem no GitHub Pages com URLs diferentes passei por muita coisa, como algumas configurações de DNS que até pareciam funcionar para redirecionamento, mas tudo parecia dar muito trabalho. Até pensei em juntar o blog e o portfólio no mesmo repositório, mas ia quebrar muitas URLs e causar ainda mais problemas. Em uma destas pesquisas encontrei o Netlify, e foi amor a primeira vista.
A funcionalidade dele que me conquistou foi poder ter ilimitados sites de repositórios públicos e privados, e foi muito rápido e fácil de configurar. Ele já suporte Jekyll, igual o GitHub Pages, mas tem suporte também a outras tecnologias e dá mais flexibilidade para se fazer um site estático. Ele ainda possui um plano pago que é possível criar deploys complexos e baseados em scripts, mas o básico de atualizar o site em cada commit em um determinado branch já é mais do que o suficiente.
Além disso, ele também possui algo muito útil que é criar um site temporário, com uma URL temporária, pra cada Pull Request que você abrir no seu repositório. Isso permite fazer preview de posts e até de mudanças de layout sem precisar publicar, e até mandar pra alguem ver.
Ele possui suporte a configurações de DNS, e até funciona como um servidor NS, mas não consegui fazer isso funcionar direito. Fiz o básico de apontar o domínio para a URL que ele gera para o repositório e funciona muito bem. E, além de tudo isso, tem certificado SSL gratuito! Se você reparar, meu blog e meu portfólio agora são redirecionados para HTTPS.
O GitHub Pages é muito bom e funciona sem grandes problemas para um único site, e continuo recomendando ele pra todos. Mas se você tiver 5 minutos, vale a pena configurar e testar o Netlify. Eu falei só do básico que já me atende, mas ele tem muito mais coisas legais que vou explorar com o tempo.