I have a situation where we’d like to build an application that can be white labeled.
I have:
- Meteor backend
- create-react-app frontend
I see two options:
-
I have one backend server running and for each client that wants a white label portal, we spin up another version of the create-react-app (point it to their DNS, add environment variables for their names/logos etc).
-
Doing them in a mono-repo and hosting them on heroku (who seems to have an api for programmatically adding apps to it). We again pass in environment variables… each client gets a brand new server and client application
#1 is nice and simple. We can use the same database for all clients no problems, but there are things like emails that I’m worried about. The issue with #1 is if they want emails (password reset, transactional emails, etc) to come from their domains-- this gets harder when using something like node mailer I think… need to regenerate the nodeMailer instance every time and grab the credentials from the DB instead of set one time in an environment variable?
#2 is maybe more manageable. It also could make it easier to ensure the back end and frontend versions match with eachother (in case one client is on a earlier api version or something).
Any other thoughts about the pros and cons of each?
I feel like either works pretty easily as long as you (1) use the same DB and (2) the client doesn’t care if emails come from our mailgun/domain and not theirs.