My Problem with InertiaJS and Livewire

First of all, both tools are great, I used them and I released more than one product using Livewire components.

Livewire

Livewire is great if you want to add interactive components to your website without using jQuery or a SPA framework. It is awesome if you do not want to bother writing ajax calls and jQuery DOM manipulations. Even though the interactions need to call the backend to be performed, the UX is still acceptable to me. But if you want to build a SPA then Livewire is not for you, even if you think that using the Turbolinks library, it is just not the same.

InertiaJS

Again, it is a great tool, I did not use it for any products but I experienced with it. And I had plans to use for an incoming project of mine but I could not go through. But why? InertiaJS gives you the ability of rapid development where you can use VueJS for example without the need to build API endpoints. The problem is that the tradeoff (for me) is huge, it just makes the app routing slow because the app is waiting for the backend to decide which component to go to. So even though you are using the best frontend frameworks out there, you are not giving the user the experience of it. You can see what I mean in action with this template which has two versions InertiaJS and VueJS. Try to navigate the left sidebar menu and you can see the difference in the page load.

InertiaJs version: https://luma-vue.demo.frontendmatter.com/app/student-my-paths

VueJS Version: https://luma-vue.demo.frontendmatter.com/app/student-my-paths

I can not justify this huge tradeoff, in some applications I want the full SPA experience, and for this kind of apps, I would go with VueJS.

If you are reading this and you think that I might be wrong about something I wrote here, please let me know.