White labeling applications... server variables, email, etc

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:

  1. 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).

  2. 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.

Is there a Meteor question that I’ve missed?

1 Like

sorry, it’s a meteor backend