Skip to content
Tutorials

How to Build a Laravel Admin Dashboard with Free Components (No React)

3 min read

Building an admin dashboard in Laravel usually means one of two things: wiring up a heavy JavaScript framework like React or Vue, or hand-rolling every table, chart and form from raw Tailwind classes. There is a third way — assembling a complete, polished dashboard from free, Livewire-native Blade components — and it is faster than both.

This guide walks through building a real admin dashboard (stats, a revenue chart, a recent-orders table and a settings form) using only the free tier of Aura UI. Every component is server-rendered Blade with Alpine.js for interactivity. No React, no build-step gymnastics, no JavaScript framework tax.

What we are building

A single dashboard page with:

  • A top navigation bar with brand and avatar
  • A row of four stats cards (revenue, orders, customers, conversion)
  • A revenue line chart
  • A recent-orders table with status badges
  • A store-settings form

You can see the finished result, live and interactive, on the free dashboard starter page — and download the Blade source there too.

Step 1: Install the components

composer require bluestarsystem/aura-ui
php artisan aura:install

That publishes the CSS and registers the <x-aura::*> Blade components. Everything below is in the free, MIT-licensed tier.

Step 2: Stats cards

Stats cards summarise the numbers that matter at a glance:

<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
    <x-aura::stats-card title="Total Revenue" value="$48,210" />
    <x-aura::stats-card title="Orders" value="1,204" />
    <x-aura::stats-card title="Customers" value="3,872" />
    <x-aura::stats-card title="Conversion" value="3.6%" />
</div>

Browse every available card and prop on the components reference.

Step 3: A revenue chart

The free chart component wraps Chart.js with sensible, theme-aware defaults:

<x-aura::chart
    type="line"
    :labels="['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']"
    :datasets="[[
        'label' => 'Revenue',
        'data' => [1200, 1900, 3000, 5000, 4200, 6100],
        'borderColor' => '#7c3aed',
        'fill' => true,
        'tension' => 0.4,
    ]]"
/>

Step 4: A recent-orders table

The table component is composable — you control every row and cell, and drop badges in for status:

<x-aura::table>
    <x-aura::table.head>
        <x-aura::table.row>
            <x-aura::table.header>Customer</x-aura::table.header>
            <x-aura::table.header>Status</x-aura::table.header>
            <x-aura::table.header align="right">Total</x-aura::table.header>
        </x-aura::table.row>
    </x-aura::table.head>
    <x-aura::table.body>
        <x-aura::table.row>
            <x-aura::table.cell>Alice Johnson</x-aura::table.cell>
            <x-aura::table.cell>
                <x-aura::badge variant="success">Paid</x-aura::badge>
            </x-aura::table.cell>
            <x-aura::table.cell align="right">$199</x-aura::table.cell>
        </x-aura::table.row>
    </x-aura::table.body>
</x-aura::table>

Step 5: A settings form

Forms are where Livewire shines. Each field renders a label, hint, error state and ARIA attributes:

<form wire:submit="save" class="grid gap-4 sm:grid-cols-2">
    <x-aura::input label="Store name" name="store_name" wire:model="storeName" />
    <x-aura::input label="Support email" name="email" type="email" wire:model="email" />
    <x-aura::toggle label="Email me about new orders" wire:model="notify" />
    <x-aura::button variant="primary" type="submit">Save changes</x-aura::button>
</form>

When you outgrow the free tier

Most dashboards can be built entirely on the free components above. When you need server-side sorting, filtering, bulk actions and CSV export, the Aura Pro DataTable replaces the hand-built table — and the Pro tier also adds Kanban boards, an interactive scheduler and advanced charts. If your admin runs on Filament, the Aura Filament theme themes the whole panel to match.

Wrapping up

You just assembled a complete Laravel admin dashboard without touching a JavaScript framework. The components are server-rendered, accessible and dark-mode ready out of the box. Grab the full source from the free starter kit, drop it into your app, and start shipping.

Enjoyed this? Get the next one

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