there are any number of ways to slice and dice hosting pricing. You could make it really complicated, or simple.<p>At the core of it: you'll need a server, you'll need operational costs like utilities, you'll need to maintain its hardware and software. those are all your costs. The server is fixed, the rest you could project across a given month or year.<p>Generally, the rotation for compute is around 3 years, so divide (server_cost + operational)/36 is a monthly cost to run.<p>But wait! thats just for one server. But we can divide one server into virtual servers. So we get a machine with 128 cores and 64GB of RAM and 10TB of space, and now we can host many customers.<p>but of course, thats with no redundancy, on one server, in one location. But you could buy 2 servers and do some failover between them.<p>how many you can fit into a box is based on the servers and also the workload. You could setup 5000 customers on a server if every customer is very low load.<p>but also... power supplies die. hard drives die. networks get attacked. Customers do wild things.<p>That's it in a rough nutshell. Companies learn as they go, drive costs down as much as they can and drive price up as much as the market will tolerate.<p>This is why it can be simpler for startups to just rent compute from digitalocean or AWS, because everything that goes into actually running the servers can be expensive. Once you get to a certain size, it starts to become cheaper to self-host.<p>hope this helps!