PHPackages                             alnutile/inertia-crud - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. alnutile/inertia-crud

ActiveLibrary[Admin Panels](/categories/admin)

alnutile/inertia-crud
=====================

Help with some basic CRUD and UI using Inertia, Tailwind

1.0.0(3y ago)45.2k↑67.9%[2 PRs](https://github.com/alnutile/inertia-crud/pulls)MITPHPPHP ^8.1

Since Jan 19Pushed 3y ago1 watchersCompare

[ Source](https://github.com/alnutile/inertia-crud)[ Packagist](https://packagist.org/packages/alnutile/inertia-crud)[ Docs](https://github.com/alnutile/inertia-crud)[ RSS](/packages/alnutile-inertia-crud/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (3)Dependencies (9)Versions (6)Used By (0)

Help with some basic CRUD and UI using Inertia, Tailwind
========================================================

[](#help-with-some-basic-crud-and-ui-using-inertia-tailwind)

[![run-tests](https://github.com/alnutile/inertia-crud/actions/workflows/run-tests.yml/badge.svg)](https://github.com/alnutile/inertia-crud/actions/workflows/run-tests.yml)[![Latest Version on Packagist](https://camo.githubusercontent.com/7ab985ece1eea1ad995db4fd60b7164e8bac05fdf4a8f008af7d09b9b7fc90b0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616c6e7574696c652f696e65727469612d637275642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/alnutile/inertia-crud)

[![](images/logo.png)](images/logo.png)

> This assumes you are using JetStream and will assume those components are there

> Thanks to

TL;DR
-----

[](#tldr)

I got sick of making the same thing over and over on projects, so I made a command to output my stub files, so I can with one command have all the Inertia CRUD files needed. (DELETE is coming soon)

> Yes I know there are others out there, but I wanted one that fit my current workflow. [![](https://camo.githubusercontent.com/0b60fb133da7d74ceacd47955f4c022a0ace24badaa0838504a0868a7e4136eb/68747470733a2f2f696d67732e786b63642e636f6d2f636f6d6963732f7374616e64617264732e706e67)](https://camo.githubusercontent.com/0b60fb133da7d74ceacd47955f4c022a0ace24badaa0838504a0868a7e4136eb/68747470733a2f2f696d67732e786b63642e636f6d2f636f6d6963732f7374616e64617264732e706e67)

All you need to do is run the command:

```
php artisan inertia-crud:create Dog Dogs
```

And it will do the rest.

> Yes I ask for the `Model` name capitalized and plural, so I do not have to code that logic.

Then you will have these files made:

```
app/Http/Controllers/DogController.php
tests/Features/Http/Controllers/DogControllerTest.php
resources/js/Pages/Dogs/Index.vue
resources/js/Pages/Dogs/Show.vue
resources/js/Pages/Dogs/Edit.vue
resources/js/Pages/Dogs/Create.vue
resources/js/Pages/Dogs/Components/ResourceForm.vue

```

And the routes will have:

```
Route::controller(\App\Http\Controllers\DogController::class)
    ->group(function () {
        Route::get('/dogs', 'index')->name('dogs.index');
        Route::get('/dogs/create', 'create')->name('dogs.create');
        Route::post('/dogs/create', 'store')->name('dogs.store');
        Route::get('/dogs/{dog}', 'show')->name('dogs.show');
        Route::get('/dogs/{dog}/edit', 'edit')->name('dogs.edit');
        Route::put('/dogs/{dog}', 'update')->name('dogs.update');
    });
```

Overview
--------

[](#overview)

This will put some simple ready to go CRUD files into place, for Inertia.

For example an Index page:

[![](images/index.png)](images/index.png)

> PHP Faker generated data in example btw

I just need to do is line up the fields and columns in the `Index.vue` file.

Then when someone pressed **Add** I need that page as well.

[![](images/create.png)](images/create.png)

You will see this has a select list. This shows a component I include, based on JetStream that makes that easy as well.

The controller includes a test 🎉

[![](images/test.png)](images/test.png)

All these routes will be made as well, also including testse:

```
Route::controller(\App\Http\Controllers\OfficeController::class)
    ->group(function () {
        Route::get('/offices', 'index')->name('offices.index');
        Route::get('/offices/create', 'create')->name('offices.create');
        Route::post('/offices/create', 'store')->name('offices.store');
        Route::get('/offices/{office}', 'show')->name('offices.show');
        Route::get('/offices/{office}/edit', 'edit')->name('offices.edit');
        Route::put('/offices/{office}', 'update')->name('offices.update');
    });
```

This package assumes this layout.

- `app/Http/Controllers` for the controllers
- `routes/web.php` for the routes
- `resources/js/Components` for a few of those
- `resources/js/Pages/` to put the resource related Vue crud

On that note it assumes:

- Tailwind
- VueJS 3
- Inertia
- vue-toastification

Some components come from JetStream, like almost all!

You may have to fix the `import AppLayout from '@/Layouts/AppLayout.vue';` in the files I will make that a config option later.

TODO
----

[](#todo)

- Add DELETE
- Add config file for more options/paths etc
- Add config option for the `AppLayout.vue`

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require alnutile/inertia-crud --dev
```

Usage
-----

[](#usage)

```
php artisan inertia-crud:create Dog Dogs
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Alfred Nutile](https://github.com/alnutile)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.\*\*

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Total

3

Last Release

1192d ago

Major Versions

0.0.2 → 1.0.02023-03-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/da51f2fb140a4e118e94dd59ff819c11dd9a656b9c0ff8b2074c5fd2c07978ee?d=identicon)[alnutile](/maintainers/alnutile)

---

Top Contributors

[![alnutile](https://avatars.githubusercontent.com/u/365385?v=4)](https://github.com/alnutile "alnutile (29 commits)")

---

Tags

laravelinertiacrudalnutile

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/alnutile-inertia-crud/health.svg)

```
[![Health](https://phpackages.com/badges/alnutile-inertia-crud/health.svg)](https://phpackages.com/packages/alnutile-inertia-crud)
```

###  Alternatives

[spatie/laravel-pdf

Create PDFs in Laravel apps

1.0k4.8M47](/packages/spatie-laravel-pdf)[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.1k11.2M101](/packages/dedoc-scramble)[spatie/laravel-passkeys

Use passkeys in your Laravel app

471890.7k39](/packages/spatie-laravel-passkeys)[filament/support

Core helper methods and foundation code for all Filament packages.

2331.0M245](/packages/filament-support)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[wnx/laravel-backup-restore

A package to restore database backups made with spatie/laravel-backup.

213421.2k2](/packages/wnx-laravel-backup-restore)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
