tystr/react-js-bundle
tystr/react-js-bundle is a Symfony bundle for integrating React.js into PHP applications. It provides rendering and asset integration helpers to bring React-powered components into existing Symfony projects.
v8js PHP extension. Product decisions should still default to avoiding custom SSR plumbing unless the team is on a compatible legacy Symfony stack—but the "avoid" is now driven by the package's maturity and adoption, not by an exotic runtime dependency.v8js, or delegating to an external renderer over HTTP. This validates a wider set of legacy Symfony SSR scenarios, including teams that cannot install v8js. It still does not support modern Laravel SSR patterns (Inertia, Livewire, Node-based SSR integrated natively).v8js dependency is no longer mandatory, and the addition of an MIT license removes licensing ambiguity for commercial use. Counterweights: still very low adoption (13 stars, zero dependents), a long dormant period followed by a single release, and no evidence of a sustained maintenance cadence. Treat as tactical legacy code to be vendored and audited, not a platform bet.Consider it only when:
v8js, or the team is prepared to operate an external renderer service and wants the bundle's HTTP rendering path.Look elsewhere when:
Executive summary: This is a low-adoption, thinly maintained Symfony bundle for React server-side rendering. Release v0.2.0 is a substantive change: it decouples rendering from the v8js PHP extension by allowing rendering through an external URL such as a Node.js server, and it adds an MIT license. Those changes reduce operational and legal friction, but the package is still not a Laravel package and still has negligible adoption.
Recommendation: Do not adopt for new Laravel development. For a legacy Symfony SSR need, a time-boxed technical spike is now cheaper to run because v8js is no longer a prerequisite—validate the external-renderer path, maintenance burden, security posture, and exit plan. Note that the external-renderer mode also weakens the bundle's core justification: if a Node renderer is acceptable, calling it directly may be simpler than adopting an unmaintained intermediary. Otherwise, prioritize maintained alternatives aligned with the current stack—Node/Next.js SSR, Laravel-native rendering, or a dedicated frontend service—because the package's age, zero dependents, and thin release history still create disproportionate delivery and operational risk.
How can I help you explore Laravel packages today?