Parte 3 de 3 desta série sobre camada de view no Laravel. Na parte 1: Blade. Na parte 2: Livewire. Aqui, fechando: Inertia.
Você já construiu uma API REST só pro seu próprio front-end consumir?
Deixa eu descrever uma cena que talvez você reconheça.
Você queria usar Vue (ou React) no front. Aí montou uma API no Laravel: rotas /api, controllers devolvendo JSON, Sanctum pra autenticar, resources pra formatar. Do outro lado, um projeto SPA separado consumindo tudo isso com axios, gerenciando token, tratando 401, montando estado.
E o detalhe engraçado: essa API só tem um cliente. O seu próprio front-end. Você construiu um contrato público completo pra conversar consigo mesmo.
O Inertia olha pra essa cena e pergunta: "e se a gente pulasse a API inteira?".
O que o Inertia faz (e por que confunde tanta gente)
O Inertia não é um framework. É uma ponte. Ele deixa seu controller Laravel devolver um componente Vue/React — passando os dados direto como props, sem API no meio.
public function index()
{
return Inertia::render('Produtos/Index', [
'produtos' => Produto::paginate(10),
]);
}
Do lado do front, isso chega como props no seu componente:
export default function Index({ produtos }) {
return <ProductTable data={produtos} />;
}
Repara no que não tem aí: nenhuma rota /api, nenhum axios.get, nenhum resource montando JSON na mão, nenhum token pra gerenciar. A primeira carga vem como HTML normal; as navegações seguintes o Inertia troca via XHR, recebendo só as props novas. Você tem React/Vue de verdade, mas continua roteando e autenticando como um app Laravel comum — com web middleware, sessão e tudo.
É por isso que ele confunde: não é Blade (tem front component de verdade) e não é SPA clássica (não tem API). É o meio-termo — e o meio-termo sempre gera "peraí, mas então o que é isso?".
Onde o Inertia é a escolha certa
- App interno rico em interatividade feito por um time que curte e domina Vue/React.
- Você quer componentes de front de verdade (ecossistema, libs, reatividade), mas não quer manter uma API separada só pra si mesmo.
- Um único cliente: o front é o web, e só ele. Sem app mobile, sem parceiro externo consumindo os mesmos dados.
Nesse cenário, o Inertia te dá o melhor dos dois mundos: a produtividade de "controller que devolve view" com o poder de um front-end moderno. E te devolve um monte de tempo que ia embora mantendo API que ninguém além de você usa.
Onde ele NÃO serve (e essa é a pegadinha)
Aqui está a armadilha que morde no futuro: Inertia não é uma API. As props que ele manda não são um contrato pensado pra ser consumido por qualquer coisa — são pra aquele componente, naquela tela, naquele momento.
Então, se amanhã aparecer um app mobile, um parceiro que precisa integrar, um webhook, um segundo front-end... o Inertia não te ajuda. Você vai precisar construir a API REST de verdade, do zero, do lado.
Ou seja, a escolha não é "Inertia é melhor que API". É: você tem mais de um cliente pros seus dados? Se sim, a API paga o próprio custo e o Inertia não substitui ela. Se não, a API era cerimônia e o Inertia te livrou dela.
Fechando a série: qual é o seu caso?
Depois de três posts, dá pra resumir a decisão numa régua honesta:
- Blade — a tela é conteúdo, formulário e link. SEO importa. Simplicidade acima de tudo. Comece aqui.
- Livewire — precisa de reatividade, o time é backend-heavy e não quer JS. CRUD e painel interno. Sobe pra cá quando o Blade + Alpine não dá conta.
- Inertia — quer componentes React/Vue de verdade, o time domina JS, e o web é o único cliente dos dados. Vai pra cá quando a interatividade é o coração do produto.
Não existe "o melhor". Existe o certo pro seu contexto — e o erro caro é escolher por hype, não por necessidade.
Antes de você fechar a aba
Pergunta final da série: aquela API REST do seu último projeto Laravel — quantos clientes ela realmente tem além do seu próprio front-end?
Se a resposta foi "só ele mesmo", talvez o Inertia (ou até o Livewire) tivesse te poupado semanas. Cai nos comentários e me conta qual das três é a sua stack de view — e se você concorda com a régua aí de cima. 🔥
E se essa série te ajudou a organizar a cabeça, me segue: eu escrevo Laravel sem hype e sem firula toda semana.
Top comments (0)