Skip to content

React Starter Kit

The Laravel SaaS backend paired with a React 19 frontend in TypeScript, shadcn/ui components on Radix UI and hooks for permissions, layout and translations.

React frontend stack

Framework
React 19.2 + TypeScript
Inertia adapter
@inertiajs/react v3
UI components
shadcn/ui on Radix UI
Icons
lucide-react
Toasts
sonner
Menu drag & drop
sortablejs
Type check
tsc
TypeScript 5Tailwind CSS v4Vite 8WayfinderLang Sync InertiaESLint 9 + Prettier 3

Features

Everything included in the kit

Every backend feature ships with a complete React interface — pages, dialogs, forms and toasts.

Authentication

Login, registration, password reset, email verification, two-factor auth, passkeys, profile & security settings — toggled per domain.

Multi-tenancy

A separate database per tenant, subdomain identification, tenant CRUD with stats, workspace status and admin invitations.

Domains

Primary and secondary domains per tenant with a per-domain app name, default language and authentication features.

Maintenance & suspension

Global maintenance for all tenant workspaces with a custom message, secret bypass link and allowed IPs; suspended workspaces are blocked.

Users & invitations

User management with search and stats, role select, individual permissions and queued, signed invitation emails.

Roles & permissions

Spatie roles with protected system roles, permission config files for central and tenant apps and permission-aware menus.

Navigation & layouts

Database-driven menus with drag & drop ordering, sidebar or header layouts, sidebar variants, auth layouts and light/dark mode.

Localization

17 languages with per-user and per-domain defaults, and translated validation messages shared with the frontend.

Testing & tooling

Pest feature tests, Larastan, Pint, ESLint, Prettier and Laravel Boost guidelines and skills for AI agents.

Conventions

Idiomatic React

The React kit follows the conventions of its ecosystem, type-checked with tsc.

Pages
resources/js/pages/tenants/index.tsx
Components
kebab-case .tsx files
Hooks
resources/js/hooks/use-x.ts

Translations in a component

import { reactLang } from '@erag/lang-sync-inertia/react'

const { __ } = reactLang()

__('modules.tenant.index.title')

Typed routes with Wayfinder

import { index } from '@/routes/tenants'

index.url()

Shared backend

The same Laravel backend in every kit

The backend code is identical across the Vue, React and Svelte kits. Only resources/js changes.

  • Complete Laravel + React source code
  • Access to the saas-laravel-starter-kit-react repository
  • Weekly updates pushed to the repository
  • Pest feature tests, Larastan and Pint configured
  • 17 languages with synced frontend translations
  • Documentation for the backend and the React frontend
Framework
Laravel 13 on PHP 8.3+
Bridge
Inertia v3 (inertia-laravel)
Authentication
Laravel Fortify + passkeys
Multi-tenancy
stancl/tenancy — database per tenant
Authorization
spatie/laravel-permission
Validation & types
spatie/laravel-data + TypeScript transformer
Typed routes
Laravel Wayfinder
Translations
erag/laravel-lang-sync-inertia
Quality
Pest 5, Larastan, Pint, Laravel Boost

Start building with React

$30 one-time for the React Starter Kit, or $79 for all three kits. Lifetime access with weekly updates.

One-time payment · Lifetime access · Weekly updates included · No recurring subscription