Cargando…

Esto está tardando más de lo esperado.

Volver al centro de ayuda

Qué es Weblabor Base

Qué recibes al comprarlo, sobre qué está construido y para qué no está hecho.

Weblabor Base es un kit inicial de Laravel. Lo compras una vez, lo clonas y construyes tu producto encima, en lugar de volver a escribir los primeros tres meses de un SaaS. Lee esto primero para saber qué ya está hecho y no construirlo dos veces.

Qué problema resuelve

Todo producto necesita el mismo principio: cuentas, inicio de sesión, un panel de administración, roles, planes y cobros, notificaciones, traducciones, un sitio público. Nada de eso es lo que hace distinto a tu producto, y todo tiene que funcionar antes que la parte que sí lo hace.

Weblabor Base trae ese principio ya construido, ya probado y ya conectado entre sí: una notificación sabe de web push, un plan sabe de Stripe, una fecha sabe la zona horaria de la persona. Tú agregas tus propios modelos y pantallas con las mismas convenciones.

Qué trae

Todo lo de abajo está en el repositorio el día que lo clonas. Las partes opcionales empiezan apagadas y esperan su bandera; la guía enlazada en cada punto te dice cómo encenderla y cómo usarla.

Cuentas e inicio de sesión

  • Registro e inicio de sesión con correo, número de teléfono, nombre de usuario o cualquier combinación de los tres, en un paso o en dos. Ve Configura el inicio de sesión y el registro.
  • La propiedad de un correo o un teléfono se verifica con un código de un solo uso (OTP). Los códigos por correo salen por tu mailer; los de teléfono van por SMS con Amazon SNS, o por SMS o llamada de voz con Telnyx. La misma verificación está disponible dentro de cualquier formulario con los componentes <x-email-input> y <x-phone-input>. Ve Verifica correo y teléfono.
  • Recuperación de contraseña por correo, y un cambio de contraseña forzado para las cuentas que un administrador creó sin una.
  • Una página de cuenta en /account donde la persona edita nombre, correo, teléfono, usuario, idioma y zona horaria, y una lista de los dispositivos con sesión abierta, cada uno de los cuales se puede desconectar. Ve Tu área de cuenta.
  • Un PIN de seguridad opcional de cuatro dígitos, y un trait que hace que cualquier acción de Livewire pida el PIN o la contraseña antes de ejecutarse. Ve El PIN de seguridad y Protege acciones sensibles.
  • Los administradores pueden actuar como cualquier persona y bloquear a cualquier persona.

Panel de administración

  • Un panel en /admin construido con Laravel Front: usuarios, roles, avisos, el registro de actividad, el registro de comunicaciones, seguimiento, categorías y los eventos de webhook de Stripe, cada uno una clase de recurso sin controlador ni vista que escribir. Ve El panel de administración y Auditoría y eventos de webhook.
  • Roles y permisos sobre Spatie Permission. Al sembrar se genera un permiso create, retrieve, update y delete por cada recurso del panel, un rol admin recibe todos, y los superadministradores se nombran por correo en config/app.php. Ve Roles y permisos y Sudo y superadministradores.
  • Una DevZone en /admin/dev para superadministradores: editar .env desde el navegador, correr los comandos de despliegue, mandarte un web push de prueba, limpiar cachés y ver el commit que está corriendo. Ve La DevZone.
  • Un visor de logs en /logs. Tal como viene, esa ruta sólo lleva el middleware web, sin exigir inicio de sesión, así que restríngela antes de que el sitio sea público. Ve Logs y depuración.

Planes y cobros

  • Planes, precios, complementos incluidos y límites de uso guardados en la base de datos y editados desde el panel de administración, cobrados con Stripe a través de Laravel Cashier. Suscribirse y administrar la suscripción ocurre en Stripe Checkout y el portal de facturación de Stripe desde /account/plans y /account/billing. Ve Enciende planes y cobros y Crea y pon precio a un plan.
  • Complementos vendidos encima del plan, como artículos extra de la misma suscripción de Stripe, desde /account/add-ons. Ve Vende complementos.
  • Cobros únicos con Stripe Checkout. Ve Cobra una vez con Stripe Checkout.
  • Pruebas gratuitas y códigos de promoción de Stripe en la página de pago. Ve Pruebas gratuitas y cupones.
  • Precios por país con tipos de cambio diarios, límites de uso por plan, y una página de métodos de pago guardados en /account/payment-methods. Ve Monedas, intervalos y tipos de cambio y Límites y uso del plan.
  • Un programa de referidos: un código en la URL se guarda en una cookie, y quien refiere gana una recompensa por registro y un porcentaje de cada suscripción. Ve Referidos.

Notificaciones

  • Una sola clase de notificación, entregada dentro de la cuenta, por correo y por web push, según lo que la persona tenga habilitado. Un centro de notificaciones en /account/notifications. Ve Envía notificaciones y Entrega de correo y SMS.
  • Avisos escritos desde el panel de administración, con un contador de no leídos en el encabezado. Ve Avisos.
  • Web push con el protocolo VAPID, y una Progressive Web App con service worker, página sin conexión y un manifest listo para PWABuilder. Ve Web push y la PWA.

