laravel-frontend-presets/bootstrap-4
A Laravel frontend preset that swaps the default scaffolding for a clean Bootstrap 4 setup, publishing ready-to-use layouts, views, and authentication templates. Run the preset command and start building responsive Laravel apps with Bootstrap 4 styling already wired in.
Architecture fit. This is a scaffolding/preset package, not a runtime dependency. It hooks into Laravel 5.5's php artisan preset command to overwrite a small, known set of front-end source files — resources/assets/sass/app.scss, resources/assets/js/bootstrap.js, package.json scripts — swapping Laravel's bundled Bootstrap 3 scaffolding for Bootstrap 4 equivalents, then expecting the team to run npm install && npm run dev. It registers no service provider in the request lifecycle, ships no models, migrations, or routes, and has zero production runtime footprint. Architecturally that makes it safe but low-leverage: the blast radius is confined to build tooling and committed asset sources, which is exactly the category of change a team can also make by hand in under an hour.
Integration feasibility. Feasible only on Laravel 5.5.x and, with caveats, 5.6.x. The preset command this package depends on was deprecated and later removed from the framework, and the target directory layout (resources/assets/) was relocated in Laravel 5.7. Any application on 5.7+ or any major after it cannot run the preset as designed. The officially maintained successor path is laravel/ui with php artisan ui bootstrap, which supersedes this package's entire reason for existing.
Technical risk. High, concentrated in the toolchain rather than the code. The preset pins an era-appropriate stack: Laravel Mix 1.x/2.x on webpack 3, and a Sass compilation path that expects node-sass. node-sass is deprecated and does not build on modern Node LTS releases, so reproducible installs require pinning a Node version that is itself out of security support. Bootstrap 4 is end-of-life (4.6.2 was terminal; Bootstrap 5 shipped May 2021), so the underlying framework carries unpatched-issue risk and a growing documentation vacuum. Compounding all of this: the package shows a 0 score, no stars, and 0 dependents — there is no community to validate it, no maintainer to triage a supply-chain issue, and no signal that the source itself has been touched since roughly the Laravel 5.5 launch window.
Key questions.
Stack fit. This sits in the build layer: Composer (dev dependency) → php artisan preset bootstrap-4 → npm install → npm run dev. It never touches the PHP request path, so it cannot regress application behaviour directly. Fit is therefore binary — it either matches the framework version or it does not, with no partial-compatibility middle ground.
Migration path. The correct strategic framing is that this package is a migration step, not a destination. The realistic options, in preference order:
package.json changes by hand; it is a handful of files and leaves no dependency to abandon later.laravel/ui. For Laravel 6/7-era apps, php artisan ui bootstrap is the maintained, community-supported equivalent and is the obvious upgrade from this preset.composer.json and commit the resulting files. Treat it as a code generator, never as a standing dependency.Compatibility. Validate before committing: Laravel version must be 5.5.x/5.6.x; the preset artisan command must exist (php artisan list | grep preset); resources/assets/ must exist; and the pinned Node version must be a node-sass-compatible release. Bootstrap 4 also changes the JS dependency graph from Bootstrap 3 — jQuery remains, but Popper.js is now required and load order matters.
Sequencing. (1) Confirm estate version inventory and freeze status. (2) Spike the preset on a throwaway branch with a pinned Node version; capture the exact diff it produces. (3) Re-implement that diff as a hand-authored commit, dropping the dependency. (4) Run visual regression and accessibility checks against the design system. (5) Only then open the Bootstrap 4 → 5 conversation, because the jQuery-to-vanilla-JS and Popper 1→2 changes will require another coordinated pass and are the real long-term cost.
Maintenance. Effectively zero upstream maintenance — assume the package is frozen. That is acceptable for a one-shot code generator and unacceptable as a permanent dev dependency, because "frozen" also means no security triage on the transitive npm tree it prescribes.
Support. No vendor, no maintainer responsiveness, no issue backlog to read for known failure signatures. Internal ownership must be explicit: name a front-end owner for the toolchain pin and document the Node version in the repo, or the next npm install on a fresh laptop becomes an unbounded debugging session.
Scaling. No runtime scaling implications — output is static assets, so CDN and caching behaviour are unchanged. The scaling risk is organisational: every new engineer onboarding to the repo inherits a dead toolchain, and the cost is paid per hire rather than once. CI reproducibility also degrades as old npm packages and Node binaries become harder to source.
Failure modes.
npm install fails on modern Node (node-sass build errors) — highest-probability, highest-friction failure.app.scss / bootstrap.js; it overwrites rather than merges.Ramp-up. Low for anyone who has worked in a Laravel 5.x + Mix codebase — the preset is a familiar pattern and the generated files are conventional. The real ramp-up cost is on the upgrade side: the team must eventually absorb both a Laravel major and a Bootstrap major, and deferring via this package increases the size of that eventual jump.
Recommendation. Do not adopt as a standing dependency. If a Laravel 5.5.x application genuinely needs Bootstrap 4, use the package once as a generator, strip it from composer.json, and commit the diff. Budget immediately for the Bootstrap 4 → 5 and framework-upgrade conversation, because with 0 stars, 0 dependents, a 0 score, and an EOL target framework, there is no future in which this package remains part of a supported estate.
How can I help you explore Laravel packages today?