tomatophp/splade
Splade brings a single-page-app feel to Laravel Blade without writing JavaScript, pairing Blade templates with Vue 3 and Tailwind. This TomatoPHP package provides the Splade integration, letting you build reactive forms, tables, modals and slideovers using simple Blade components.
Release context. v0.0.1 is the initial public tag. The only release artifact is a link to the commit history — no changelog, no semver contract, no upgrade notes. That absence is itself the primary signal: there is no evidence base yet for compatibility guarantees, and any adoption decision must be driven by a hands-on spike rather than by release documentation.
Architecture fit. The package (a tomatophp-namespaced distribution of the Splade pattern) targets Laravel monoliths that want SPA-style navigation while keeping Blade as the view layer and Vue 3 as the client runtime. Architecturally this is a middle path between "classic Blade with full page reloads" and "Inertia/API + separate frontend." For a team already on Blade + Vite + Vue islands, the fit is strong: no new API surface, no auth duplication, no second deploy target for a frontend. For an API-first or Next.js/Nuxt shop, the fit is poor and the package should be rejected early.
Integration feasibility. Expected shape is a composer require, a published config, middleware registration on the web group, and an npm-side dependency plus Vite build step. The real integration cost is not installation but the mental model: developers must understand which responses are augmented for SPA navigation, how splade() links and modals are expressed, and how Blade partials compose with Vue components. This is a learnable but non-trivial model.
Technical risk.
0.0.x permits breaking changes in any patch release. Treat every bump as potentially breaking.Key questions to resolve before any commitment.
Stack fit. Best fit: Laravel 10/11 monolith, Blade templates, Vue 3, Vite, server-rendered auth and authorization, moderate interactivity needs (modals, partial reloads, async tables). Poor fit: public marketing sites with SEO requirements, teams standardized on Inertia or a JS framework router, or services without a Node build step in CI.
Migration path. Do not migrate application-wide. Adopt incrementally:
web group — and convert one low-traffic internal screen.Compatibility. Pin the exact version (0.0.1, not ^0.0.1) and upgrade deliberately with a manual diff review. Lock Laravel and Node versions in CI alongside it. Because the package touches middleware and the asset pipeline, it must be included in every framework-upgrade test pass — add it explicitly to the Laravel upgrade checklist.
Sequencing. Spike → provenance/license answers → pilot → gate → rollout. Critically, the provenance and license answers must land before the pilot ships to production, because a licensing surprise after code is written is expensive to unwind. Front-load that paperwork; it costs a day and de-risks the entire bet.
Maintenance. Budget ongoing effort even in steady state: version pinning and manual upgrade review, monitoring the upstream repo for fixes we would need to port ourselves, and Vite/Node dependency drift in the client-side layer. Realistically 2–6 hours per month steady state, spiking sharply on any Laravel major upgrade. Assign a named owner — an unowned 0.0.x dependency becomes silent technical debt.
Support. Community-only. There is no vendor, no SLA, no security advisory channel we can subscribe to. The mitigation is an internal fork-and-patch capability: someone on the team must be able to read the source and patch it. If we cannot staff that, we should not adopt it.
Scaling. Server-side the concern is response augmentation on every web request — verify the middleware is not inflating payloads on routes that never use SPA navigation, and scope it. Client-side, the SPA payload grows with converted surface area; watch bundle size and set a budget in CI. Caching needs review: any response transformation that produces JSON for navigation requests can interfere with HTTP caching assumptions, so test behind the CDN, not just locally.
Failure modes to plan for.
Ramp-up. Expect 1–2 weeks for a mid-level Laravel developer to become productive, dominated by the Blade/Vue composition model rather than the API surface. Budget for a short internal write-up from the pilot — the package's own documentation will not fill the gap at this maturity. Onboarding cost is a recurring tax: every new hire needs this explained, which argues for keeping the converted surface area as small as the product allows.
TPM recommendation. Approve a timeboxed spike, not adoption. v0.0.1 with an empty changelog cannot support a production commitment. Gate production use on: answered provenance/license questions, a passing CI matrix on our exact Laravel/PHP/Node versions, a named internal owner, and a pilot that ran for at least one sprint without maintenance surprises.
How can I help you explore Laravel packages today?