Simple Blog Publishing (SBP)
Nunca fui muito adepto da escrita, porém, ultimamente tenho sentido cada vez mais a necessidade de organizar as minhas ideias e acredito que a escrita é a forma ideal de se fazer isso por dois motivos: um é que lendo o que eu mesmo escrevi posso refletir melhor e encontrar falhas no meu raciocínio, o segundo é que para se escrever um texto eu preciso, de alguma forma, conectar os pontos principais que eu quero abordar de forma sequencial.
Existem várias ferramentas disponíveis para isso, porém nenhuma delas me agrada, estou abandonando as redes sociais cada vez mais,outros sites que podem servir como forma de hospedar os meus textos acabam sendo somente outras formas de redes sociais mais "gourmetizadas" por assim dizer e as outras ferramentas que eu conheço são inchadas, cheias de ferramentas das quais eu não preciso. Por isso decidi escrever uma ferramenta simples para publicar os meus textos, seguindo o fluxo mais simples o possível: escrever, salvar, publicar.
Visão Geral
O SBP é uma ferramenta que disponibiliza arquivos markdown de um repositório git em páginas web, mantém os metadados das publicações em um banco de dados SQLite e as publicações sincronizadas com a hospedagem do repositório (gitea, github, gitlab, etc.), possibilita a personalização completa do site por meio de templates jinja, css e javascript. A seguir vou apresentar as tecnologias que utilizei nessa implementação e justificar o uso de cada uma.
1. Git
O git é uma ferramenta de versionamento, permite que uma ou mais pessoas façam alterações em um mesmo repositório e mantém um histórico de alterações por meio dos diffs e é amplamente utilizada por desenvolvedores para gerenciamento de código. Decidi usar o git porque é a forma mais simples de se manter um projeto atualizado além de que possibilita manter um histórico das minhas alterações. Além disso varios hosts de repositórios git disponibiliza workflows, que são ações que podem ser executadas quando determinados eventos acontecem no repositório e é justamente isso que permite o SBP manter o blog atualizado.
2. Markdown
O markdown é uma linguagem de marcação simples, também é amplamente adotada por desenvolvedores para escrita de documentações. A escolha dessa linguagem se deu pela sua simplicidade e familiaridade que eu tenho com ela, deixa o texto bem mais enxuto, diferente do html e é fácil de se apresentar em uma página web.
3. SQLite
O SQLite é um SGBD que funciona em um unico arquivo, como a unica coisa que é necessário armazenar no SBP são alguns poucos metadados das publicações disponíveis nada mais justo que armazenar esses dados em um unico arquivo mantendo ele versionado juntamente as publicações.
4. Jinja
Jinja é uma linguagem de template usada para renderizar páginas html pelo backend de forma dinâmica. Eu queria manter a ferramenta de publicação completamente a parte do conteúdo disponibilizado por ela, dessa forma eu precisei escolher alguma forma de permitir o usuário personalizar seu blog a gosto, dessa forma os templates jinja são renderizados junto com os arquivos markdown para formar uma página html que é fornecida pelo SBP, o usuário só precisa definir os templates uma única vez e a partir dai focar somente em escrever suas publicações.
Organização do Blog
Para finalizar foi preciso definir uma estrutura que o repositório do blog precisa ter para que o SBP consiga manipular de forma coerente.
.
├── db.sqlite
├── public
│ ├── assunto1
│ │ ├── post1.md
│ │ └── post2.md
| └── assunto2
| ├── post3.md
| └── post4.md
├── README.md
├── static
│ ├── style.css
│ └── script.js
└── templates
├── index.jinja
└── post.jinja
O diretório public é onde as publicações ficam organizadas, o usuário pode organizar as publicações como bem entender aqui e o SBP disponibiliza a variavel {{ tree }} com um json da estrutura de arquivos da pasta public para que o usuário consiga criar a navegação do blog.
Os diretórios static e templates mantém os arquivos estáticos necessários para a apresentação do site, static para arquivos de midia, css, javascript, etc. e templates para armazenar os templates jinja sendo que os arquivos index.jinja e post.jinja são obrigatórios. O arquivo README.md, na raiz do diretório, também é obrigatório, ele é usado na home do site e é renderizado junto com o index.jinja.
Conclusão
Agora para escrever alguma publicação basta que eu crie um arquivo markdown e execute dois comandos: git commit, git push e o blog é atualizado em alguns poucos segundos.
Bom, essa ferramenta é totalmente baseadas nas minhas necessidades, provavelmente qualquer outro ser humano dotado de raciocínio prefira escrever em algum site como o Medium ou usar um Wordpress da vida, talvez fosse até mais fácil. O que me importa é que esse espaço é meu e funciona de acordo com as minhas decições, não fico limitado a quantidade de caracteres e não peciso me preocupar com views ou com o que outras pessoas vão achar disso.
cmelo 16/10/2026