Idiomas, tiempo y lugar

  • Dos idiomas, español e inglés, elegidos por quien visita y después por la cuenta. Las traducciones faltantes se encuentran con php artisan lang:search y se escriben con php artisan lang:sync a través del proveedor de IA que conectes. Ve Idiomas y traducciones y Conecta un proveedor de IA.
  • Toda fecha se guarda en UTC y se muestra en la zona horaria de la persona sin código de tu lado. Ve Zonas horarias y fechas.
  • El país de quien visita se detecta por la IP y se completa con Weblabor World, que también alimenta los selectores de país, estado y ciudad. Ve Detecta el país del visitante.

Medir y auditar

  • Seguimiento de sesiones y eventos, revisado en el panel de administración y enviado a la Conversions API de Facebook cuando le das un píxel, más un tablero de métricas diarias. Ve Métricas del tablero y seguimiento de visitantes.
  • Un registro de actividad de cada cambio a usuarios, roles, permisos, avisos, categorías, planes y suscripciones, sobre Spatie Activity Log. Ve Registro de actividad.

El sitio público

  • Una página de inicio en /, páginas de características en /features, este centro de ayuda en /help con sus guías en /help/guides, un changelog en /help/changelog, y páginas de privacidad y términos. Todas son tuyas para reescribirlas. Ve Hazlo tuyo, Marca e interfaz y Escribe guías y changelog.

Para quien desarrolla

  • composer dev arranca el servidor, el worker de la cola, la cola de logs y Vite en una sola terminal; el trabajo en cola y el programado están en Colas y trabajo programado.
  • Un modelo base con fechas que conocen la zona horaria, $guarded en vez de $fillable, enums con valor, traits para reutilizar, y rutas separadas en grupos público, /app y /admin. Ve Modelos, casts y piezas base y Rutas, layouts y middleware.
  • Almacenamiento de archivos en el disco local o en Amazon S3, con manejo de imágenes a través de Intervention Image. Ve Archivos, imágenes y almacenamiento.
  • Laravel Debugbar con detector de consultas N+1 en local, Larastan para análisis estático, PHPUnit y Laravel Dusk para pruebas, y un hook pre-push que detiene un push cuando una guía de ayuda no tiene traducción. Ve Trabaja en el código y Despliega tu proyecto.

Sobre qué está construido

Las versiones mayores salen de composer.json y package.json; la versión menor que recibes es la que composer install y npm ci resuelvan ese día.

Capa Tecnología Versión
Lenguaje PHP 8.2 o más reciente
Framework Laravel 12
Interfaz dinámica Livewire 4
Componentes de formulario y layout WireUI 2
Modales Wire Elements Modal 3
Estilos Tailwind CSS 4
Comportamiento en el navegador Alpine.js, incluido con Livewire 3
Compilación de assets Vite 7
Panel de administración Laravel Front 3
Utilidades compartidas de Livewire y Blade Weblabor TALL Utils 1
Cobros Laravel Cashier, Stripe PHP 15, 16
Roles y permisos Spatie Laravel Permission 6
Auditoría Spatie Laravel Activity Log 4
Web push Laravel Notification Channels WebPush 10
PWA silviolleite/laravelpwa 2
Traducción con IA Laravel AI 0.6
Números de teléfono Propaganistas Laravel Phone 6
Verificación telefónica Telnyx PHP, o Amazon SNS con el AWS SDK 7
Países, estados y ciudades Weblabor World y World UI 1, 2
Slugs y orden manual Spatie Sluggable, Spatie Eloquent Sortable 3, 4
Iconos Blade Icons 1
Gráficas Livewire Charts sobre ApexCharts un fork en dev-master
Imágenes Intervention Image 3
Archivos Flysystem AWS S3, AWS SDK para PHP 3, 3
Visor de logs rap2hpoutre/laravel-log-viewer 2
Lightbox de imágenes e iframes Fancyapps UI 6
Barra de progreso y scrollbars NProgress, SimpleBar 0.2, 6
Bases de datos MySQL, MariaDB, PostgreSQL, SQLite, SQL Server las que soporte Laravel 12

Dependencias de desarrollo: Laravel Debugbar 3, Query Detector 2, Larastan 3, PHPUnit 11, Laravel Dusk 8, Playwright 1, Laravel Pail 1, Laravel Sail 1 y el paquete de estándares de código de Weblabor. El paquete de cobros, weblabormx/billing-core, no se descarga: vive en packages/billing-core dentro del repositorio y Composer lo enlaza desde ahí.

Para qué sirve

Un SaaS con cuentas, panel de administración y una suscripción mensual o anual. Un producto que vende un plan base y extras opcionales. Una herramienta interna que necesita usuarios de verdad, roles de verdad y una auditoría. Un producto que tiene que hablar dos idiomas y funcionar entre zonas horarias desde el primer día. Una aplicación web que la gente va a instalar en su teléfono.

Para qué no

Un sitio estático o un blog: cargarías con un sistema de autenticación y un paquete de cobros que nunca usas. Un producto sin cuentas. Un backend sólo de API, porque la interfaz es Livewire y las rutas son páginas, no endpoints. Un código que ya vive en otro framework, porque esto es Laravel hasta el fondo y cada convención lo asume.