Making Money from Hosting as a Small Dev Shop
Last Updated On: 2025-09-01 04:31:51 -0400
If you are a small custom development shop that is now starting to build custom line of business software for companies, you likely wrestle with how to handle hosting.
I would argue that your business is providing solutions to organizations and that solution happens to run on a server – but – as we finish a project, the question becomes “how does that software get delivered?”.
There are a couple of options:
- Hand It Over. Turn it over to the customer and have them operate it.
- We Run It.
Hand It Over
The problem with 1 is that customers generally don’t have the ability to host and operate something – or – if they claim to – they will likely screw it up.
We Run It
In the we run it scenario, we would handle the operational side of things and provide to the customer an ongoing server which simply runs their application and we would charge them for that on an regular basis. This has several advantages:
- New revenue stream
- Value added because we aren’t charging the cost of a raw server; we are charging the cost for keeping our custom software running on a dedicated server and being responsible for uptime
- It keeps us tied to the customer because we have a regular revenue stream (although it isn’t guaranteed, I suspect this keeps us in the running for new work as its easier to spend \($ with someone you are already spending\)$ with)
- It keeps us in the loop on any bugs since we are guaranteed log access
- It keeps the customer from breaking what we have done for them
- It means the customer needs us more because they may not even have the code we wrote for them (i.e. our deliverable isn’t code but a running url)
How Do We Make this Technically Easier to Do?
A simple way to make this technically easier – and guarantee performance on the customer’s project – is easy – use a single physical server for anything we host. By using a single server, yes, we incur higher costs but those costs are passed directly onto the customer and we benefit by strict isolation of data between customer A and customer B.
Given the low cost of servers today from something like say OVHCloud or Digital Ocean or Hetzner, we can deliver great performance and still make a profit.
Note: I’m deliberately excluding the commercial cloud vendors because their billing models aren’t predictable enough to guarantee profitability.
- https://specbranch.com/posts/one-big-server/
- https://news.ycombinator.com/item?id=32319147
What Can We Charge?
The answer here likely varies but let’s look at raw machine prices from something like a Hetzner
AMD Ryzen™ 5 3600CPU6 cores / 12 threads @ 3.6 GHzGeneration:Matisse (Zen 2)RAM64 GB DDR4 RAMDrives 2 x 2 TB SATA Enterprise Hard Drive
€44.39 / month
- €46.41 setup fee
The value of what we are providing isn’t the 44 per month; its the value of running the custom software, managing it, etc. That has to be at least a few hundred per month (imho; you know your customers better)
The Answer, Sadly, Is Likely Docker
While Docker is a crappy development technology, it actually is a good deployment technology and I think we can pretty easily leverage Docker to provide what we need to make this a new revenue stream for the business.
Let’s talk about what has to happen:
- Machine has to be purchased
- DNS has to be handled
- Machine has to be provisioned which can be done with something like ansible
- Backup has to be arranged for (which can be a cron job which dumps a db backup to s3)
- Machine has to be monitored (which is basically a health check feeding into an alerting service)
Virtually all of this can be done with an ansible process.
Conclusion
Overall deepening our relationship with our customers makes you more successful. Eliminating a handoff of code and getting a new revenue stream feels like a win to me.