Porque Construímos com Laravel e Vue: Análise Técnica
2026-08-24 · 8 min de leitura
Se está a avaliar-nos como fornecedor — ou se é a pessoa técnica a quem pediram para "dar uma vista de olhos" à proposta — este artigo é para si. Todos os estúdios têm uma stack por omissão. A nossa é Laravel no back-end, Vue 3 no front-end, ligados pelo Inertia.js, entregues como um único monólito. É uma posição de engenharia deliberada, não um hábito. Aqui fica o raciocínio, incluindo onde ele deixa de valer.
A arquitetura num parágrafo
Um repositório. Um único deploy. O Laravel trata do routing, autenticação, validação, acesso à base de dados, filas e tarefas agendadas. O Vue renderiza a interface em componentes de ficheiro único. O Inertia substitui por completo a camada REST/GraphQL: um controller devolve um componente de página e as suas props, o Inertia transporta-os, o Vue renderiza. Sem versionamento de API, sem dois routers em conflito, sem validação duplicada, sem gestão de tokens. Obtém a experiência de utilizador de uma SPA com a simplicidade de um servidor clássico.
// Uma "página" completa nesta stack. Sem endpoint de API, sem fetch, sem serializer.
public function index(Request $request)
{
return Inertia::render('Faturas/Index', [
'faturas' => Fatura::query()
->where('empresa_id', $request->user()->empresa_id)
->latest()
->paginate(25),
]);
}
É esta a camada de dados inteira para esse ecrã. Multiplique o boilerplate eliminado por 40 ecrãs e percebe de onde vem a nossa velocidade de entrega.
Porquê um monólito à escala de PME
A conversa dominante da última década — microserviços, SPA + API separadas, serverless — foi conduzida por empresas com centenas de engenheiros e tráfego medido em milhões de pedidos por minuto. O software de uma PME portuguesa é outra classe de problema:
| Dimensão | Aplicação típica de PME | O que isso implica |
|---|---|---|
| Utilizadores em simultâneo | 5–500 | Um servidor bem afinado chega |
| Equipa a mexer no código | 1–3 programadores | A coordenação entre serviços custa mais do que rende |
| Frequência de deploy | Diária a semanal | Um pipeline, um caminho de rollback |
| Volume de dados | Cabe folgadamente num Postgres/MySQL | Joins vencem chamadas de rede |
| Orçamento | €6.000–€50.000 no total | Cada camada de infraestrutura multiplica o custo |
Uma SPA + API separadas duplica a superfície: dois repositórios (ou um monorepo com tooling), CORS, estratégia de tokens, contratos de API, dois pipelines de deploy, e uma classe de bugs (contratos dessincronizados, race conditions entre deploys) que num monólito simplesmente não pode existir. Para a ferramenta de gestão de encomendas de uma transportadora de cinco pessoas em Sintra, esse overhead não compra nada. Só engorda a fatura e piora o bus factor.
E os monólitos escalam mais do que as conferências admitem. Laravel com Octane (Swoole/FrankenPHP) aguenta milhares de pedidos por segundo em hardware corrente. A esmagadora maioria das aplicações de PME nunca chegará perto desse limite.
Baterias incluídas: o que não nos paga para construir
O argumento prático mais forte a favor do Laravel é o que vem na caixa ou em pacotes oficiais. Cada item abaixo, num projeto Node/Express ou Go, seria uma dependência de terceiros a auditar ou uma semana de trabalho à medida:
- Autenticação e permissões — sessões, recuperação de password, verificação de email, 2FA (Fortify), login social (Socialite), policies para permissões ao nível do registo.
- Filas e trabalhos em segundo plano — drivers para base de dados, Redis ou SQS, retries com backoff, gestão de falhas, painel de monitorização (Horizon). Enviar 2.000 faturas sem bloquear um pedido é uma classe de 10 linhas.
- Realtime — o Laravel Reverb dá WebSockets (dashboards ao vivo, notificações) com servidor e cliente oficiais. Sem fatura da Pusher, sem cola de Socket.io.
- Tarefas agendadas — o cron expresso em código, versionado com a aplicação.
- Validação, email, armazenamento de ficheiros (local/S3), rate limiting, URLs assinados, encriptação — tudo oficial, tudo documentado num só sítio.
- Testes — Pest/PHPUnit com factories e testes HTTP incluídos. Os nossos projetos entregam-se com testes a cobrir os fluxos de dinheiro.
O ponto económico: quando um cliente paga por "contas de utilizador com perfis de acesso", está a pagar configuração e lógica de permissões, não a reinvenção da gestão de sessões. É em grande parte por isso que uma aplicação à medida connosco custa claramente menos do que é típico no mercado português, onde o software à medida em agências arranca muitas vezes nos €15.000. (Nota lateral: se a sua PME se qualifica, o Vale Digitalização do Portugal 2030 pode cofinanciar 75% até €20.000 em projetos de digitalização — confirme as regras em vigor em portugal2030.pt, porque avisos e condições mudam.)
A realidade da contratação e do bus factor em Portugal
Escolhas de tecnologia são escolhas de contratação com atraso. Se o seu fornecedor desaparecer, ou se quiser trazer o desenvolvimento para dentro de casa, quem mantém o código?
PHP e Laravel têm das maiores bolsas de talento em Portugal — do Minho ao Algarve há programadores Laravel em agências, fábricas de software e freelancing, e o Vue é um dos dois frameworks de front-end dominantes. Qualquer programador Laravel competente abre um projeto nosso e está produtivo em dias, porque o framework impõe convenções: os controllers vivem num sítio, os jobs noutro, o ORM é o ORM. Compare com um serviço Node feito à mão onde cada decisão de arquitetura viveu na cabeça do autor original.
É este o argumento do bus factor a favor de tecnologia "aborrecida" e convencional: o framework é a documentação. Escrevemos documentação específica de cada projeto, claro — mas a garantia mais forte que podemos dar a um cliente é que o seu ativo é mantível por um mercado, não por uma pessoa.
Onde entra o TypeScript
Escrevemos a camada Vue em TypeScript, com as props do Inertia tipadas — os contratos de dados do front-end são verificados em build. O tooling é Vite: hot reload em menos de um segundo, standard em todo o lado. E não perseguimos modas: a Composition API do Vue 3 está estável desde 2020, e o Laravel faz um major release por ano com guias de atualização publicados. Atualizações previsíveis são uma vantagem que se sente ao terceiro ano, não à primeira semana.
Quando escolheríamos outra coisa
Secção de honestidade. Esta stack é a nossa omissão, não a nossa religião:
- Sites de apresentação sem lógica aplicacional. Um site institucional de cinco páginas não precisa de um framework a correr. Mantemo-los leves — é para isso que existe o nosso escalão Essential, num mercado onde o valor percebido como justo para o site de uma PME anda entre €600 e €1.500.
- Cargas computacionais pesadas. Processamento de vídeo em tempo real, inferência de ML em larga escala — PHP é a ferramenta errada. Poríamos Python ou Go atrás de uma fila, com o Laravel como camada de orquestração, ou diríamos que o projeto não é para nós.
- Apps móveis offline-first. O Inertia é um padrão orientado ao servidor. Uma app de terreno que tem de funcionar sem rede exige uma arquitetura local-first — outro formato de projeto, outro orçamento.
- Equipa interna com stack própria. Se a sua equipa vive em Django ou Rails, acrescentar uma base de código Laravel ao seu património é um custo, não um presente.
- Ambições de hiperescala com financiamento à altura. Se o plano é ter 100 engenheiros em três anos, as suas restrições não são as de uma PME e a arquitetura deve ser desenhada contra as suas, não contra as nossas.
O que isto significa para a sua avaliação
Perguntas que vale a pena fazer a qualquer fornecedor, nós incluídos: Quantas peças móveis tem a arquitetura proposta? O que acontece se desaparecerem — quem mais consegue manter isto? O que vem do framework e o que é construído (e faturado) de raiz? Qual é o plano de atualizações daqui a três anos? As nossas respostas: um único deploy; qualquer programador Laravel numa bolsa de talento nacional e europeia; auth, filas, realtime e agendamento vêm de borla; e um major upgrade previsível por ano.
Se tem um projeto para confrontar com esta stack, descreva-o no nosso estimador e recebe um âmbito concreto e um número para reagir — mais depressa do que esperaria.
Comentários (0)
Ainda sem comentários — comece a conversa.
Inicie sessão para participar na conversa. Iniciar sessão · Criar conta