You're right; distribution is one of the biggest challenges for a service like this. There's a bit of a tradeoff in my eyes; you can either support a few setups with seamless self-service, or you can support everyone but on a case-by-case basis. We think that the IaC approach bridges the two; our goal at the moment isn't to rush to fully hands-free self-service, but rather to optimize for the range of configurations we're compatible with and how seamlessly we can support clients on those stacks.
Using IaC helps a lot with the former, and getting experience onboarding different clients has helped with the latter - we're now familiar with common hangups (e.g. figuring out the data layer), and we've built processes into the product to get around those (e.g. immediately populating a test DB from a specified staging DB). We've seen progress in how quickly we can get people onto the platform; it now generally only takes a day, and we're bringing full self-service in sight as that duration decreases.
That being said, our broader goal is to hit the larger enterprise market, for which (as you mentioned) a higher-touch approach is warranted.
Using IaC helps a lot with the former, and getting experience onboarding different clients has helped with the latter - we're now familiar with common hangups (e.g. figuring out the data layer), and we've built processes into the product to get around those (e.g. immediately populating a test DB from a specified staging DB). We've seen progress in how quickly we can get people onto the platform; it now generally only takes a day, and we're bringing full self-service in sight as that duration decreases.
That being said, our broader goal is to hit the larger enterprise market, for which (as you mentioned) a higher-touch approach is warranted.