Por que eu criei um gerador de códigos para Laravel? A história do Vemto
--
Parece que foi ontem, mas já fazem quase dois anos desde que lancei a primeira versão oficial do Vemto.
Eu sempre fui fascinado por automatizar processos, e acreditava que se conseguisse agilizar o processo de criação de sistemas e aplicações, eu poderia focar nas partes mais importantes do desenvolvimento, sem perder tempo com coisas repetitivas como CRUD, relatórios simples, etc.
Gerar código acabou sendo um dos meus assuntos preferidos durante a universidade, e dediquei-me à estudar diversas ferramentas disponíveis na época.
No entanto, a maioria dessas ferramentas não eram acessíveis por algum dos seguintes motivos:
- Eram extremamente caras
- A interface não era intuitiva
- Não estavam disponíveis para as linguagens que eu utilizava (PHP, JavaScript)
- Geravam código mal otimizado e confuso, prejudicando a manutenção após a geração (gerando dependência da ferramenta)
Por esse motivo, resolvi que desenvolveria meu próprio software gerador de código.
Durante sete anos, eu tentei diversas vezes desenvolver algo que cumprisse com os requisitos necessários. Falhei em praticamente todas as tentativas, principalmente por falta de experiência (não só de como gerar o código, mas também de como gerar boas aplicações).
Mas a cada projeto, eu aprendia algo novo e refinava o processo. Várias coisas que culminaram no Vemto surgiram nesse período:
- a Template Engine VET, que é o coração do Vemto hoje (herança do meu antigo projeto PWC e do AppStart, um gerador de projetos Laravel na nuvem que não vingou)
- a metodologia de geração de código que foi sendo refinada à cada projeto
- a escolha do Laravel, que acabou sendo meu principal framework de trabalho à partir de 2016. Antes minhas tentativas estiveram mais focadas em geradores de código generalistas. Focar no Laravel ajudou à diminuir o escopo (uma escolha que começou com o AppStart)
Até que no final de 2019, passando por uma situação muito difícil em que precísavamos (eu e minha esposa) de uma quantia considerável de dinheiro, decidi que era hora de tentar novamente.
Naquele momento eu já tinha um outro produto no mercado, o Rapid Mockup, que era suficiente para pagar nossas contas, mas não o suficiente para resolvermos o problema citado.
Após projetar e levantar diversos requisitos e realizar experimentos, comecei à desenvolvê-lo em Março de 2020.
Foram diversos desafios durante o desenvolvimento:
- Período de Pandemia (Covid)
- Fiz a escolha errada do banco de dados (o que gerou enormes dores de cabeça e acabou culminando na criação do RelaDB, que é um banco de dados próprio criado para o Vemto)
- O escopo do projeto era muito maior que o imaginado inicialmente
- Apesar das experiências anteriores, eu ainda tinha muito para aprender
- Tinha uma pressão enorme para não falhar; Afinal, dependíamos do sucesso do projeto, e várias pessoas aguardavam o lançamento, já que a Landing Page estava no ar desde Abril de 2020 (com milhares de assinantes da Newsletter)
- Por ser um projeto complexo, não tinha como lançar pequenas versões incrementais desde o início. Muitas coisas precisavam estar prontas ao mesmo tempo para que funcionasse
No entanto, após árduos sete meses de desenvolvimento (lembro de passar da meia-noite trabalhando em alguns dias), o Vemto foi lançado em 29 de Outubro de 2020.
Sou muito grato à Deus pelas forças, e à minha esposa pela paciência e companheirismo durante esse período. Foi uma época difícil.
Um mês após o lançamento, tínhamos vendido o suficiente para resolver nossa situação, e com o tempo o Vemto escalou para tornar-se um dos principais produtos da minha pequena empresa (King of Code).
Após isso houveram muitas versões e novidades. Até mesmo o time cresceu, e hoje somos dois programadores trabalhando no projeto, assim como acabamos de passar de mil seguidores no nosso perfil do Twitter, um marco importante.
E finalmente estamos começando o desenvolvimento da versão 2. Eu não consegui colocar tudo o que queria na versão 1 do Vemto. Além disso, após quase dois anos no mercado, ouvi muitas opiniões e sugestões de clientes, além de perceber que o software precisa ser reescrito com uma nova arquitetura, mais flexível e poderosa que a versão atual.
Agora sinto-me preparado para trazer uma ferramenta ainda mais completa para o ecossistema Laravel.
Aguarde novidades!