innonazarene / laravel-inertia-js-kit
One-command Laravel Inertia auth boilerplate (register, login, logout, change password, forgot/reset password, email verification) with a session-based AuthController, routes, and React/Tailwind pages installed automatically.
Package info
github.com/innonazarene/laravel-inertia-js-kit
pkg:composer/innonazarene/laravel-inertia-js-kit
Requires
- php: ^8.1
- inertiajs/inertia-laravel: ^1.0|^2.0|^3.0
- laravel/framework: ^10.0|^11.0|^12.0|^13.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
README
One-command Laravel auth boilerplate for a pure Inertia + React + Tailwind monolith — no API, no tokens. Installs a session-based AuthController (register, login, logout, change password, forgot/reset password, email verification), wires up the routes, publishes matching React/TypeScript pages, and wires React + Tailwind into your build — all from a single artisan command.
This is the monolith counterpart to sanctum-auth-kit (which does the same thing for a token-based API).
Requirements
- PHP ^8.1
- Laravel ^10.0 | ^11.0 | ^12.0 | ^13.0
- A Laravel app with (or willing to add) Inertia.js —
inertiajs/inertia-laravelis installed automatically as a dependency of this package
Installation
composer require innonazarene/laravel-inertia-js-kit php artisan inertia-js-kit:install npm install
That single install command will:
- Publish
App\Http\Middleware\HandleInertiaRequests(or patch your existing one) so the authenticated user is shared with every page asauth.user— this replaces the API's/meendpoint. - Register that middleware in
bootstrap/app.php(Laravel 11+) orapp/Http/Kernel.php(Laravel 10). - Publish
App\Http\Controllers\AuthController. - Publish the auth form requests to
App\Http\Requests\Auth:LoginRequestRegisterRequestChangePasswordRequestForgotPasswordRequestResetPasswordRequest
- Publish
routes/auth.phpand require it fromroutes/web.php. - Publish React/TypeScript pages to
resources/js/Pages/Auth:Register,Login,ForgotPassword,ResetPassword,VerifyEmail,ChangePassword, plus sharedLayouts(GuestLayout,AuthenticatedLayout) andComponents(TextInput,InputLabel,InputError,PrimaryButton,TextLink), styled with Tailwind. - Publish
resources/js/app.tsx,resources/css/app.css, andresources/views/app.blade.phpif your app doesn't already have them. - Add
react,react-dom,@inertiajs/react,tailwindcss, and the Vite plugins for both topackage.json. - Wire the React and Tailwind Vite plugins into
vite.config.js/.ts.
Run php artisan migrate and npm run dev (or npm run build) afterwards.
Pass --force to overwrite files that already exist:
php artisan inertia-js-kit:install --force
Generated routes
Routes are published to routes/auth.php and required from routes/web.php — plain session-based web routes, no /api prefix.
| Method | URI | Auth required | Description |
|---|---|---|---|
| GET | /register |
Registration page | |
| POST | /register |
Register + log in | |
| GET | /login |
Login page | |
| POST | /login |
Log in | |
| GET | /forgot-password |
Forgot-password page | |
| POST | /forgot-password |
Send a password reset link | |
| GET | /reset-password/{token} |
Reset-password page | |
| POST | /reset-password |
Reset password via token | |
| GET | /verify-email/{id}/{hash} |
signed ✅ | Verify email address |
| GET | /verify-email |
✅ | Verify-email notice page |
| POST | /email/verification-notification |
✅ | Resend verification email |
| GET | /password/change |
✅ | Change-password page |
| PUT | /password |
✅ | Change password |
| POST | /logout |
✅ | Log out |
The AuthController redirects to a named dashboard route after login/register/email verification — make sure one exists in your app.
If routes/web.php doesn't exist yet, the installer creates it. Existing published files are left alone on re-run unless --force is passed.
All published files are plain Laravel and React code — edit them freely after installation, this package does not hook into them afterwards.
License
MIT