laravilt/schemas
Laravilt Schemas provides a fluent PHP schema layer for Laravel, making it easy to define reusable forms and data structures with composable fields, validation rules, and clean configuration.
laravilt/schemas is a Laravel package that provides a declarative schema layer (components, layouts, wizards) with frontend renderers. v1.1.0 is a minor release (v1.0.6 → v1.1.0) that materially expands the package's surface area rather than just patching it.
Architecture fit. The package sits between Laravel backend definitions and a JS rendering layer, evidenced by the Vue-style composable usage (localization composable from support, Wizard), Tailwind class handling, and reactive updates in Schema. This is a reasonable fit for teams already building admin panels, form builders, or CRUD-heavy internal tooling on Laravel + Inertia. It is a weaker fit for API-only services or teams unwilling to adopt the package's rendering conventions.
Integration feasibility. Additive and low-friction for existing Vue consumers: a Composer constraint bump to ^1.1 and a regression pass. The two headline features — React support and Laravel 13 compatibility — are genuinely new integration paths, not upgrades. React support means a second renderer with an unproven parity story against the Vue implementation.
Technical risk.
support implies a hard dependency on laravilt/support version alignment; a mismatched pair can break Wizard localization silently.composer.json constraints. Verify whether existing Laravel 11/12 constraints were preserved or narrowed.actions/checkout 6→7, setup-node 6→7, action-gh-release 2→3, fetch-metadata 2→3) are low runtime risk but do change the release pipeline; a broken release workflow is an operational, not application, failure.Key questions for the maintainer.
composer.json constraints for PHP, Laravel 11/12/13, and laravilt/support?Stack fit. Best fit: Laravel 11/12 monolith or Inertia app with Vue 3, Tailwind, and a schema-driven admin surface. Newly viable: Inertia + React stacks. Poor fit: Blade-only apps with no JS build, Livewire-first architectures, or teams standardizing on a different form/schema abstraction (Filament, Nova) — this package would be redundant or conflicting.
Migration path.
^1.1.0, upgrade in a branch, run the full test suite, and diff rendered output on your highest-traffic schemas.Compatibility checks before merging.
composer.json constraints: PHP version, illuminate/* range, laravilt/support pin.laravilt/support version in your app.Sequencing.
laravilt/support and laravilt/schemas together in a branch; verify Wizard localization strings resolve.Maintenance. The package now has two frontend renderers to keep in lockstep. Budget for parity testing on every future release, not just this one. Dependabot activity is a positive hygiene signal but also means frequent low-signal version bumps; expect noise in your dependency review queue if you track upstream closely. The single-primary-contributor pattern means roadmap and bug-fix velocity are dependent on one person's availability — an important consideration if this becomes load-bearing for internal tooling.
Support. You will own first-line support for schema authoring questions internally. Two distinct renderer APIs doubles the internal documentation burden and doubles the "which stack is this bug in?" triage cost. Plan for a small internal owner (one engineer, part-time) and a documented escalation path to upstream issues.
Scaling. Schema definition is cheap; rendering is the cost center. Watch bundle size if both renderers are present in one codebase, and watch client-side render performance on very large schemas (deeply nested layouts, long wizards). Localization resolution at render time is a potential hot path for large forms — worth a quick profile if you have high-field-count screens.
Failure modes to monitor.
support version mismatch — presents as untranslated labels, easy to miss in a non-default locale.Ramp-up. Low for teams already on Vue + Inertia: the mental model (schema → components → rendered form) is conventional, and the changelog is small enough to read directly. Moderate for React teams: the renderer is new in this release with no established community corpus, so expect to read source rather than docs. Estimate roughly half a day for a Vue engineer to evaluate against an existing form, and one to two days for a React team to validate parity on a representative screen before committing.
How can I help you explore Laravel packages today?