Skip to content
Laravel

shadcn/ui for Laravel: Own Your Components with aura:add

3 min read

One of the smartest ideas to come out of the React ecosystem in recent years is shadcn/ui's distribution model. Instead of installing a component library as a dependency you can never touch, you run a command that copies the component's source code into your own project. From that moment, the code is yours — edit it, restyle it, refactor it, no vendor lock-in.

For a long time, Laravel developers watched this from the sidelines. shadcn/ui is React-first; there was no equivalent for Blade. That has changed. This article shows how to get the exact same "own the code" workflow in Laravel.

The problem with traditional component packages

Most Blade component packages live in your vendor/ directory. That is fine until you need a small change — a different default padding, an extra slot, a tweak to the markup. Now you are either overriding styles with ever-more-specific selectors, publishing and forking the views, or filing an issue and waiting. The component was never really yours.

The own-the-code model flips this: the library is a source you install from, not a dependency you are stuck with.

aura:add — shadcn for Blade

Aura UI ships an aura:add command that does for Blade what shadcn add does for React:

php artisan aura:add button

This copies the button component's source straight into your application — resolving its dependencies, rewriting namespaces, and placing the files where Laravel expects them. Open the file and you will find ordinary Blade you can edit however you like:

{{-- resources/views/components/aura/button.blade.php (now yours) --}}
@props(['variant' => 'primary', 'size' => 'md'])

<button {{ $attributes->merge(['class' => /* edit me freely */]) }}>
    {{ $slot }}
</button>

No more fighting a vendor package. The component is in your repo, under your version control, styled exactly how your design system needs.

Install from any registry

Like shadcn, aura:add can install from a registry URL, not just the built-in catalogue:

php artisan aura:add https://aura-ui.com/r/button.json

Every Aura component exposes a machine-readable definition at https://aura-ui.com/r/{name}.json, and the full catalogue lives at the components index. That same registry powers an MCP server, so AI assistants like Claude and Cursor can discover and install components for you, right from your editor.

Two models, one library

Aura supports both worlds. Prefer a classic Composer dependency that updates with composer update? Install the package and use <x-aura::button>. Prefer to own the source? Run aura:add and vendor it into your app. You can even mix the two: use the package for stable primitives and own-the-code the handful of components you need to customise heavily.

How it compares to shadcn/ui

If you are coming from React, the mental model maps almost one to one. The difference is the runtime: shadcn gives you React components; Aura gives you Blade components that render server-side and add interactivity through Livewire and Alpine.js — no client framework required. We wrote a fuller Aura vs shadcn comparison if you want the details.

Getting started

composer require bluestarsystem/aura-ui
php artisan aura:install
php artisan aura:add button card modal

From there, the components are yours. Browse the full catalogue, or start from the free dashboard starter to see a real app assembled from them. The shadcn workflow Laravel was missing is finally here — and it speaks fluent Blade.

Enjoyed this? Get the next one

Practical Laravel UI tips and new components, straight to your inbox. Free, no spam.