I am building an app (stack is Python/Django/React and DB is PGSQL) that is supposed to be used internally in companies to track their work, assign people to different tasks, throw some statistic data, generate reports, analysis, etc. Essentially make their life easier by automating stuff that they do by hand. The app is in development process and I already have 2 clients interested. I am assuming I can get at least 2 more. Since I am not particularly experienced with such problems, I am not really sure how do I distribute the app to them optimally. My idea is to either
- have a large DB and one server to which all the clients will go and have their companies organized in groups and basically what you see will be dictated by the group you’re in. Customers are charged for subscription of group and the prices vary based on sizes of group
- make a smaller server and smaller DB for every client using the app and point each client to one server
Now the first one can be obviously much slower and less optimized as the app potentially grows and has a lot of data stored, but the second one makes my life more difficult whenever I need to make updates, or change something, I need to make sure it works everywhere. Which option would make more sense, or perhaps you could even suggest something completely different.
I apologize if the question is stupid, or general, but I have no better way of explaining, as I don’t come from SE background, but rather Mathematical/Data science and have never had such a project of my own. Any suggestion is welcome. Thanks!