Laravel UI

Bootstrap, Vue, and React front-end scaffolding for Laravel applications

Tool
Composer
vv4.6.3
2,719 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
73 /100 Good
Development Activity 56
Maintenance 52
Community 84
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
75 /100 Good
Architecture 78
Code Quality 75
Innovation 65
Learning Curve 80

Laravel UI is the official Composer package that provides Laravel’s legacy front-end scaffolding presets. A single php artisan ui command generates Bootstrap, Vue, or React starter assets, along with an optional --auth flag that scaffolds full login, registration, and password-reset views and controllers wired to Laravel’s authentication system.

While the Laravel documentation now points new projects toward Breeze or Jetstream for a more modern starting point, Laravel UI remains actively maintained for existing applications built on it and for developers who want the older, minimal Bootstrap/Vue/React scaffolding without a full starter-kit’s opinions.

What You Get

  • A php artisan ui {bootstrap|vue|react} command that copies preset-specific stubs into resources/js and resources/sass, and updates package.json
  • An --auth flag that additionally scaffolds login, registration, password-reset, and email-verification Blade views plus the matching auth routes and controllers
  • A macroable UiCommand class so custom presets (e.g. Next.js) can be registered via a service provider
  • A dedicated Laravel\Ui\Auth route/controller layer (AuthRouteMethods, ControllersCommand) separate from the presets themselves

Common Use Cases

  • Adding classic server-rendered Bootstrap authentication views to a fresh Laravel install
  • Scaffolding a minimal Vue or React starting point without adopting a full starter kit like Jetstream
  • Maintaining legacy Laravel applications originally built on Laravel UI’s auth scaffolding
  • Registering a custom scaffolding preset (e.g. a company’s internal frontend stack) via the macroable command

Under The Hood

Architecture — The package’s entry point is UiServiceProvider, which registers the ui Artisan command (UiCommand) and, when auth scaffolding is requested, the ui:auth command (AuthCommand) and ui:controllers command (ControllersCommand). UiCommand dispatches to one of three Presets\{Bootstrap,Vue,React} classes, each a thin static install() method that copies stub files from src/Presets/*-stubs and src/Auth/*-stubs into the consuming application’s resources/ tree and merges preset dependencies into package.json. The command is deliberately macroable (Command::macro), letting other packages or a project’s own service provider register additional presets at runtime without forking the package.

Tech Stack — Pure PHP built on Laravel’s illuminate/console, illuminate/filesystem, illuminate/validation, and illuminate/support components, plus Symfony Console for the command attribute API. It ships no bundled JavaScript framework itself — the Vue/React/Bootstrap dependencies it injects into package.json are resolved and built by the consuming app’s own Vite/npm toolchain, keeping the package’s own footprint small (composer.json requires only PHP ^8.0 and the four Illuminate components).

Code Quality — Tests live under tests/AuthBackend and run via PHPUnit against Orchestra Testbench (a Laravel package-testing harness), exercising the generated auth routes/controllers rather than just unit-testing isolated classes. Source files are compact, single-responsibility classes with full PHPDoc blocks on every public method, following Laravel’s own house style closely since the maintainers are the Laravel core team.

API Design — The entire developer-facing surface is one Artisan command (ui) with a type argument and --auth/--option flags — about as low-boilerplate as scaffolding tooling gets. The macro-based extension point (UiCommand::macro('nextjs', ...)) is a notably clean way to let third parties add presets without needing to fork or subclass the command.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers