Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

ILoveCodingInPHP's avatar

Keeping up with the latest: need some help!

Hello friends!

It's been nearly a decade since I first discovered PHP/Laravel, and I fell in love with it right away. Even after exploring other languages and ecosystems, I never abandoned my trusty steed. It's truly been an amazing journey!

A bit about me: In my early years, I primarily built monolithic applications, usually relying on the now-deprecated laravel/ui package with Bootstrap as my go-to CSS framework (simply downloaded and included in the HEAD), alongside some basic jQuery.

I’m someone who values stability. I believe it’s crucial to develop and deploy applications that can run reliably for at least five years, with minimal maintenance apart from necessary backend dependency upgrades.

My current situation: Times have changed. I’ve always considered myself the “Debian” of developers (in a good way!), but I also recognize the need to adopt newer technologies once they're proven and established as community standards.

Here’s where I run into trouble. I’m fairly up-to-date on backend APIs, but the frontend world has evolved dramatically. I’m not (and don’t want to be) a front-end wizard dabbling in complex frameworks, yet I still need to deliver a product that handles both backend and UI.

So let’s say I want to build something new to keep up with the times—maybe an image uploader. Obviously, I’d use Livewire + Blade for this. But how do I provide authentication? The current packages no longer support my beloved Bootstrap. I’m unfamiliar with Tailwind or Bulma, and don’t even get me started on Laravel Mix or npm. It’s all making my head spin!

Please help me out here. What's the path to a solid foundation for a backender in 2025?

Thank you..!

1 like
3 replies
Sinnbeck's avatar

Why not check out the new starter kits for auth? They have a livewire one too :) https://laravel.com/docs/12.x/starter-kits

There is also filamentphp which is a whole backend system https://filamentphp.com/

But I would at least learn tailwind for the frontend. It is what almost everything uses today and it isnt that hard. Also livewire ships with vite+tailwind set up for you

1 like
vincent15000's avatar

I you want to continue with Laravel, I think that the TALL (TailwindCSS, AlpineJS, Laravel, Livewire) technologies are important.

1 like
martinbean's avatar

@ilovecodinginphp Don’t be dismayed, I still use my beloved Bootstrap with Laravel, even right up to Laravel 12 😉

I’d say, unfortunately, front-end development is changing. Most projects, CSS and JavaScript is modular and transpiled instead of just straight-linking to a static .css or .js file using <link> and <script> tags. So, I’d get familiar with Vite, even if it’s just to get used to the workflow, by creating static CSS and JavaScript files in your resources directory:

touch resources/css/app.css
touch resources/js/app.js

Building them with Vite:

npm install
npm run build

And then adding the Blade directive to your layout template to inject those files:

@vite([
    'resources/css/app.css',
    'resources/js/app.js',
])

If all is good, you can then maybe look at replacing the app.css file with a Scss file (if you intend to use Bootstrap):

touch resources/sass/app.scss

You’ll need to update the entry points in your vite.config.js file:

  export default defineConfig({
      plugins: [
          laravel({
              input: [
-                 'resources/css/app.css',
+                 'resources/sass/app.scss',
                  'resources/js/app.js',
              ],
              refresh: true,
          }),
      ],
  });

And also in your Blade layout:

  @vite([
-     'resources/css/app.css',
+     'resources/sass/app.scss',
      'resources/js/app.js',
  ])

When building using npm run build you might get an error saying you need to install a Sass-related module. That’s fine, just install the package. I think it’ll try and say sass-embedded is missing, so install it as a dev dependency:

npm install --save-dev sass-embedded

And then try running npm run build again.

If that works, you can look at installing and using Bootstrap:

npm install --save-dev bootstrap

Update your resources/sass/app.scss file to import Bootstrap:

@import "bootstrap/scss/bootstrap";

And hopefully you should now have a Blade view using Bootstrap styling.

Obviously running npm run build after each change is tiresome in development, so you can instead run npm run dev. This will start running the Vite dev server, which will watch for changes in your files, and automatically refresh the page when needed. You also don’t need to change anything in your Blade view(s); the @vite directly will automatically inject the correct tags in your web page based on if you’re building static assets or running the dev server.

1 like

Please or to participate in this conversation.