asantibanez/livewire-resource-time-grid
A Laravel Livewire component for displaying resources in a configurable time grid. Schedule and visualize events or reservations across days, weeks, or custom time slots, with model integration, date ranges, and customizable views for booking and resource-planning interfaces.
Architecture fit. Unchanged by this release. This remains a presentation-layer component, not a domain package. It renders a two-dimensional grid — resources on one axis, time slots on the other — as a Livewire component, and expects you to supply already-shaped resource and event collections from your own Eloquent models via a contract. It owns no tables, migrations, or persisted state, so it slots into an existing Laravel app without imposing a data model. The framing still holds: this is a UI dependency, not a platform dependency, and v1.6.0 does not change the coupling surface.
Integration feasibility. Unchanged on the happy path, but materially improved for teams on or moving to Laravel 12. The v1.6.0 change ("Added support for laravel 12") means the Composer constraint has been widened to admit laravel/framework ^12 (and, presumably, the corresponding illuminate/* components and a PHP 8.2+ floor). That removes what would otherwise have been a blocking compatibility gap or a forced fork for any greenfield Laravel 12 application. The realistic effort is still not wiring the component — it is shaping your scheduling domain to match its assumptions: what constitutes a "resource," whether events can span resources, how overlaps render, and whether the view is single-day or multi-day.
Technical risk. The risk profile improves marginally but does not change in character.
Key questions.
Stack fit. Ideal for a Laravel + Livewire + Tailwind application already using Livewire for other screens — and now viable without caveat on Laravel 12. If the target app is Inertia/Vue/React, this remains a poor fit; porting the component's value into a JS SPA would mean either an iframe-style island or a rewrite. Still confirm the Tailwind version (v3 vs v4 class assumptions) before committing, since that is a common source of silent visual breakage — and note that v1.6.0 says nothing about Tailwind, so a Tailwind 4 migration remains an unvalidated path.
Migration path. Low-friction and reversible, and now slightly cheaper to start: no need to pin the host application to Laravel 11 or carry a Composer override to adopt the package. Because it owns no schema, adoption is additive: build the resource/event projections from existing models, mount the component behind a feature flag or a dedicated route, and keep the old list/table view in place. Removal is still a Composer uninstall plus deleting the view — no data migration, no backfill.
Compatibility. Re-verify rather than assume, even post-v1.6.0: Livewire version pin, PHP version floor (Laravel 12 implies 8.2+), Tailwind version, and whether Alpine is required or bundled. Critically, confirm from composer.json whether the Laravel 12 constraint is an explicit ^12.0 leg or a widened range, and whether Laravel 11 is still supported — if the package dropped Laravel 11 support, teams mid-upgrade need to sequence their own framework upgrade first. Run the package's own test suite on your PHP/Livewire/Laravel combination; with a single maintainer, "works on my machine" remains a real failure mode, and you should be prepared to vendor or patch.
Sequencing.
composer.json diff and confirm the Laravel/PHP constraints, Laravel 11 retention, and the Livewire pin. This is a 30-minute task that de-risks the spike.Maintenance. The recurring cost is small but non-zero: a Composer dependency, a published view set, and a Tailwind class surface to re-verify on frontend upgrades. v1.6.0 is a good data point — the maintainer is responsive to framework majors, which is the single most likely trigger for forced maintenance work. Budget still for a version-currency check each Livewire major and Tailwind major, since neither has been demonstrated. The more realistic maintenance burden remains internal: the resource/event projections you write become code your team owns, and that logic will drift from the package's expectations if left undocumented.
Support. Unchanged and still the weakest dimension. One maintainer, no dependents, MIT licence, best-effort GitHub issues. No vendor, no SLA, no commercial backing. v1.6.0 is evidence of activity, not of a support commitment — a one-line changelog with no linked PR discussion or release narrative is consistent with a solo maintainer doing the minimum to stay installable. For an internal back-office scheduling screen this is acceptable; for a customer-facing, revenue-critical booking surface it is not, unless you accept that you may need to fork and maintain it.
Scaling. Unchanged. Scales with the size of the rendered window, not with database size — a day view with 20 resources is trivial; a week view with hundreds of resources and dense events is not, and Livewire round trips will make it feel worse than a static render. Mitigate with server-side windowing (limit resources per view, paginate or filter resources), and avoid putting this component on a page that also does heavy Livewire state churn.
Failure modes.
Ramp-up. Unchanged: very shallow for a Livewire-fluent developer — hours, not days, to a working prototype. The Laravel 12 leg removes a common pre-spike blocker and shortens time-to-first-render for teams already on 12. The genuine ramp-up is domain-side: agreeing what a resource is, how availability is modelled, and how the grid should behave on edge days. Plan a short design spike with the product owner before the engineering spike, because the component will faithfully render whatever schedule semantics you hand it, including wrong ones.
Verdict for a TPM. Still a reasonable, low-commitment bet for an internal or secondary scheduling view where the team already runs Livewire, with the exit cost priced in from day one. v1.6.0 is a small but genuinely positive signal — it removes a real adoption blocker for Laravel 12 shops and demonstrates the maintainer is tracking framework majors — but it does not change the fundamentals: ~231 stars, zero dependents, single-maintainer support, and an entirely unaddressed Livewire-major exposure. Recommendation is therefore unchanged in direction and slightly upgraded in confidence for Laravel 12 targets specifically: proceed for internal use, and continue to require either a fork plan or a documented fallback before using it as the foundation of a customer-facing, high-traffic booking experience.
How can I help you explore Laravel packages today?