Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Kinetic Laravel Package

ambengers/kinetic

Kinetic is a Laravel package for adding state machines to Eloquent models. Define states and allowed transitions, guard changes with conditions, and hook into lifecycle events so status workflows stay explicit, consistent, and easy to maintain.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature work: Eliminates the "prop boilerplate" tax on Laravel + Inertia screens. Instead of every controller manually assembling the same props (auth user, tenant, flash messages, feature flags, breadcrumbs), Kinetic lets you declare composers keyed to page components so shared data arrives consistently.
  • Roadmap: If the roadmap includes expanding an Inertia-driven SPA (admin panel, customer portal, dashboard), this package lowers the marginal cost of each new page and reduces the risk of inconsistent props creeping into pages over time.
  • Build vs. buy: The alternative is an internal abstraction layer over Inertia::share / Inertia::render. That's roughly 1–3 days of design, implementation, review, and tests. Kinetic is MIT-licensed and small enough to vendor or replace later, so "buy" (adopt) is the cheaper first move unless your sharing rules are genuinely bespoke.
  • Use cases:
    • Global/shared props that must appear on many pages (current user, org/tenant, permissions, notifications count).
    • Page-scoped prop injection tied to specific Inertia component names (e.g., only Dashboard/Index gets analytics data).
    • Keeping controllers thin so they only pass page-specific data and delegate shared concerns to composers.
    • Teams migrating mental models from Blade view composers — same concept, applied to Inertia pages.

When to Consider This Package

Adopt when:

  • You're already on Laravel + Inertia.js and have more than a handful of pages sharing overlapping props.
  • You want declarative, class-based composition instead of scattering Inertia::share calls or duplicating prop arrays.
  • Your team is comfortable with Laravel conventions (service providers, class autoloading, IoC) — the learning curve is small for Laravel developers.
  • You've verified the package supports your Laravel/Inertia versions and inspected the test suite and issue backlog.

Look elsewhere / proceed cautiously when:

  • You need only one or two truly global props — Inertia::share or the HandleInertiaRequests middleware is sufficient; don't add a dependency for that.
  • You're not using Inertia (Blade-only, Livewire, or a separate API + JS frontend).
  • You require a heavily maintained package with a large community — at ~90 stars this is a niche tool. Review commit cadence, open issues, and whether the maintainer responds to breaking-change releases. The recent release (2025-12-17) is a positive maintenance signal but not a substitute for diligence.
  • You're highly sensitive to dependency surface — a thin in-house helper may be preferable if your composition rules are unusual.

How to Pitch It (Stakeholders)

For executives (one paragraph): Kinetic is a small, MIT-licensed developer tool that plugs into our Laravel + Inertia stack and removes repetitive code for feeding data into pages. In practice it means faster delivery of new screens, fewer copy-paste bugs where a dashboard forgets to load the user or tenant, and cleaner code that's easier to test and hand over. Cost is effectively zero (open source, no license), risk is low (easily removed or replaced), and the only real investment is a short ramp-up for the team.

For engineering leads (one paragraph): Kinetic adds view-composer-style composition to Inertia's Laravel adapter: you register classes that attach props to named page components, so shared data (auth, tenant, flags, flash) is defined once and injected consistently, while controllers stay focused on page-specific data. It follows familiar Laravel patterns, keeps prop logic isolated and testable, and reduces controller bloat. Trade-offs: it's a small community package (~90 stars), so we should pin the version, read the source, and confirm Laravel/Inertia compatibility before adoption; and we should avoid layering it on top of existing HandleInertiaRequests sharing without consolidating, or we'll end up with two competing sources of truth for shared props.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log