Desde que comecei na área de tecnologia a minha forma preferida de aprender coisas novas é através de blog posts. Com o tempo foi pegando gosto por escrever sobre o que venho estudando, seja no meu perfil do dev.to, Medium e principalmente no Linkedin. Entretanto eu estava sentindo falta de centralizar tudo em apenas um lugar, e foi aí que pensei: por que não criar um blog pessoal?
Qual ferrementa escolher?
Como bom desenvolvedor, a primeira coisa que vem à cabeça é criar tudo do zero. Porém, pesquisando sobre o assunto, vi que não seria algo tão trivial. Então decidi buscar por ferramentas já prontas.
Como meu objetivo era criar algo da maneira mais rápida e simples possível, decidi que a melhor opção seria um site estático, assim eu não precisaria me preocupar com banco de dados ou em criar uma API para consumir esses dados. Pesquisando por frameworks de geração de geração de sites estáticos encontrei duas que me chamaram a atenção: Hugo e o Astro.
Começando pelo Hugo, ele é um framework open source escrito em Go para geração de sites estáticos. Por ser escrito em Go, sua principal vantagem é a velocidade, especialmente para sites maiores com milhares de páginas. Um caso de uso interessante que encontrei foi o do Fábio Akita, que fez um post recentemente em seu blog pessoal contando como migrou quase 20 anos de conteúdo para Hugo.
Apesar das vantagens do Hugo, eu optei por não utilizá-lo pelo fato dele ser feito em Go, linguagem com a qual não tenho tanta familiaridade. Como meu objetivo era criar algo rápido e de fácil manutenção no qual eu pudesse focar somente no conteúdo e com a mínima preocupação técnica. Por isso acabei optando por uma ferramenta que que rodasse em um ecossistema com o qual eu tenho mais familiaridade. Foi por isso que o Astro se tornou a escolha ideal.
Conhecendo o Astro.js
![]()
Para quem nunca ouviu falar, Astro é um framework JavaScript onde o foco principal é a criação de sites orientados a conteúdo, o que o torna perfeito para criação de blogs, portfólios e documentações já que ele consegue gerar páginas através de arquivos markdown e MDX. E como são apenas arquivos estáticos, conseguimos fazer deploy gratuitamente no GitHub Pages ou qualquer outro serviço de hospedagem de sites estáticos. Eu optei optei por usar o Cloudflare Pages e na seção abaixo eu falo um pouco mais.
Uma das principais vantagens do Astro para blogs é que ele já possui diversos temas prontos criados pela comunidade. Assim, você precisa apenas escolher o que mais lhe agrada, clonar o repositório e já sair usando. Eu escolhi o AstroPaper por ser bem simples e ter sido criado com Tailwind, o que facilita a personalização. Outras opções interessantes são o Astro Nano e o Astro Micro, caso você busque algo ainda mais minimalista.

Como o tema original já é bem completo, alterei pouquíssimas coisas: apenas traduzi alguns textos e mudei a paleta de cores para usar a do tema Catppuccin, mais especificamente, o Latte para o Light Mode e o Macchiato para o Dark Mode. Este é um tema que pessoalmente gosto bastante e que já venho utilizando há algum tempo nas minhas IDEs e terminais.
Deploy
Minha ideia inicial era fazer o deploy no Netlify, por ser uma plataforma que já usei anteriormente, mas no fim acabei escolhendo por outra plataforma que já estava querendo testar: a Cloudflare Pages. Sinceramente, não houve nenhum motivo específico para essa escolha. Eu só queria testar os serviços da Cloudflare e essa foi a minha chance. Essa é a vantagem de criar projetos pessoais: você tem liberdade para testar coisas novas.
O processo de deploy foi super tranquilo, precisei apenas de conectar minha conta do Github e selecionar o repositório do projeto e selecionar qual o framework e o Cloudflare Pages cuidou de todo o restante de forma automática, incluindo a configuração de CI/CD. E como eu já tinha comprado meu domínio pela Cloudflare, foi só alterar nas configuracões e voilà, tudo estava no ar!

Armazenamento de imagens
Para armazenar imagens, estou utilizando o R2 da Cloudflare, que é basicamente o S3 deles. E como mencionei anteriormente, não houve nenhum motivo específico para a escolha. Eu só queria testar o ecossistema da Cloudflare mesmo, além disso ele possui um plano gratuito do que suficiente para o meu caso de uso.
A Cloudflare fornece um serviço específico para armazenamento de imagens onde ele realiza otimização e a conversão para formatos mais leves e as disponibliza na CDN da Cloudflare, o que melhora a performace. Entretanto achei que seria demais para o meu caso de uso, além de adicionar uma complexidade desnecessária ao projeto. Por isso optei por seguir com o R2 mesmo, o que é já é mais que suficinte.
Meu workflow é bem simples: eu basicamente tiro um screenshot e faço o upload manualmente através do painel web e pego o link que ele gera. No futuro, quero tentar automatizar esse processo, que mesmo sendo simples é chatinho de ficar fazendo.
Conclusão
Acredito que consegui abordar os pontos mais importantes dessa minha jornada. Como dito inicialmente o meu objetivo era criar um blog da forma mais simples, rápida e barata possível, e acredito que consegui alcançar esse objetivo. No fim do dia pouco importa qual ferramenta você você vai utilizar, o importante em um blog é o que o seu conteúdo!