Eu rodo este site em um software que eu mesmo escrevi.

Este site roda na Chinaski, um sistema de gerenciamento de conteúdo que eu mesmo escrevi. Não é WordPress. Não é Squarespace. Software que eu construí porque estava cansado de brigar com uma plataforma em vez de usá-la.

É o mesmo sistema por trás da ROI Wire e da Coppermont também. Uma infraestrutura, três sites, três públicos bem diferentes. Eu não construí isso como um projeto paralelo para me exibir. Construí porque continuava esbarrando na mesma parede com tudo o mais no mercado: as ferramentas eram feitas para o negócio de outra pessoa, e esperavam que eu adaptasse o meu para caber nelas.

Por quê

Controle total. Eu adiciono os recursos que realmente preciso e pulo os cinquenta que não preciso. Quando eu quis um sistema de estudos de caso com seu próprio layout e suas próprias regras sobre o que é publicado e o que não é, eu construí exatamente isso, nada mais. Sem marketplace de plugins para vasculhar esperando que alguém já tenha resolvido meu problema de um jeito que serve mais ou menos. Sem painel de configurações com quatrocentas opções que eu nunca vou tocar, cada uma delas uma futura atualização que pode quebrar outra coisa. Se eu não preciso de algo, isso não existe no meu servidor ocupando espaço e criando uma superfície para algo dar errado.

Privacidade. Ninguém fora do meu próprio servidor consegue ver o que está nele. Nenhum fornecedor de análise de terceiros coletando dados comportamentais que eu nunca concordei em entregar. Nenhum autor de plugin com acesso silencioso de atualização a código rodando na minha infraestrutura. Nenhuma empresa de SaaS sentada em cima do meu conteúdo, dos dados dos meus visitantes ou de informações do meu negócio, com o próprio risco de vazamento dela entre mim e meu próprio site. Quando algo é privado, eu quero exatamente uma entidade capaz de ver isso: eu. Cada terceiro que eu adiciono a essa lista é uma porta que eu não construí e não consigo auditar totalmente.

Nenhum risco de licença. Quem já rodou um site WordPress conhece o roteiro. Você instala um plugin porque precisa de um recurso específico. Dezoito meses depois, o autor do plugin parou de mantê-lo, a licença vence, ou um patch de segurança nunca sai porque ninguém está mais cuidando disso. Aí um dia um pesquisador de segurança, ou pior, um cliente, percebe que seu site está servindo páginas promovendo sites de apostas para os crawlers de busca, injetadas por uma vulnerabilidade em um software que você já tinha esquecido que estava rodando. Isso acontece o tempo todo, e acontece com negócios sérios e bem administrados, não só com blogs amadores. Esse não é um risco que eu quero carregando em infraestrutura que eu não controlo totalmente. A única solução real é não depender do código abandonado de outra pessoa, para começo de conversa.

Como funciona de verdade

A Chinaski não é uma aplicação ao vivo servindo páginas de um banco de dados a cada requisição. Ela constrói o site: pega o conteúdo, passa por um conjunto de templates e escreve arquivos HTML estáticos. O que os visitantes carregam é estático, sem chamada de banco de dados entre um clique e uma página. Isso importa para velocidade, e importa ainda mais para segurança. Um arquivo estático não pode ser explorado do jeito que uma página dinâmica com banco de dados pode. Não há formulário de login no site público para alguém tentar forçar, nenhuma query string para alguém injetar. Toda a superfície de ataque que a maioria dos CMS oferece de graça simplesmente não existe aqui.

O trade-off é que tudo acontece na entrada, não na saída. Quando eu mudo algo, eu recompilo o site, e a nova versão sai como arquivos, mais parecido com compilar software do que editar uma página ao vivo. Eu gosto assim. Isso me obriga a saber exatamente em que estado o site está, em vez de confiar que um sistema ao vivo em algum lugar está se comportando do jeito que eu acho que está.

Desvantagens

Eu tenho que manter isso sozinho. Quando algo quebra, não existe um tópico de fórum para copiar uma solução, nenhuma resposta no Stack Overflow escrita por alguém que bateu no mesmo bug exato no mesmo plugin exato. Existe só eu e o código. Cada recurso que eu tenho, eu tive que construir, testar e estar disposto a ser quem conserta em um horário inconveniente se parar de funcionar. Isso é um peso real, e eu não finjo o contrário.

Eu tenho que treinar qualquer um que mexer nisso. Não existe um exército de freelancers que já conhecem a Chinaski, nenhum curso de certificação, nenhum marketplace de contratados que consigam aprender em um fim de semana. Se alguém me ajuda a rodar este site, ou a ROI Wire, ou a Coppermont, sou eu quem ensina como o sistema realmente funciona, desde a estrutura de blocos até as regras de conteúdo e as peculiaridades que só eu conheço porque eu as escrevi. Isso é mais lento do que entregar a alguém um login do WordPress e um guia de início rápido.

Muito mais vantagem

Eu prefiro manter meu próprio software a alugar o de outra pessoa e torcer para que mantenham a segurança, mantenham a manutenção e mantenham o preço razoável quando eu já estiver dependente. Controle total, privacidade real, e nada que expira porque eu esqueci de clicar em renovar um plugin que mal lembro de ter instalado.

É também, sinceramente, o mesmo argumento que eu faço para clientes sobre as próprias operações deles. Sistemas alugados são bons até que não sejam, e quando deixam de ser, você geralmente já está preso. Ser dono da infraestrutura que realmente importa para o seu negócio não é uma preferência técnica. É uma decisão sobre quem está no controle quando algo dá errado, e eu prefiro que seja eu.