Como eu vivo de open source [Não é SASS]
Eu deveria estar estudando alemão nesse momento, mas decidi compartilhar com vocês aqui uma experiência que já compartilhei em alguns posts aqui da comunidade, da pra viver de open source ou tem que viver de luz?
Como cai nessa vida?
No ano de 2020 eu tinha um cliente de longa data e ele precisava de um e-commerce, poderia usar o woocommerce ou magento ou ainda qualquer opção pré-pronta de e-commerce e customizar ao bel prazer do meu cliente, porém na época ainda era um tempo de vacas gordas eu sugeri a ele fazer um MVP de um e-commerce eu cobraria 20% do que eu cobro normalmente mas, faria do zero, uma das condições que dei a ele que deixaria o código aberto e dei meus motivos.
O Mito do Open Source
Muita gente e coloco ai muitos lideres da parte técnica de empresas, morrem de medo de ter seus projetos em código aberto vou elencar aqui alguns dos motivos que vejo.
- Expor o código a ataques
- Perder a chance de vender a ideia (no caso de startup)
- Vão copiar minha ideia
Bom o primeiro acredito que demonstra uma falta de confiança no próprio código ou da equipe pois, um código bem feito não é tão fácil ser explorado, além do mais muitas vezes em projetos de maior porte eu vejo pessoas de boa indole sempre apontando as falhas possíveis, justamente por que a pessoa que aponta ou quer ajudar ou ainda quer ter o reconhecimento da parte da empresa seja com um emprego ou uma menção.
Com isso vamos para a próxima parte que é o medo de não conseguir investimento, ai curiosamente eu acho que isso pode ajudar para um investimento e por que? Justamente pelo fato do código estar aberto é uma forma de mostrar pro investidor que você confia muito no seu taco a ponto de deixar o código disponível pra quem vê. Um ponto que coloco aqui também é que sim, se for uma aplicação core da sua empresa o seu grande diferencial do mercado que ninguém tem e todo mundo quer talvez ainda seja interessante manter o código fechado, porém o seu sistema de faturamento ou qualquer um que não é um diferencial competitivo pra você pode ser aberto sem nenhum dano.
A ultima questão "Vão copiar minha ideia" acho que essa é a maior falácia de todas, por que pelo menos meu projeto ta ai desde 2021 e quem quer colaborar ainda tem dificuldade de subir o projeto e entender a estrutura o que dirá o Joãozinho ou a Mariazinha hacker que vai copiar e vender o mesmo projeto pro único cliente que por enquanto usa. E quanto a vender pra outros clientes nesse modelo aberto, na verdade ele estaria me ajudando.
Sendo assim, pro meu cliente o e-commerce não seria um core, pois ele não quer ser um marketplace de produtos. Além do mais o core dele ainda é vender de porta em porta então o e-commerce além de ser um canal necessário era algo não explorado e ainda um braço menos importante, e mesmo que fosse o canal principal o objetivo final dele é conseguir vender os produtos.
Falando mais do projeto
Bom falei que lá em 2020 aceitei um valor menor, além disso comecei a usar o Vuejs e o Python/FastAPI que eram frameworks que não tinha nenhum dominio, onde eu comecei realmente esse projeto em 2021 (por isso usei FastAPI ele tinha acabado de ser lançado). E como não sou irresponsável eu também comuniquei ao meu cliente que estava usando tecnologias mais novas, que a principio não tinha total dominio, ai ele acabou topando até por que era quase um valor simbólico.
Então fiz um MVP em 3 meses aproximadamente, muito trabalho e muito suor e lágrimas mas, o projeto saiu e foi um grande aprendizado pra mim, trabalhava 4 horas pós expediente nesse projeto praticamente, porém como explico nesse post aqui, eu tenho um filho pequeno, pandemia rolando, esposa sobrecarregada eu precisava ter colaboradores pro projeto continuar mesmo eu não estando nele.
Buscando colaboradores
A principio busquei alguém para dar a primeira oportunidade, então fui em alguns grupos e anunciei que procurava um estagiário, achei algumas pessoas, meu teste foi fazer a pessoa subir o projeto via docker-compose (que já existia) e fazer uma compra dava o número do cartão de teste e bola pra frente. Foram 20 pessoas interessadas apenas 1 completou e essa pessou ficou aproximadamente 9 meses nesse projeto (sendo pago pelo cliente) ai essa pessoa conseguiu o primeiro trabalho dela como Jr além do caso do cliente já querer pausar o projeto por hora.
Claro que não foi só ela como um dev pago que o projeto sobreviveu nesses meses, houve outras pessoas que se ofereceram para colaborar no projeto e puderam ajudar no crescimento do mesmo.
Uma coisa que preciso adicionar, é que sou extremamente grato a todas as pessoas que passaram nesse projeto sem elas esse projeto não seria possível.
A volta
Bom em 2023 o cliente me procurou de novo querendo voltar o projeto, naquele momento estava num inferno da vida, mas como o projeto vue já estava defasado 2 anos sem updates praticamente. Falei com um amigo para fazer o front novamente em nuxtjs, no meu caso só dei um update nas libs e como já tinha a API pronta nem esquentei com nada e fui tocando, nesse meio tempo a antiga estagiária (agora uma dev pleno) topou fazer um extra e ajudar a tocar esse projeto do front para acelerar o processo.
Lá pelo fim de 2023 eu acabei infelizmente sendo demitido do meu trabalho, já estava num burnout e com muitos problemas ocorrendo na minha vida o que me fez dar algumas semanas para respirar, conforme as coisas foram se ajeitando eu resolvi reestruturar algumas coisas do projeto que estavam bem feias no back (lembre-se eu escrevi o código em 2021 em 3 meses e nunca refatorei nada), falei pro cliente que ia reestruturar algumas coisas e aprovietando que ele queria usar um novo método de pagamento (pix) comecei a refatorar o código a principio ele me pagando um valor ainda pequeno.
Em 2024 acabei conversando com esse cliente e firmei um contrato um pouco melhor pra mim (cerca de 1/3 do que eu ganhava porém trabalhando 50%) e estamos assim até agora. Sendo que pelo fato do cliente querer novas features pro projeto eu ainda tenho digamos "um emprego".
Caso você que leu até agora tem interesse você pode entrar no discord do meu canal para saber como colaborar clicando aqui
Próximos passos
Uma das coisas que estou trabalhando é produzir a documentação e terminar o MVP do admin para oficialmente declarar que o projeto está em alpha. Ai é procurar em comunidades de e-commerce pessoas interessadas em sem early adopter e topar ajudar a financiar também o desenvolvimento o que ajudaria também a não depender só desse cliente e também ajudar a desonerar ele também, já que não é uma grande empresa e sei que há limitações pra ele o que diz a conseguir manter um pagamento com um valor alto.
Como vou fazer para "me manter"
Agora junto com o JP que está nesse momento liderando a parte de front do projeto a migrar tudo pra svelte, assim o front do cliente hoje vai ficar código fechado, porém terá outro front "generico" para outras pessoas usarem.
Minha ideia é ter esse template e uma documentação para quem quiser usar só subir o projeto seja usando docker-compose, dokku ou qualquer outra cloud. Dito isso usar o projeto em si me ajuda a dar popularidade ao projeto mas, não paga as contas então como eu vou fazer? A principio de duas formas.
- Pessoas que queiram me ajudar via Github sponsor que você pode ver aqui
- Através de novos contratos
Bom o primeiro sendo sincero é pouco provavél que alguém ajude por conta desse projeto é mais fácil alguém ajudar que acompanha meu canal mas, tendo a página do projeto pode ocorrer de ter alguma doação.
Quanto a contratos, mesmo deixando o código aberto, mesmo escrevendo uma doc explicando como subir o projeto, sempre tem pessoas que querem pagar para você cuidar do sistema deles e há também aqueles que vão querer um layout diferente ou ainda novas features e pra isso devo "fechar novos contratos" e assim me manter. Também penso em fazer como o NeoVim em "patrocinar uma feature" onde quem quiser pode pagar um valor para patrocinar uma feature e quando ela atingir a meta eu faço ela.
Por que não SASS?
Bom se for olhar friamente deve ter uma meia duzia de SASS com algumas dezenas de desenvolvedores trabalhando por ai, por que alguém usaria um SASS de algo complexo que é tocada por uma pessoa? Você pode se perguntar mas, não seria o mesmo caso por ser open source? NÃO, pois eu acredito que o grosso de quem usar meu sistema quando estiver mais estável vai ser pessoas que usam o software e hospedam em alguma cloud. Ai acredito que ali em cada 1000 ou 5000 pessoas usando gratuitamente deve vir 1 pessoa querendo algo mais "premium".
Acredito que só valeira fazer um SASS se esse projeto num futuro chegue a 1kk de usuários.
Caso sinta a curiosidade de ver o projeto ele está centralizado nesse mono repo clicando aqui, bom reforçar que não estou falando pra você me financiar, ou colaborar ou ainda usar meu projeto só queria compartilhar minha jornada aqui. Mas, se você ficou com um desejo louco de fazer qualquer uma das coisas que mencionei acima eu também fico grato.
É isso que queria compartilhar e espero que minha palavras realmente ajudem alguém.