Open Source para Closed Source

Publicado às 23/05/2026 14:30 • #programming

This content is not available in your language... So if you don't understand the language... well, at least you can appreciate the pictures of the post, right?

Lá para 2016 e 2017, eu contribuía para o DragonProxy, Nukkit e para o Pokkit, e foi nessa época que eu acabei tendo um fascínio com a ideia de "open source", onde qualquer um um pode ajudar a desenvolver e estudar o projeto, assim todos sairiam ganhando.

Então, quando eu criei a Loritta em 2017, eu decidi deixa-lá open source e, para acompanhar, em 2019 deixei os plugins do SparklyPower open source também. O "marketing" que eu fazia era que, com os projetos sendo open sources, qualquer pessoa poderia melhorar a Loritta e o SparklyPower.

Mas depois de quase 10 anos nesse ramo de manter os projetos open source, eu percebi que talvez fosse a hora de deixá-los closed source, pois...

  • Muitas pessoas querem fazer self-hosting não para não depender de mim, e sim para competir diretamente contra os meus serviços.
    • Self-hosting é ótimo, eu mesmo faço self-hosting de várias ferramentas, como Grafana, VictoriaMetrics, Plausible... e alguns destes produtos possuem até SaaS pelos criadores para financiar o projeto.
    • Mas eu não hospedo o Plausible para competir contra os criadores do Plausible, eu hospedo pois eu tenho os recursos para hospedar eu mesmo, mas não tenho interesse de oferecer hospedagem do Plausible para outras pessoas. Se o Plausible fosse pago, eu provavelmente teria feito minha própria versão.
    • No caso da Loritta, muitas pessoas queriam self-hostear para competir contra a Loritta com uma branding diferente. E para o SparklyPower nem existe isso de self-hostear pois os plugins não são SaaS, você só estaria usando os plugins do SparklyPower no seu servidor de graça mesmo.
  • Fazer self-hosting da Loritta e do SparklyPower é complicado pois são projetos grandes que não foram feitos para self-hosting. São projetos com várias "moving parts", com partes que eu desenvolvi especificamente para o use case que precisa ser atendido. Os plugins do SparklyPower por exemplo dependem do SparklyPaper, a fork que eu fiz do Paper, então não era nem algo que é fácil para o end user usar.
  • Por causa da dificuldade de self-hosting, apenas amigos próximos acabavam contribuindo para a Loritta e para o SparklyPower.
  • Vários projetos SaaS que monetizam com open source vão pelo caminho do "open core", onde deixam uma parte do projeto open source com partes premium privadas atrás de paywall, ou vão pelo lado do "source available", onde o código-fonte tem restrições para evitar competição de terceiros. Para o caso da Loritta e do SparklyPower, open core não se encaixa. A Loritta até poderia ter partes open core, mas o SparklyPower não se encaixa de maneira alguma. E source available não tira o fato que alguém malicioso poderia quebrar a licença do jeito que ela bem entender.
  • Uma finalidade de deixar um projeto open source é porque você quer que o projeto tenha adesão para que você possa converter clientes para uma modalidade paga do seu projeto, por exemplo: O OpenCode é uma harness para LLMs open source e gratuita, mas você pode pagar pelo OpenCode Zen que são planos pagos com modelos LLMs SoTA. O OpenCode é open source pois é a "porta de entrada" para os modelos pagos, então quanto mais pessoas usando o OpenCode, mais chance dessas pessoas acabarem convertendo para os planos pagos. A Loritta não tem isso, pois se você hospedar a Loritta, você já teria todas as funções premium para você.
  • Outra finalidade de deixar um porjeto open source é porque você quer que muitas pessoas usem o seu projeto para depois vender serviços de suporte e consultoria, que é o que o SQLite faz. A Loritta até poderia se aplicar neste modelo, e o SparklyPower eu teria que vender serviços de consultoria para servidores que competem com o SparklyPower, o que meio que seria um conflito de interesse.
  • Dar ideias fáceis de ser implementadas para possíveis contribuidores é difícil, pois a maioria os problemas simples você mesmo consegue fazer sem pedir para outra pessoa, e problemas complexos são difíceis demais para alguém novato fazer, como também você estaria vazando o roadmap de novas funções que você quer implementar no projeto.
  • Qualquer coisa nova que eu faço aparece publicamente, então nada que eu faço (como eventos) é uma surpresa, pois qualquer um pode ver o código-fonte do projeto e descobrir qual é a coisa nova. Como também você recebe críticas sobre o código que, normalmente, não são nada relevantes.
    • Para ter uma ideia, já recebi críticas no passado por ter chamado o nome do plugin de scoreboard do SparklyPower de "SparklyAlphysScoreboard" (sendo Alphys uma referência a Undertale)... mas que coisa tosca para se criticar?!
  • Mesmo com o código aberto, muitas pessoas preferem ser ignorantes e acusar a Loritta de fazer coisas que ela não faz, como, por exemplo, "a Loritta me roubou!", ou "a Loritta salva todas as suas mensagens enviadas!" sendo que era só ver a implementação do código para descobrir o que ela faz. Se já me acusam com isso mesmo com o código sendo aberto, então mudaria nada deixar ele fechado.
  • Uma das coisas que eu gostava de open source é que as pessoas podem estudar o seu código para aprender, pois eu fiz a mesma coisa com outros projetos como por exemplo, a Mantaro. Mas nenhum dos bots que vejo que são descaradamente inspirados na Loritta são open source, então não é uma atitude recíproca das pessoas que usam a Loritta como referência.
  • Uma das maiores críticas que fazem é o rug pull de deixar open source no começo e depois trocar para source available ou closed source, assim abusando das vantagens de projetos open sources... mas para a Loritta e o SparklyPower eu praticamente não tive vantagens de deixar open source considerando que a grande parte do código da Loritta e do SparklyPower foi feito por mim, então não é como se eu tivesse abusado da "boa vontade" do espírito open source, e nenhum dos dois projetos usou "o projeto é open source!" como um motivo para usá-los.
  • Enquanto existem outros bots open source no Discord, quase nenhum do tamanho da Loritta é open source (a única exceção é o YAGPDB), e até onde eu sei não tem nenhum outro servidor de Minecraft do tamanho do SparklyPower que deixa os plugins open source.
  • Falam que ter um projeto open source de sucesso no GitHub é bom para o currículo... mas para que eu preciso de projetos no currículo se eu trabalho para mim mesmo?!

