I currently store multiple customers in the same GraphCMS “base” (let’s call it a base), that’s not what I’d like to do in a perfect world, I’d very much prefer to have one “base” per customer, with their data being separated.
But, if I create one base per customer, then I have to pay much much more $ because each base will have its own “plan” (each would cost me $150/month instead of just $150/month)
I currently have 13 customers, which would currently cost me 13*150=$2k/mo, that’s a lot. Especially considering that some of those customers only pay me $2-3k/year.
Also, it’s much more complicated to manage, because each base would be managed independently (even though they all should/would have the same schema). Meaning, adding a field in one should be added in all of them.
Due to the foreseen cost, complexity and burden of maintenance of the “one base per customer”, I’ve decided to use only one base for all of them, and just have a field that references which customer each data belongs to. It works fine, except in a few use cases such as backups/restoration (I may need to restore only one customer’s data, while leaving other customers untouched).
Also, when making changes to the data schema, it applies to all customers at once. It’s fine for non-breaking changes (and it’s a good thing in such case), but it becomes much more complex when doing breaking changes (such as a new Major version), because it has lots of impacts on the customers (we may need new data from them, etc.). For such cases, I haven’t found any other way than using a new GCMS base and migrate each customer one by one to the new major version once everything is setup.
I wonder if you have many customers with a similar scenario, and what could you do to help managing and automate things.