symfinity/ux-blocks-interactive
A Laravel package for building interactive UI blocks, letting you compose dynamic, reusable front-end components with PHP. It pairs clean server-side block definitions with client-side interactivity for faster, more maintainable interfaces.
x-ux-blocks-interactive.*, server-driven block state) while leaving your block taxonomy, persistence, and admin chrome to you. That split is favorable for a PM: you buy the interaction layer, you own the product model.blocks column plus a block-type registry and a typed cast. That's a durable schema commitment; the decision to adopt is the decision to define a block schema. Worth an ADR.Page model; a help-center or docs editor where block types map to content primitives; an internal tool where a small content team needs bounded, non-developer editing. Good "hello world": one block type (text) round-tripping through the JSON column before anything else.Consider it when:
^0.1, read CHANGELOG.md on every patch, and re-run a save-path feature test after each upgrade.Look elsewhere when:
FormRequest validating each block type and a cast that hydrates null to an empty collection, malformed editor payloads become production 500s.resources/js/app.js, don't adopt.Adoption criteria checklist: a JSON (not text) blocks column; a typed cast; per-block validation; one block type proven end-to-end; a documented upgrade ritual (pin, read changelog, diff vendor, run round-trip tests); published assets never hand-edited; and an explicit exit path if the package stalls.
For executives (30 seconds): We can get a structured, block-based content editor into our Laravel admin in days rather than weeks by adopting an early-stage open-source package. It covers the editing interaction; we still own content types, validation, permissions, and publishing. The hedge is that it's pre-1.0 — so I recommend we use it for an experimental or internal surface first, cap the investment, and keep our content in a portable JSON column so we can swap the editor without migrating data. Ask: approve a timeboxed spike, not a platform commitment.
For engineering (the honest version):
x-ux-blocks-interactive.*). We write block types and persistence; it writes the editor.blocks column and a block schema we'll live with; a custom AsBlocks cast; per-block FormRequest validation; Stimulus controllers registered in our Vite entry rather than relying on published assets; a namespacing decision to avoid controller collisions.^0.1, read CHANGELOG.md (not release notes — v0.1.3's body is just a link) before every patch, treat re-publishing assets as a one-way door, and feature-test the round trip — payload in → JSON column → re-hydrated blocks — because that's where patch upgrades break silently.How can I help you explore Laravel packages today?