Oscar Dias

CEO na Softerize

Oscar Dias

O Monolito Moderno: Velocidade e Sustentabilidade no Desenvolvimento de SaaS

LinkedIn

No ecossistema acelerado de startups, a escolha da stack tecnológica pode ser a diferença entre o lançamento bem-sucedido eo "looping eterno da análise" (quando você está sempre adicionando algo novo e não consegue lançar nunca). Recentemente, reli o clássico artigo de Martin Fowler, Monolith First, e a premissa continua muito atual: quase todos os sistemas bem-sucedidos começam como um monolito, mesmo que evoluam para algo diferente depois.

Em nossa jornada construindo nosso SaaS Matriz, decidimos abraçar essa filosofia, mas com uma stack contemporânea que elimina as dores de cabeça dos monolitos legados.

A "Vibe" da Stack: Laravel, InertiaJS e Vue

Nossa escolha não foi baseada em tendências passageiras, mas em produtividade e coesão. A combinação dessas ferramentas cria um fluxo de trabalho onde o contexto não se perde entre o backend e o frontend.

  • Laravel: É o nosso core. O framework PHP desenvolvido para os "artesões" da web. Ele resolve de forma nativa o que é básico, mas complexo (autenticação robusta, filas, ORM potente), permitindo que o foco da nossa programação seja a lógica de negócio, e não a infraestrutura do código. Muitos dinossauros do PHP reclamam, em especial da performance, mas sabendo usar o framework é genial. Na minha experiência o ganho na manutenibilidade do código é um "game changer" total.
  • InertiaJS (The Modern Monolith): O Inertia é a "cola" mágica. Ele se autointitula o "Monolito Moderno" porque elimina a necessidade de construir uma API REST ou GraphQL complexa apenas para alimentar o frontend. Com o Inertia, o roteamento e os controllers permanecem no Laravel, mas a visualização é entregue como um componente Vue JS. Isso remove o overhead de gerenciar tokens JWT, CORS ou estados de carregamento manuais.
  • VueJS: No frontend, o VueJS entra como a camada de interatividade. Escolhemos o Vue pela sua curva de aprendizado suave e pela reatividade intuitiva. Ele nos permite criar interfaces altamente dinâmicas, com componentes reutilizáveis e uma gestão de estado que faz sentido. No contexto do Inertia, o Vue se comporta como uma engine de templates poderosa, mas com todo o poder de uma SPA (Single Page Application).
  • TailwindCSS: Garante que o design seja implementado diretamente no HTML, mantendo o bundle leve e a manutenção visual extremamente simples, sem arquivos CSS gigantes e impossíveis de gerenciar.

Bônus: O Futuro com NativePHP

Além de dominar a web, essa stack abre portas para o ecossistema desktop e mobile de uma forma sem precedentes através do NativePHP. Ele nos permite empacotar nossa aplicação PHP / Laravel como um executável nativo para Windows, Mac, Linuxm, Android e iOS!

O grande potencial aqui é a reutilização de lógica: você não precisa de um time de Swift ou C# para criar um app. Você utiliza o mesmo sistema de roteamento e as mesmas Views em Vue. O NativePHP transforma nossa stack web em uma ferramenta de desenvolvimento multiplataforma completa.

Organização e Manutenção de Código

A grande vantagem dessa abordagem de monolito em termos de engenharia de software é a redução da carga de integração. Ao programar, não precisamos alternar entre repositórios ou lidar com quebras de contrato de API. Se eu altero um campo no banco de dados com uma migration, vejo essa mudança refletida imediatamente no componente Vue através do Inertia. O código é um só.

A organização segue o padrão MVC (Model-View-Controller), mas onde a "View" é um componente moderno e reativo. Isso facilita a manutenção a longo prazo: novos desenvolvedores entendem o fluxo completo da aplicação em pouco tempo, já que a lógica de autorização e dados está centralizada no backend.

DevOps Descomplicado: O Poder do Laravel Forge

Muitos times perdem semanas configurando clusters Kubernetes ou orquestrações complexas de Docker. Como já seguimos uma abordagem de monolito, nós optamos pelo pragmatismo com o Laravel Forge.

O Forge elimina a necessidade de gerenciar containers Docker em produção para muitos casos de uso. Ele provisiona servidores diretamente no provedor de nuvem, configura firewalls, Nginx, certificados SSL e isolamento de usuários de forma automatizada. Isso nos dá uma performance "bare metal" com a conveniência da nuvem.

Infraestrutura Global e Armazenamento

Nossa infraestrutura é desenhada para resiliência e baixa latência, utilizando o melhor de cada região:

  • Estados Unidos: Utilizamos Digital Ocean com seu sistema de Object Storage (Spaces) para ativos e uploads. A expericência de usuário do Digital Ocean não tem igual e o serviço não dá problema.
  • Brasil: Como não temos a opção do Digital Ocean, utilizamos Vultr combinada com S3 (ou compatíveis).

Em ambos os casos, a topologia é escalável. O Forge facilita a separação de responsabilidades em servidores distintos quando o tráfego cresce, permitindo ter instâncias separadas para Web Servers, Queue Workers e Database, além de configurar Load Balancers para distribuir a carga.

Segurança e Performance com Cloudflare

Complementando essa breve seção sobre DevOps, não deixamos nossos servidores expostos diretamente à internet (obviamente). Utilizamos o Cloudflare como nossa primeira linha de defesa.

Ter um WAF (Web Application Firewall) é obrigatório hoje em dia. Ele nos protege contra ataques de injeção de SQL, Cross-Site Scripting (XSS) e ataques de negação de serviço (DDoS) antes mesmo que o tráfego atinja nossa infraestrutura no Forge (DO ou Vultr).

Conclusão

Construir um SaaS não deveria ser sobre gerenciar infraestrutura complexa, mas sobre entregar valor ao cliente. Ao adotar o Monolito Moderno com Laravel e Inertia, e simplificar o DevOps com Forge, ganhamos o que há de mais precioso: tempo para inovar.

📌 Este artigo foi originalmente publicado no LinkedIn. Leia e comente lá também!