PHPackages                             digit7s/inertia-form - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. digit7s/inertia-form

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

digit7s/inertia-form
====================

A backend-driven form builder for Inertia.js and Vue 3.

v1.0.0(2mo ago)096MITPHPPHP ^8.2

Since May 2Pushed 2mo agoCompare

[ Source](https://github.com/Digit7s/inertia-form)[ Packagist](https://packagist.org/packages/digit7s/inertia-form)[ Docs](https://github.com/Digit7s/inertia-form)[ RSS](/packages/digit7s-inertia-form/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (2)Used By (0)

Inertia Form Builder for Laravel
================================

[](#inertia-form-builder-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/adcaf1c8b8574a76b4214cc23b6b508cf19130366a117de69f162181af8dd2ff/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646967697437732f696e65727469612d666f726d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/digit7s/inertia-form)[![Total Downloads](https://camo.githubusercontent.com/ef62866562ab0f8da20c181d96456e9804cd5b04882fc6745a00155df1c7ac4d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646967697437732f696e65727469612d666f726d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/digit7s/inertia-form)[![License](https://camo.githubusercontent.com/c42edee8a3aeb32b49737a86f680922d8487c115ccd5a073e9c960b6aca62851/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f646967697437732f696e65727469612d666f726d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/digit7s/inertia-form)

A fluent, backend-driven form builder for Laravel and Inertia.js (Vue 3). Define your forms, layouts, and validation logic entirely in PHP and render them dynamically in your Vue frontend with high-quality components.

Requirements
------------

[](#requirements)

- **PHP**: 8.2+
- **Laravel**: 11.0+ / 12.0+
- **Inertia.js**: Vue 3 adapter
- **Tailwind CSS**: (Recommended for default styling)

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

[](#installation)

### 1. Backend (PHP)

[](#1-backend-php)

Install the package via Composer:

```
composer require digit7s/inertia-form
```

### 2. Frontend (Vue 3)

[](#2-frontend-vue-3)

You can publish the Vue components directly into your project using the Laravel Service Provider:

```
php artisan vendor:publish --tag=inertia-form-components
```

Setup &amp; Configuration
-------------------------

[](#setup--configuration)

### Registering Components

[](#registering-components)

Import and register the `InertiaForm` component in your `app.js` or directly within your Vue pages.

**Global Registration (`app.js`):**

```
import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/vue3';
import InertiaForm from './InertiaForm/components/InertiaForm.vue';

createInertiaApp({
  resolve: name => {
    // ...
  },
  setup({ el, App, props, plugin }) {
    createApp({ render: () => h(App, props) })
      .use(plugin)
      .component('InertiaForm', InertiaForm) // Register globally
      .mount(el);
  },
});
```

Basic Usage
-----------

[](#basic-usage)

### 1. Generate a Form Class

[](#1-generate-a-form-class)

Use the Artisan command to scaffold a new form:

```
php artisan make:inertia-form ProfileForm
```

### 2. Define the Schema

[](#2-define-the-schema)

In your newly created form class (`app/Forms/ProfileForm.php`), define the fields and layout:

```
namespace App\Forms;

use Digit7s\InertiaForm\InertiaForm;
use Digit7s\InertiaForm\Fields\TextInput;
use Digit7s\InertiaForm\Fields\Select;

class ProfileForm extends InertiaForm
{
    public function schema(): array
    {
        return [
            TextInput::make('name')
                ->label('Full Name')
                ->placeholder('John Doe')
                ->required(),

            TextInput::make('email')
                ->email()
                ->label('Email Address')
                ->required(),

            Select::make('country')
                ->options([
                    'us' => 'United States',
                    'ca' => 'Canada',
                    'uk' => 'United Kingdom',
                ])
                ->searchable(),
        ];
    }
}
```

### 3. Return from Controller

[](#3-return-from-controller)

Pass the form payload to your Inertia page:

```
use App\Forms\ProfileForm;
use App\Models\User;

public function edit(User $user)
{
    return inertia('Profile/Edit', [
        'formPayload' => ProfileForm::make($user)
            ->action(route('profile.update'))
            ->toArray(),
    ]);
}
```

### 4. Render in Vue

[](#4-render-in-vue)

Use the provided `` component to render the form:

```

defineProps({
    formPayload: Object,
});

```

Available Fields
----------------

[](#available-fields)

- `TextInput` (text, email, password, etc.)
- `Select` (searchable, relationship-bound)
- `DatePicker` / `TimePicker` / `DateTimePicker`
- `Textarea`
- `CheckboxList`
- `Grid` (Layout)

Documentation
-------------

[](#documentation)

For more detailed information on fields, layouts, and advanced features, please refer to the documentation:

- [Fields &amp; Options](docs/fields.md)
- [Layouts &amp; Grids](docs/layout-options.md)
- [Handling Redirects](docs/redirects.md)

License
-------

[](#license)

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

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance84

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

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

Unknown

Total

1

Last Release

84d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/235431018?v=4)[Myo Min Oo](/maintainers/myominoo-digit7s)[@myominoo-digit7s](https://github.com/myominoo-digit7s)

---

Top Contributors

[![myominoo-digit7s](https://avatars.githubusercontent.com/u/235431018?v=4)](https://github.com/myominoo-digit7s "myominoo-digit7s (5 commits)")

---

Tags

laravelinertiajsform-builderVue.jsdynamic forms

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/digit7s-inertia-form/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M246](/packages/laravel-ai)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

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