[Architecture] How to move “PHP.Laravel + VueJS” app to Hybrid app?


I’ve a sort of task manager app which the backend is written in PHP and the front-end in vuejs+HTML+CSS, so my understanding is that it is fairly easy to bundle the front-end part into a hybrid app by something like Electron, but I also want to get rid of the server-side interactions and allow all the database storage to take part on user’s computer.

I can imagine a tech-savvy user be able to easily setup Laravel+MySQL & run the server on his or her desktop, but of course, my ultimate vision is to have the whole setup process and data handling be invisible to the user.

I’ve seen task managers that store tasks into files and then read and write from via Electron and JS, but I think, I rather stick with using a Database and beside the Database, Models and Controllers, I think I can skip all extra futures that having that app run on a server would provide.

Any suggestion how to best make this happen? Preferably without adding an extra language to JS+PHP. Or if this isn’t possible, what is the other alternatives to keep the VueJS+HTML+CSS front-end as it is but translate the PHP code to some other language that can be compiled for cross platform, or at least Linux + MacOS?

PS. I saw this thread, but any better practice, update?

PS. Mirrored from StackExchange


I would suggest removing the PHP. If you’re up for some coding work, you should port every PHP function into JavaScript and use LocalStorage or some Node-friendly ORM like Waterline for your storage needs. Electron is basically a browser with a server strapped to the back. If all you need the server to do is store data, use Node. Anything else will cause more work for you and more risk of things breaking in the future as the technologies migrate away from each other.