Skip to content

nandocdev/plinth

Repository files navigation

SaaS-Kit-2026

Boilerplate SaaS multi-tenant para Laravel con aislamiento fuerte por tenant y arquitectura modular por contextos.

SaaS-Kit-2026 Banner

PHP Laravel Livewire Stancl Tenancy Pest

Resumen

Este repositorio implementa un monolito modular con separación estricta entre:

  • Central (landlord): administración SaaS global.
  • Tenant: aplicación aislada por cliente.
  • Shared: infraestructura y contratos compartidos.

El objetivo es evitar fugas de datos por diseño: base de datos, cache, storage y jobs aislados por tenant desde el inicio.

Estado actual

Central

  • Implementado: autenticación admin, CRUD de tenants/domains, planes y suscripciones.
  • Implementado: onboarding, lifecycle de suscripción, límites de uso, health dashboard.
  • Implementado: impersonation, backup/restore por tenant, data export, webhooks, auditoría.

Tenant (MVP)

  • Implementado: auth tenant (guard separado).
  • Implementado: dashboard y perfil (update de datos + contraseña).
  • Implementado: rutas tenant modulares por provider.
  • Implementado: modelos tenant sin connection hardcodeada.
  • Implementado: storage tenant-aware en storage/app/tenants/{uuid}/.
  • Implementado: cache tenant-aware con CacheTenancyBootstrapper.
  • Implementado: jobs tenant-aware con restore de contexto y guardrail de middleware.

Estado fuente: docs/technical/features.md.

Stack real del proyecto

  • PHP 8.3+
  • Laravel 13
  • Livewire 4 + Flux
  • Stancl Tenancy 3.x
  • PostgreSQL 16 (target)
  • Redis (target para cache/colas en producción)
  • Horizon, Pulse, Pennant
  • Pest + Larastan + Pint

Dependencias: composer.json.

Arquitectura de carpetas

app/
  Central/
    <Modulo>/
  Tenant/
    <Modulo>/
  Shared/
    DTOs/
    Contracts/
    Infrastructure/
    Support/

Módulos tenant actuales:

  • AuthenticationModule
  • WorkspaceModule
  • SelfServiceBillingModule
  • FeatureFlagsModule
  • ImpersonationModule

Módulos central actuales:

  • AuthenticationModule
  • TenantProvisioningModule
  • BillingModule
  • ActivityLogModule
  • AdminAuthorizationModule
  • SystemHealthModule
  • NotificationModule
  • PartnerWebhookModule
  • DataExportModule
  • AffiliateModule

Puesta en marcha rápida

Requisitos

  • PHP 8.3+
  • Composer 2+
  • Node 18+
  • PostgreSQL

Instalación

composer setup

El script realiza:

  • instalación de dependencias PHP y JS,
  • creación de .env si no existe,
  • key generate,
  • migrate,
  • build frontend.

Desarrollo local

composer dev

Levanta en paralelo:

  • servidor Laravel,
  • listener de queue,
  • logs con pail,
  • Vite en modo dev.

Tests y calidad

composer test
composer lint
composer lint:check

Multi-tenancy en práctica

Ruteo

  • Central: rutas fuera de tenancy middleware.
  • Tenant: resolución por dominio con InitializeTenancyByDomain + PreventAccessFromCentralDomains.

Aislamiento aplicado

  • Database: conexión tenant dinámica sin hardcode en modelos tenant.
  • Storage: root por tenant en storage/app/tenants/{uuid}/.
  • Cache: tags por tenant mediante CacheTenancyBootstrapper.
  • Queue jobs: payload con tenant_id y restore automático de contexto en worker.

Documentación del proyecto

Notas importantes

  • La cola database está configurada sobre conexión central y usa tenant_id en payload para jobs tenant-aware.
  • En producción se recomienda Redis para cache y colas.
  • Los tests de aislamiento tenant son parte del criterio de calidad del template.

About

Laravel SaaS Kit: boilerplate multi-tenant production-ready. DB por tenant, billing, RBAC, feature flags y provisioning asíncrono. Laravel 12 + Livewire 4. Open-source.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages