Member Since 8 Months Ago

Experience Points

2,410 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed
Best Reply Awards
Best Reply
  • start your engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-in-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber Created with Sketch.


    Earned if you are a paying Laracasts subscriber.

  • lifer Created with Sketch.


    Earned if you have a lifetime subscription to Laracasts.

  • evangelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

Level 4
17,590 XP
1 month ago
Activity icon

Replied to Laravel + Vuetify Vs Livewire + Tailwind

@marianomoreyra , Thanks for the response

In fact, I have tried Inertia. The problem with that, for me is this: it reinvents the wheel at sometimes, and you end up having A LOT of problems related to Webpack configuration. This had more to do with laravel-mix than Inertia itself.

I remember spending 2 days tweaking Webpack configs to get codesplitting and treeshaking working properly with Inertia and, at the end, I still had problems with CSS extraction and stuff like that, and this was all related to Mix, which was behind some Webpack plugins and loaders fixes. Also, Inertia docs recommended DOWNGRADING Mix even more.

This was the reason why I end up with a custom workflow. Instead of fighting Webpack to get things working with Inertia, I simply created a Vue CLI app on a "frontend" folder at the root of my Laravel project and EVERYTHING related to the frontend and Webpack was magically working out of the box

And finally, Inertia dosn't tackles the SEO problem. You'll have to use some "foreign" service to generate SEO friendly verisons of the pages.

Activity icon

Started a new Conversation Laravel + Vuetify Vs Livewire + Tailwind

Hi, folks.

In my last project, I coupled Laravel with Vue.js and Vuetify. This had its upsides and downsides. For my next project, I’m trying to figure out which route to take:

  1. Should I stick with my Laravel + Vue.js + Vuetify stack

  2. Should I try Livewire with Tailwind

So, I’d like to share my thoughts on what I liked and disliked on the last project and find out what others opinions are.

Using Vuetify was really good for theses reasons:

  1. I (almost) didn’t need to write CSS. I can safely say that I spent less than 1% of the time of the development writing CSS. This is really important since I think this is the main time consumer on my workflow.

  2. I didn’t need to worry about responsiveness. Vuetify components took really good care of that.

  3. The end result of the UI was incredibly good and no users reported any sort of problems in the 2 weeks the project is online.

  4. The assets generated by Vue CLI are PERFECT. All the codespliting, treeshaking, minification and that complicated Webpack stuff that we usually almost loose our minds with were handled gracefully by the CLI.

The downsides were these:

  1. Duplicated validations: validations which are ready out of the box on Laravel needed to be duplicated with vee-validate on the client side.

  2. Another problem is related with URLs. I love Laravel’s named routes and these are the only way I reference and generate URLs on my app. Not having access to these functionality on the client side sucks and I don’t like using something like ziggy, which adds code to be delivered to the user for something that is ready on the server.

  3. Handling permissions on the client side sucks. I love Laravel’s policies approach and I think it’s a real loss having to map permissions to a JavaScript object so Vue.js can decide what to and what no to render, for example.

  4. Not SEO friendly. Well.. You all know about that...

For the upsides, I MAY BE WRONG, but I have a feeling that all of those goodies will go away adopting Livewire + Tailwind.

My main “fear” on adopting Livewire + Tailwind is ending up having to tweak lots of classes and losing a lot of time to get something not as good as what is ready with Vuetify. I would also have to worry about responsiveness and It seems to me that Livewire handles “codesplitting” on a more traditional way. Adding script and style tags and latency (more round trips) to the page when it’s needed.

On the other hand, I think that every time we can keep things on the Laravel side of things, it’s a big win. Testing Livewire, for example, looks a lot better than testing Vue components. Since my main “fear” is losing time with CSS, one could suggest the new Tailwind UI. And I’m considering it. But it seems to me that it only solves the CSS problem. You’ll still have to write the JavaScript interactions with the components, which are ready in Vuetify.

So. I’m really, really undecided and I’d like to hear from you what your thoughts are.

Thanks in advance.

6 months ago
Activity icon

Commented on Thread Subscriptions: Part 3

If SEO is critical for you but you really want/need the befits of Vue, you'll probably want to research about Server Side Rendering (SSR) for Vue. You can take a look at Nuxt.js. The thing here is that you will have a Node.js server rendering your Vue components on the server side, they will then be enhancing on the client side. The requests made with axios to the PHP server on your Vue components will run on this Node.js, then, Node will render the page and deliver it. Once in the client, Vue will do it's job as usual. Anyway, I think that if you want the best that Vue offers + good SEO, you will not escape the route of having an API server with PHP and another Node.js server for delivering pages to the users.

Activity icon

Commented on A User Can Filter By Unanswered Threads

Using Laravel 7 I was able to simply do this:

protected function unanswered() {
   return $this->builder->doesntHave('replies');