Skip to content

Basalt vs outras frameworks ​

Uma pergunta justa quando chegas: porquê o Basalt e não o NestJS, o AdonisJS ou o Fastify simples? Aqui fica um posicionamento honesto — incluindo onde as outras são mais fortes.

Onde o Basalt se encaixa ​

O Basalt vai buscar o mecanismo ao NestJS / AdonisJS (container de DI, ciclo de vida de plugins, contexto de pedido) e a amplitude de baterias ao ecossistema Laravel — orientado a SaaS multi-tenant e agnóstico ao servidor HTTP por baixo.

O ADN Laravel é intencional: o @basaltkit/subscriptions ecoa o Cashier, o @basaltkit/permissions e o @basaltkit/activity seguem a Spatie, e o modelo de faturação inspira-se no Soulbscription — mas reconstruído para TypeScript.

Num relance ​

BasaltNestJSAdonisJSLaravel (PHP)Fastify / Hono
TipoFramework backendFramework backendFramework full-stackFramework full-stackMicro-framework HTTP
LinguagemTypeScript (Zod-first)TypeScriptTypeScriptPHPJS/TS
IoC / DIContainer por tokens, sem decoratorsContainer, decorators + reflectionContainerContainer—
Servidor HTTPAgnóstico (Fastify/Express/Hono)Express/FastifyPróprioPróprioé o servidor
Multi-tenancyDe raiz (resolvers, scoping, fail-closed)Constróis tuConstróis tuPacotesConstróis tu
Auth · Teams · Billing · Permissões · Filas · Pesquisa · Realtime · Webhooks · …Incluídos (78 pacotes)Core mínimo + ecossistemaVários incluídosEcossistema enorme—
FrontendSDK + admin headless (backend-focado)—Edge / InertiaBlade / Livewire—
MaturidadeNovo (1.x)Testado em batalhaEstabelecidoMuito maduroMuito maduro

O que distingue o Basalt ​

  • Multi-tenancy de primeira classe. Resolvers plugáveis (subdomínio, domínio, header, rota), uma extensão do Prisma que limita cada query ao tenant ativo e falha fechado sem um, e contexto de tenant por pedido. Na maioria das frameworks isto constróis tu.
  • Baterias de SaaS que encaixam. Auth, teams + convites, subscrições + gateways de pagamento, permissões, filas, pesquisa, realtime, webhooks, notificações, activity/audit, storage, mailer, i18n, flags, exports — a amplitude do ecossistema Laravel, integrada e tipada.
  • Agnóstico ao adaptador. As mesmas rotas tipadas, enrichers e guards correm em Fastify, Express ou Hono. Trocar a camada HTTP não mexe na tua app.
  • Zod-first, sem decorators. Os schemas geram os tipos, o documento OpenAPI e o SDK type-safe — sem metadados de reflection, sem @Decorators.

Onde as outras são mais fortes (com honestidade) ​

  • Maturidade e comunidade. NestJS e Laravel têm anos de produção, milhares de pacotes de terceiros, tutoriais e mercado de contratação. O Basalt é novo.
  • Full-stack. Laravel e AdonisJS trazem views e ferramentas de frontend; o Basalt é backend + um SDK / admin headless — trazes o teu frontend.
  • Estilo com decorators. Se gostas dos @Injectable() / @Get() do NestJS, a abordagem explícita do Basalt (funções e tokens) é um gosto diferente — melhor ou pior conforme tu.

Quando o Basalt encaixa bem ​

  • Estás a construir um SaaS multi-tenant e não queres reinventar tenancy, auth, teams, faturação e permissões.
  • Queres TypeScript de ponta a ponta, com tipos a partir dos schemas, OpenAPI e um cliente gerado.
  • Valorizas pacotes pequenos e compostáveis e escolher só o que precisas — funciona igualmente bem para uma API simples (vê Para além do SaaS).

Quando procurar outra coisa ​

  • Precisas de um ecossistema enorme e maduro e muita cobertura de tutoriais/contratação hoje → NestJS ou Laravel.
  • Queres uma experiência full-stack integrada com views renderizadas no servidor → Laravel ou AdonisJS.
  • Só precisas de um serviço HTTP minúsculo sem framework nenhuma → Fastify ou Hono sozinhos.

Numa frase ​

O Laravel do TypeScript, feito para SaaS multi-tenant — a amplitude de baterias do Laravel, um núcleo de plugins/DI ao estilo Nest, agnóstico ao adaptador HTTP, e multi-tenancy de raiz.

Publicado sob a licença MIT.