The best development environment for monday apps... your opinion and setup

I am wondering how you develop and test monday apps (specially integration features). To start the discussion I will share my setup and curious to know about your best practices.

I use a windows client but wanted to develop on an Ubuntu system. Therefore I am using a Plesk server with Ubuntu (from 15 US/month @ different hosting providers) which also hosts my Wordpress sites. Plesk (Phusion Passenger & nginx will take care of running multiple domains on a single IP and do the caching) and evrything is safeguareded with firewall and mod security.

On this Plesk server I configured 2 subdomains mondaydev and mondayapps together with 2 backend databases I need to support my apps (eg to keep tokens).

On my Windows machine I use VSCode with a remote (ssh) connection to my mondaydev subdomain. So anything I change in VSCode (on the Windows PC) is really changed directly on the dev server. My VSCode is connected to Github, so if I am happy with a “release” I commit changes and push it to Github.

Plesk has a very nice feature called Node.js, where you have options to build and run your Node app (you don’t need to do npm build / run etc). Because it is running on a hosted server with a public IP, I don’t need to bother about ever changing IP addresses and ngrok tunnels.

In I have apps (starting with DEV) that uses authorization and run URL from the mondaydev subdomain which is serving the endpoints.

On the production subdomain my Plesk subdomain is connected to the same Github account, and Plesk can simply pull (in that subdomain) the latest version from Github and all I need to do is build and run.

I have a clean package.json file with no npm command in it as Plesk is taking care of this. The Node.js extension of Plesk also enable you to set environment variable without the need of a .env file, so you don’t have to bother about securing the .env file holding your client secret etc.

There is only one little thing I would like to see in monday and that is to copy a feature (frontend of an integration) from one monday app to another. Currently my production app is public and my development app is private. Therefore I need to “rebuild” or “reconfigure” the frontend side of the app in the production version.

This setup works very good for me and I hope some of you benefit from this idea. Also like to know how you are handling testing vs. production.