Here is the situation - I am developing a custom CRM app that stores customers, communication records, quotes, and many other types of interrelated data. Each instance of the app will have a small number of users, under 50, and in normal use the users will be going back and forth among forms to edit and create data, view data in different ways, etc. Performance and reliability are important.
I am somewhat new to Laravel and full-stack development (been working with Laravel a lot for the last year), when I first started this project I went with Laravel + Vue + Inertia. I am very familiar with JS and with react and vue frameworks and I chose this set because of my familiarity with the frontend framework. However I began to run into the complexity of dealing with client-side caching and having to create a large number of API endpoints for all the different forms of data that the application interacts with.
Over the last couple months I have been looking into using Livewire 3 as an alternative. I love the simplicity of being able to interact directly with models and php controller methods. If I need a collection with custom business logic applied for a single component I can handle it in the Livewire components php class without having to write a controller method and API endpoint just for that single component. However, I have been having growing frustration with blade for the frontend (possibly just from lack of experience) and I don't like the lack of 3rd party libraries and documentation of Livewire as compared to Vue.
So here are my questions that I am looking for some advice on:
- Is Livewire objectively better/easier in the long run for applications that have a relatively small number of users and do not have to have a completely decoupled front end and back end? Or is it just personal preference.
- If internet speed is not a big concern with the applications users, can I just skip most of the client-side caching problem I was running into with Vue and opt to just send more requests from the front end to the API to avoid trying to manage state in the front end? Does this cause a lot problems as the application grows in complexity?
- Is there are framework or solution that I am not aware of to have the freedom of JS front end development with Vue and the simplicity of being able to eliminate the API and interact directly with PHP from component code?
Thank you for any advice that you can provide, I know whichever route I go will have its own downsides, I just am not sure which stack will give me the least overall headache down the road as the application continues to develop.
Thanks!