# Laravilt 1.1: A Laravel Admin Panel in Vue or React, With One PHP API

> I wanted Filament's PHP API and my team's Vue or React frontend, so I built Laravilt. What's new in 1.1 (React 19, Laravel 13, security fixes) and how to try it in ten minutes.

*2026-10-12T11:03:50Z*

I spent years inside Filament. TomatoPHP alone is 68 plugins for it, and I still think describing an admin panel in PHP is the best developer experience Laravel has.

But a lot of Laravel teams don't write Livewire. They write Vue or React. For them, the choice has always been the same: use the PHP builder and live with Livewire, or build your own frontend and write a lot of CRUD by hand.

I wanted both. So I built Laravilt.

You define panels, resources, forms and tables with a fluent PHP API, the way you would in Filament. Laravilt renders them through Inertia, with **Vue 3 or React 19**. The PHP side doesn't change. You pick the stack per app.

1.0 shipped with Vue. 1.1 adds React next to it, supports Laravel 13 and brings a round of security fixes. Here's what's in it, and how to try it in about ten minutes.

## What's in Laravilt 1.1

- **Two frontends, one PHP definition.** Vue 3 with shadcn-vue, or React 19 with shadcn/ui. Both use Tailwind CSS v4 and TypeScript. `php artisan laravilt:install` asks which one, or takes `--stack=vue|react`.
- **Laravel 13 support**, with PHP 8.3+. (If you're on Laravel 11 or 12, 1.0.x still works there, with Vue only.)
- **Resources with forms, tables, infolists and actions.** A generator builds a full CRUD resource from an existing database table.
- **Auth that's already done:** 2FA, passkeys, social login, API tokens and session management. You choose them during install.
- **AI built in:** an AI package with multiple providers (OpenAI, Anthropic, Gemini and more), AI chat, and AI-powered global search across your resources.
- **A plugin system**, multi-panel support and widgets.
- **Security fixes.** Before 1.1, I went through the whole codebase for security. What came out of it: the table column-update routes now check authorization and scope, two XSS paths are closed, and the form upload routes sit behind auth and throttling. Uploads and reactive fields also work on production servers now. In 1.0, those routes only loaded in local, which I should have caught earlier.

It's 15 MIT-licensed composer packages. `laravilt/laravilt` pulls them all in, or you install only the ones you need.

## Try it in ten minutes

Start a new Laravel app and pick **Vue** or **React** when the installer asks for a starter kit:

```bash
laravel new my-app
cd my-app
composer require laravilt/laravilt
php artisan laravilt:install
```

The installer asks for the stack (it detects the default from your `package.json`), the panel ID and the features you want: registration, 2FA, passkeys, social login, API tokens, AI. Then it publishes the frontend for that stack, runs the migrations, creates `AdminPanelProvider`, builds the assets and can create your first admin user.

One warning: the installer overwrites starter-kit files such as `package.json`, `vite.config.ts` and `routes/web.php`. Run it on a fresh app, or commit first.

## Your first resource

`laravilt:resource` reads an existing table:

```bash
php artisan make:migration create_products_table   # add your columns, then:
php artisan migrate
php artisan laravilt:resource admin --table=products
```

It asks a few questions (single page with modals or full pages, API endpoints, AI assistant, table features) and writes the resource, form, table, infolist and pages under `app/Laravilt/Admin/Resources/Product/`. Resources are discovered automatically, so `/admin/products` works straight away: a searchable, sortable list with filters, plus create, edit, view and bulk delete.

Then you tweak the PHP, the same way you would in Filament:

```php
public static function configure(Schema $form): Schema
{
    return $form->schema([
        Section::make('Product')->columns(2)->schema([
            TextInput::make('name')->required()->maxLength(255),
            TextInput::make('price')->numeric()->prefix('$')->required(),
            Toggle::make('is_active')->default(true),
        ]),
    ]);
}
```

PHP changes show up on the next request. You only rebuild assets when you change frontend files.

## You own the frontend

This is the part I care about most, and the real reason Laravilt exists.

Layouts, the sidebar and the UI primitives are published into your app, so you edit them like any other component. A custom field is a PHP class plus a Vue or React component, and the generators follow your stack:

```bash
php artisan make:form-component RatingInput --react
php artisan laravilt:page admin Reports
```

If your team already has a design system in Vue or React, the admin panel uses it. It doesn't fight it.

## Let your AI assistant read the docs

Laravilt has a hosted MCP server that indexes the docs, the packages and their changelogs. Add it to Claude Code with one command:

```bash
claude mcp add --transport http laravilt https://mcp.laravilt.com/mcp
```

Its tools search and read the docs, list the packages and their latest versions, show changelogs, and give the installation and plugin-development guides. Any MCP client that supports remote HTTP servers can use the same URL. It's also listed in the official MCP Registry.

## Honest limits

I'd rather you hear these from me than find them yourself:

- Laravilt is younger than Filament, and its ecosystem is smaller. If you need a big plugin marketplace today, Filament is the safer choice. (That's why I still maintain [TomatoPHP](https://tomatophp.com/en?utm_source=laravilt&utm_medium=referral&utm_campaign=laravilt-launch-oct26), 68 plugins for Filament.)
- You choose one stack per app. Switching later means re-running the installer on a matching starter kit.
- Some 1.1 limitations are documented: editable table columns are read-only inside relation managers and card grids, and passkeys rely on `laragear/webauthn`, which is no longer maintained upstream.

## Try it, or have it built

- [Read the docs](/en/docs) · [installation](/en/docs/getting-started/installation) · [frontend stacks](/en/docs/getting-started/frontend-stacks)
- [Open the live demo](https://demo.laravilt.com) (the demo account is on the homepage, and the data resets every hour)
- [Star it on GitHub](https://github.com/laravilt/laravilt)

If something breaks, open an issue on GitHub. I read them.

And if you'd rather have your admin panel or SaaS built on Laravilt or Filament, I take that work, including white-label for agencies. See [white-label Laravel development](https://fadymondy.com/en/services/white-label-laravel-filament?utm_source=laravilt&utm_medium=referral&utm_campaign=laravilt-launch-oct26) or [get in touch](https://fadymondy.com/en/contact?utm_source=laravilt&utm_medium=referral&utm_campaign=laravilt-launch-oct26).

---

Source: https://laravilt.com/en/blog/laravilt-laravel-admin-panel-vue-or-react
