enabel/layout-bundle
Deprecated Symfony bundle providing a responsive Bootstrap 5 layout with Enabel styling, Twig components (alerts, theme and locale switchers, user menu), favicon management, error and email templates, and light/dark mode theming.
Architecture fit: This is a Symfony bundle, not a Laravel package. It ships Symfony DI configuration, a bundle class, Twig templates/components, Bootstrap 5 layout assets, and Enabel design-system styling. A Laravel application has a different runtime model: Blade instead of Twig, package discovery via extra.laravel, Laravel service providers/config, Vite/Mix asset pipelines, and no Symfony bundle registration. As a result, the package is not architecture-compatible with Laravel as a dependency. Its reusable value is limited to static assets and template patterns: layout HTML, Bootstrap 5 structure, alert/theme/locale/user-menu markup, favicon handling, error pages, and email templates.
Integration feasibility: Low if the goal is composer require and runtime integration in Laravel. High effort is required to bridge Symfony bundle conventions, Twig components, and Symfony config into Laravel. Moderate effort is possible only by treating the repository as a reference implementation: copy MIT-licensed CSS/JS/Twig templates, convert Twig to Blade, replace Symfony configuration with Laravel config, and rebuild components natively. For a Symfony application, integration would normally be straightforward, but the package is explicitly deprecated, which removes the main reason to integrate it as-is.
Technical risk: The deprecation notice is the dominant risk. “Deprecated and no longer maintained” means no security patches, no PHP/Symfony compatibility updates, no bug fixes, and no support for future Bootstrap or browser changes. The repository shows README, docs, changelog, and releases, and the SymfonyInsight/codecov/CI badges suggest historical quality controls, but those do not offset abandonment. Additional risks include unknown Symfony/PHP version constraints, coupling to Enabel branding and design-system CSS, Twig component semantics that may not map cleanly to Blade, and asset-pipeline conflicts between Symfony Encore and Laravel Vite. The score of 9 should be read as a quality signal within its original context, not as a recommendation for a Laravel stack; with zero dependents and a deprecation notice, strategic risk is high.
Key questions:
Stack fit: Poor for Laravel as a package dependency; acceptable as a design and template source. The practical fit is to reuse Bootstrap 5 layout structure, CSS theming, and component markup while rebuilding the integration points in Laravel conventions. For a Symfony application, the correct stack fit is to migrate to Enabel UX rather than adopt this deprecated bundle. The package’s runtime value is mostly frontend; its Symfony/Twig plumbing is the part that does not transfer.
Migration path: Treat the repository as a time-boxed extraction source, not a long-lived dependency.
composer require enabel/layout-bundle in Laravel and document the deprecation rationale.config/*.php and .env.Compatibility: Expect friction at every framework boundary: Symfony bundle registration, Twig extensions/components, Symfony Config tree, and asset paths. Laravel can adopt Twig only through additional bridges, which adds version-alignment risk and is not justified for layout templates. Bootstrap 5 CSS/JS is portable, but the Enabel design-system layer may assume specific markup, fonts, or icon sets. The package license is MIT, which permits extraction with attribution, but the absence of maintenance means compatibility with current Laravel, PHP, and Bootstrap releases is not guaranteed.
Sequencing: Start with a discovery spike that identifies the minimum reusable surface and validates one component end-to-end in Blade. Then extract design tokens and layout before components, because alerts, menus, and theme switching depend on layout primitives. Build and test the theme switcher and locale switcher early, since they carry the most behavioral risk. Defer email templates until the web layout is stable. If any Symfony application is in scope, sequence the Enabel UX evaluation in parallel and block new Symfony integration with this bundle.
Maintenance: Deprecated status means the upstream maintenance burden transfers to our team immediately. Any extracted code becomes a fork with no upstream fixes. We must pin or vendor assets, track security advisories for Bootstrap and other bundled dependencies, and periodically review Enabel UX as the intended replacement. Allowing the package as a direct dependency would create an unmaintained third-party surface in the build, which is difficult to justify for a layout layer.
Support: There is no vendor SLA and no active maintainer. The repository has documentation and release history, but support is effectively self-service. Zero dependents and limited public adoption reduce the likelihood of community answers. Internal ownership must be explicit: a frontend owner for templates/assets and a backend owner for Blade/Laravel integration. The CI, codecov, and SymfonyInsight badges indicate past engineering discipline, not ongoing support.
Scaling: Runtime scaling is not a major concern because the package is primarily templates and static assets. The real scaling concerns are team scale and asset delivery: Bootstrap bundle size, CSS duplication, icon/font loading, and cache headers. Theme switching is client-side and should remain cheap; locale switching should reuse Laravel’s localization cache. Email template rendering scales with the mail queue, not this package. If the design system grows, a copied template layer can fragment across applications unless governed centrally.
Failure modes: The most likely failures are upstream abandonment, framework incompatibility after PHP/Laravel upgrades, broken Twig components if a bridge is used, asset-pipeline conflicts between Symfony Encore and Laravel Vite, flash-of-wrong-theme on page load, favicon caching issues, missing translations, and email-client CSS rendering problems. Security failure modes include unpatched Bootstrap or transitive dependencies and unreviewed template markup. Operational failure modes include unclear ownership, divergent copies across teams, and a delayed migration once Enabel UX becomes the standard.
Ramp-up: For a Laravel team, adopting the bundle as-is requires Symfony bundle, Twig, and Symfony Config knowledge, which is a high and largely wasted ramp-up. Extracting templates requires moderate HTML/CSS/Bootstrap and Blade skills, plus design-system familiarity; a small team can usually port the layout and one or two components in a short spike, with the full set taking multiple sprints depending on accessibility, localization, and email requirements. For a Symfony team, ramp-up on the bundle is low but strategically misdirected; effort is better spent evaluating and adopting Enabel UX. Documentation and decision records should capture the deprecation rationale, extracted-code provenance, and the exit path to the recommended replacement.
How can I help you explore Laravel packages today?