A experiência foi bem diferente com o Butterscotch, onde eu publiquei o projeto esperando nada em troca (baseando nas minhas experiências passadas) mas depois de algumas semanas já tinham pessoas que estavam gasp contribuem para o projeto. E foi aí que eu percebi o que realmente faz valer a pena um projeto ser open source.

O Butterscotch é um caso diferente, ele é essencialmente um emulador que roda jogos do GameMaker: Studio, então saber o que implementar é muito mais fácil já que normalmente se resume a "veja as funções não implementadas e faça".

Para mim é estranho isso após eu ter deixado a Loritta e o SparklyPower open source por tanto tempo, especialmente porque você vê no Reddit e no Hacker News muitas pessoas falando como é bom ter um projeto SaaS open source... mas quanto mais você pensa, você percebe que a maioria dos SaaS que eram open source acabam migrando para source available, closed source, ou fazem delayed distribution para o plano grátis. Os que não viraram são SaaS que possuem fontes de rendas diferentes, como o OpenCode (onde o harness não é o produto), ONCE (onde você só recebe o código após comprar o produto), Docker (onde a monetização vem do Docker Desktop e de CI/CD e compliances), entre outros. E é claro, você também percebe que a maioria dos SaaS não são open source.

É claro que, depois que você deixa algo open source, não dá para "desopensourcear" o que já estão lá fora, mas a questão é mais sinalizar que, daqui pra frente, o projeto não é mais open source. Eu ainda acredito no espírito open source, e essa mudança não significa que a Loritta e o SparklyPower não podem voltar a serem open source no futuro.