I would like to ask you for advice as I’m trying to figure out the optimal app infrastructure.
General requirements:
The app is a fully client-side React TypeScript app (bootstrapped using Vite).
The app has a few different features/entry points, e.g., board, item menu, multi-item menu.
Different features have different views; however, they share similar functionalities, so logic and code are shared.
I need full CI/CD support with dev/staging/prod environments.
To my understanding, monday-code supports only server-side applications, so I have two options:
Host the client-only app on some server and use URL builds for features. Each feature can be under its distinct URL path, e.g., <base-url>/board-feature, <base-url>/item-menu-feature.
Implement my app as a full-stack app with a Node.js backend that only serves the client app, and then use monday-code to host the app. In that case, I can also use distinct URL paths for different features.
In both cases, I need to add routing.
Is my understanding correct? Is there a better, more robust approach that you could suggest?
For our apps that have no backend, we currently host on AWS s3 fronted by cloudfront for the production version.
You can then have a different s3 bucket for dev, staging and production.
I’d recommend 3 monday.com instances. One for each ci/cd environment. It’s a hassle to set up initially, but just means that you can separate things out nicely and every commit can be automatically deployed.
One nice thing about hosting elsewhere is that you can automatically deploy updates without Monday even being aware that anything has changed.
You could do this with monday-code, but will have to manually release a new version in the developer UI whenever your production code changes.
@dvdsmpsn I have one more question if you don’t mind. We’ve decided to try out the URL hosting and I am curious how did you - if at all -approach the routing.
As I mentioned in my previous post:
The app is a fully client-side React TypeScript app (bootstrapped using Vite).
The app has a few different features/entry points, e.g., board, item menu, multi-item menu.
Different features have different views; however, they share similar functionalities, so logic and code are shared.
Generally the idea was that
There is a client-side, single page app hosted on AWS at <baseurl>.com/.
The client-side routing has paths, e.g. /feature1, /feature2.
So now for the first feature I can create build in monday app from the URL: <baseurl>.com/feature1 and for the second feature like-for-like <baseurl>.com/feature2, and so on.
Now, I imagined that AWS server would just “wildcard” URL path, and always return the SPA from <baseurl>.com/, and the URL path would be taken care by the client-side routing, however I am not sure yet if this will play well with monday. I am in the middle of figuring it out.
Do you maybe have any insights or suggestions on that matter? Maybe I should even ditch that idea, and proceed with a MPA with server-side routing?