The Laravel SaaS backend paired with a Vue 3 frontend written in <script setup> + TypeScript, shadcn-vue components on Reka UI and composables for permissions, layout and translations.
Features
Every backend feature ships with a complete Vue interface — pages, dialogs, forms and toasts.
Login, registration, password reset, email verification, two-factor auth, passkeys, profile & security settings — toggled per domain.
A separate database per tenant, subdomain identification, tenant CRUD with stats, workspace status and admin invitations.
Primary and secondary domains per tenant with a per-domain app name, default language and authentication features.
Global maintenance for all tenant workspaces with a custom message, secret bypass link and allowed IPs; suspended workspaces are blocked.
User management with search and stats, role select, individual permissions and queued, signed invitation emails.
Spatie roles with protected system roles, permission config files for central and tenant apps and permission-aware menus.
Database-driven menus with drag & drop ordering, sidebar or header layouts, sidebar variants, auth layouts and light/dark mode.
17 languages with per-user and per-domain defaults, and translated validation messages shared with the frontend.
Pest feature tests, Larastan, Pint, ESLint, Prettier and Laravel Boost guidelines and skills for AI agents.
Conventions
The Vue kit follows the conventions of its ecosystem, type-checked with vue-tsc.
resources/js/pages/tenants/Index.vuePascalCase .vue filesresources/js/composables/useX.tsTranslations in a component
import { vueLang } from '@erag/lang-sync-inertia/vue'
const { __ } = vueLang()
__('modules.tenant.index.title')Typed routes with Wayfinder
import { index } from '@/routes/tenants'
index.url()Shared backend
The backend code is identical across the Vue, React and Svelte kits. Only resources/js changes.
$29 one-time for the Vue Starter Kit, or $79 for all three kits. Lifetime access with weekly updates.
One-time payment · Lifetime access · Weekly updates included · No recurring subscription