laravel-nuxt-ui-starter-kit maintained by sti3bas
Laravel + Nuxt UI Starter Kit
Introduction
Nuxt UI starter kit provides a robust, modern starting point for building Laravel applications with a Vue frontend using Inertia.
Inertia allows you to build modern, single-page Vue applications using classic server-side routing and controllers. This lets you enjoy the frontend power of Vue combined with the incredible backend productivity of Laravel and lightning-fast Vite compilation.
This Vue starter kit utilizes Vue 3 and the Composition API, TypeScript, and the Nuxt UI component library.
What's inside?
This starter kit is based on laravel/vue-starter-kit and includes the following features:
- Authentication powered by Laravel Fortify:
- Login
- Register
- Forgot Password
- Reset Password
- Confirm Password
- Verify Email
- Two-factor challenge
- Two-factor authentication (TOTP) with recovery codes
- Passkeys (WebAuthn) for passwordless sign-in
- Fully typed Wayfinder route functions for the frontend
- Internationalization (i18n) with vue-i18n backed by Laravel's native
lang/*.jsontranslations - Inertia
<Form>components and server-side rendering (SSR) - Interactive feature selection on install (registration, email verification, 2FA, passkeys, password confirmation)
- Dashboard page
- Settings pages:
- Profile
- Security (password, two-factor authentication, passkeys)
- Appearance
- Static analysis with Larastan, code style with Laravel Pint, tests with Pest, and a ready-to-use GitHub Actions workflow
Installation
You can set up this starter kit in two ways:
Option 1: Install via Laravel Herd
One-click installation with Laravel Herd:
Option 2: Install via Laravel Installer
Create a new Laravel application using the official Laravel Installer:
laravel new my-app --using=sti3bas/laravel-nuxt-ui-starter-kit
Localization
The UI is translated with vue-i18n — the integration path documented by Nuxt UI — backed by Laravel's native JSON translations, so lang/*.json files are shared between PHP __()/trans() and Vue t() calls. Nuxt UI's component translations follow the active locale via UApp :locale automatically.
- Translations live in
lang/{locale}.json. English strings are the keys and are used as the fallback, solang/en.jsonis optional. - Supported locales are listed in
config/app.phpunderlocales. The active locale is detected from theAccept-Languageheader and can be changed in Settings → Appearance. - To add a language, create
lang/{locale}.json, add the code toapp.locales, and add the matching@nuxt/ui/localeimport touseI18n.ts. - Interpolation uses vue-i18n's
{name}syntax, e.g.t('Added {time}', { time }). - For framework messages (validation, auth), publish or download language files per Laravel's docs.
Screenshots


License
The Laravel + Nuxt UI starter kit is open-sourced software licensed under the MIT license.