@George and @JonL,
TLDR; I’m open to suggestions on alternative ways to build my app, but I believe node.js is the most appropriate to consolidate on one language/platform for both server part of app and desktop part of app – and allow for all email processing to happen within the desktop (i.e. Electron) app without any interaction/processing happening on the server.
Here’s what I am wanting to build and why I think I need node.js, and why php will not work. I’m open to suggestions on alternative ways to build it.
A major part of my app will be an email client. It will allow users of Gmail, Microsoft, and others to connect their work email account and use it as their main email client. I plan to build additional features (chat, task management, and more) that will reside on a server, but email is a major part of the app and this data needs to stay of the user’s device while also interacting with data stored (tasks, chats, contacts, clients, etc.) on the server so all users of an account will interact with the same data.
I already built this app on Bubble, but last year I ran into a major roadblock with gmail. Google enacted new security rules that made a web-based app that stores gmail data impossible. In order to bypass an extremely expensive, annual, third-party security review, any developer who wants to interact with a user’s gmail data must store the data on the user’s local machine. This meant that I could no longer use Bubble for a big part of my app and the main reason I moved to Wappler – using it to build a desktop Electron app, in addition to the SaaS part of the app.
Since Bubble uses node.js and allows you to build plugins using anything in npm, one of the plugins I built was for email parsing using https://nodemailer.com/extras/mailparser/.
So, now that I must build an Electron app for part of my app, and since Electron also uses node.js, it seems most logical to me for Wappler to allow building the app using javascript and node.js for everything, as php is not possible in Electron – please let me know if my understanding is not correct or if this wouldn’t even be possible with node.js.
Additionaly, npm has many packages that could be used to help all Wappler users build apps faster, whether their app was server-based or client-based, so it seems like a worthwhile effort to develop the functionality in Wappler and possibly help others transition from Bubble to Wappler in the future.
To summarize, I think javascript/node.js is most appropriate, but I’m open to suggestions to build the following:
- Build a desktop/mobile app as the client part of my app, which will retrieve/process/store email data locally – without any involvement from a server – and interact with other data (chats, tasks, contacts) on a server.
- Build a server that stores various data (chats, tasks, contacts) and has APIs for the desktop/mobile app to interact with the server-based data.