helthe/turbolinks-bundle
Helthe Turbolinks Bundle integrates Turbolinks with Symfony, replacing full page reloads with faster AJAX navigation. It adds the required JavaScript, response headers, and Twig helpers so your Symfony app feels quicker with minimal changes.
helthe/turbolinks-bundle is a Symfony bundle — it ships a Helthe\Bundle\TurbolinksBundle\... service provider registered through Symfony's kernel, not a Laravel service provider or facade. The primary PM decision it informs is a negative one: do not schedule this into a Laravel roadmap without a port. Treat it as prior art, not a dependency.<body>, preserve head assets, avoid full page reloads — is a "perceived performance" lever, not a feature. The buy-side options have moved on considerably: hotwired/turbo-laravel, Livewire 3's wire:navigate, or Inertia.js all deliver this on Laravel with active maintenance. This package represents the 2014-era, Turbolinks-Classic-shaped version of that idea.Adopt only if all of the following hold:
turbolinks:load / page:change lifecycle events, and that third-party widgets (datepickers, analytics, ad tags) will need re-initialization hooks.Look elsewhere if:
turbo-laravel, Livewire wire:navigate, or Inertia. Porting this bundle is strictly more work than adopting a maintained alternative.Bottom line for executives: this is not a Laravel package and we should not plan around it. It's a dormant, single-maintainer Symfony bundle (38 stars, zero downstream dependents) implementing a pattern — Turbolinks — that the industry has already replaced with Hotwire Turbo. The capability it gestures at (faster-feeling page navigation without an SPA rewrite) is real and worth pursuing, but we'd buy it from a maintained Laravel-native source at near-zero integration cost rather than inherit this one.
For engineering: treat this as reference material. The pattern is worth 10 minutes of reading if we're evaluating transition acceleration on a legacy server-rendered app; the code is not worth a dependency. If we want the capability on Laravel, spike turbo-laravel or Livewire wire:navigate for a day and measure against our actual p75 navigation timing. Note the two real costs either way — the JS lifecycle rewrite (turbolinks:load-style init hooks) and third-party script re-execution — because those dominate the effort estimate, not the library choice.
Recommended decision: no adoption. Log it as evaluated-and-rejected with the reason "framework mismatch (Symfony) + superseded pattern + no maintenance surface." Revisit only if a Symfony 2/3 legacy app enters scope, and even then only as a throwaway spike.
How can I help you explore Laravel packages today?