This post will be structured in two parts, the first one is why I failed to make the business. The second part describes the software I used and why.
An story of failure
I'm a developer, and therefore I have a tendency to always find an excuse to create software for any purpose. And that may be a good trait for being an employee, it is an absolute nightmare walk the hard path of entrepreneurship without a business-oriented mind.
I started the project with the idea of creating a platform very focused on photography. It was completely coded in Scala and ScalaScript. It was a beautiful piece of software. But when I got it working I realized a crucial mistake: how the f can I differentiate this from an extremely cool WordPress website?
I made me that question was after 3 stupid months of development. I hope you can read my pain. From a client acquisition perspective, it doesn't matter if this my page is coded to scale horizontally and vertically. Can you believe that even in a recent project I worried about scaling? Just very dumb...
Well, I switched everything to PHP. I felt like shit transitioning from a static typed functional programming to PHP. PHP if you didn't know only has one paradigm: slow spaghetti paradigm.
At this point, I have all the code to launch a server and let it self manage itself. Each node fetched the provisioning information and then a nice Go script does all the work every n hours after being called by
cron. Also, I had another provisioning/sales server that was the "master" node for the other clients. My beautiful sales server was running a proprietary hosting software called Blesta.
What could go wrong? NO F!@#!@ BUSINESS PLAN! But let me continue...
Then came to time to start selling my hosting. I have a superior product, my hosting was VERY FAST, every WordPress installation was faster than the competition. My plans were monthly without any kind of annual commitment. But because I had an ultra fast and optimized website I needed to run EACH server in its own VPS. You know what that really means: COST! 10USD/Month/Website.
10USD/Month/Website is my cost for one VPS/client. The problem with that is that as I discover later my biggest expense isn't the hosting itself. The ads are. The stupid advertisement is.
I didn't know that the advertisement was so expensive in this niche. I was competing against very big brands that could destroy me with their $0.99/Month offers.
I didn't make ANY sales. I just received complains about how expensive my hosting is. And people calling me begging for money because I had my own business. F#@!#! off! I'm losing money! My precious savings!
After 5 months of wasting money was DRY. No money, so I shut down that wallet blackhole I called "igreator.com".
I failed in may other projects in my life this is the only one I lost a big chunk of money. But I can give you some lessons I got from this:
- Sell whatever you want to sell before you have it.
- Again, have the sales before anything exists. Don't ever invest in anything without having the clients first.
- Tech guys are tech guys. And they are great for creating beautiful pieces of code. But they freaking suck at understanding the real business value of what they are doing.
- Put extreme attention at the costs and the sustainability of your business model.
- Sell your sh1t first, yehaa again.
I can summarize with a video of one of my favorite series "Billions". I felt like the wife:
If you are a developer you may don't understand why the fuck your managers or your bosses want something "fast". You need to understand that your efforts as a developer don't server the system or the software, they server a business goal. You need to get business functionality as fast as possible. TTM baby!
But as a developer myself, I know that achieving something fast is very difficult. And here is what for me really differentiates a "senior" developer from the average developer: The experience. Experience gives you enough perspective to decide which corners you can cut, without affecting the development in the future. Juniors can't do that.
Again: Your decisions can be technically correct, but your aim isn't a good code, but a long lasting business. Understand the real needs of your boss.
Your boss doesn't want that stupid piece of software, your boss wants the money that the tool you are coding can give.
My advice to you
I at the end I will list software you may want to use. But before that. I want to tell you how I would go if I would try to do this thing again:
- Build a brand: the quality of your server doesn't really matter at the beginning. Focus on branding, and client support.
- Other brands offer 0.99USD/Month hosting, you can be profitable with those prices if you do it right. But you should know how to compete and differentiate yourself in the market.
- The technical side is "easy" if you hire the right guy. But I would only care when you are already making some good profit and you want to scale. Otherwise, any "good enough" coder will be a fit.
I really don't think that the business can be scalable. The market is very saturated and I truly believe that you can't give any different experience to the user. You may need to really niche down, I don't know...
The software side
If you are crazy enough to waste your time, in this section I will describe some software that I burned my time investigating. I will classify them into three categories:
- Billing and automation
- Control Panels
But again, if you want to build your own hosting business, you may want the developer care about this sh1t:
I would be processing the payments manually until the business model is validated... but you still want to read...
What you believe you want is called billing subscription platform, you need this to get your payments in a recurring manner, ideally for ever. There is available many open source projects and also SaaS platforms for payment management, but there is a problem with those: Even if all they billing logic is already done for you, you still need to connect that component with the provisioning and configuration software. That requires a lot of testing and work, as always. There are other software solutions that has this embedded for this specific use case of web hosting. But if in you need to do something VERY custom, I have some open source billing platforms for you:
KillBill is likely to be one of the most popular billing-only opensource platforms. Is one of the only platforms that appears in google easily without digging inside another website.
ServiceBot is another alternative a much much modern version of kill bill, but it only supports stripe.
And Open Source Billing, is also another good alternative
2. Billing and automation
This what I like to call Billing & Provisioning, but usually all-in-one packages do more than provisioning, so they go for the “Automation” word.
When you receive your payment, you need to fire up servers, or assign resources to users. And the life cycle of those resources are highly tight to the payment system. If the user stops paying we free resources, in a case of a plan upgrade we will assign more resources and so on. Ideally what we want, is some sort of system that already has this business logic embedded in their product. This is called: web hosting billing and automation software
Your goal is to get something you can trust with your clients, and fast. So I should avoid any crappy products or untested. The product should be commercially supported. This is very important while you are developing something where your reputation is in play, you need commercial grade support for the software you use to run your business, otherwise any problem that may happen you will encounter your self in your own.
Free Side, I believe if you go for this project, you may literally end dying because of stress. The level of obscurity of this project at my eyes is incredible, you won’t be able to found any drop of usable documentation. Google nor god will help you with this product. But if you want something worst to you can go for abandoned alternatives like CitrusDB or phpCoin. Please don’t.
Host Bill, seems very good and trust worthily, but I can spend much time investigating about it, just because is prohibitively expensive. Their cheapest license option is a one time 1000USD payment, may seem like an acceptable price for you, but in my case is far greater than all my savings. But if you have the budget please go and take a serious look to it.
Bill Manager, is a good piece of software, but for our case or provisioning/automation it doesn’t seems to fit very well. They have two plans “BILLmanager”(15USD/Month) and “BILLmanager Corporate”(55USD/Month), the corporate version is the only that supports reselling capabilities, in other words I can be sure if I can create my custom provisioning plugin with the base license. In their defense, they offer a very attractive free unlimited testing time up to 50 clients. Something to consider. But with my superficial investigation it seems very limited in features in relation with the competition, specially because the company behind this product, IPS System, offers other products for automation, making me think they may make one product need or complement the other to force me to pay more.
Blesta seems to be in my use case the first real alternative, both in price, features, and support. The full license is 15USD/Month with 30 days trial. My problem with this is the documentation, even if is there is very limited in comparison with whmcs
WHCMS, Web Hosting Management Complete Solution, It may be not the best option, but for far the most popular and most documented web hosting solution in the market. If you are a begginer and you also have a deep wallet to buy plugins for every extra functionality you need this is your software.
3. Control pannels
A control panel is a graphical interface you offer to your web hosting clients to allow them to manage their servers with very low technical knowledge.
It requires some sort of comfort with this technical jargon, and even me as a developer I feel a little intimidated by this kind of interface. In any case, this type of interface is a standard for the webhosting industry. Specially cPanel, everyone uses it, but it cost at minimum 20USD/Month/Server, yes per server! crazy! But it does make sense when you buy huge VPS’s or dedicated server which cost +300usd/month.
If you are asking your self if you personally can afford cpanel or alternatives, let me day that most likely you can. Why? Because most people act as simply resellers, and reseller plans include many of this type of software. Investigate which kind of reselling plan are you subscribing to.
In any case, there are a bunch of free alternatives. BUT if you are not a developer I do NOT recommend those, because for what I saw, most management platforms have no plugins or any way to interact with those panels by default.
The free and opensource cpanel alternatives I found were:
- froxlor: simple, lightweight and maintained. But it lacks an API, so it brings me a simple question, how can I change the transfer quota of an account in a server if it lacks a panel API? I mean, its possible, but I’m talking about time, security and convenience.
- VESTA: it looks like a overengineered bash solution. I come from another programming background and watching a system programmed in bash makes my eyes bleed. BUT… is really looks like a very good and powerful product.
- Ajenti, seem to lack a lot of features, and their website documentation don’t really bring be much trust. It just seems to do just enough, and its documentation is very “scripty”.
- ISPConfig: simple enough, maintained, BSD licensed, and with a well documented API. Also looks fantastic.
What I really did...
I used Blesta, their prices are very accessible. And the source code is simple and well written. In comparison, WHMCS has one of the worst source codes I ever saw. I don't know if they obfuscated their source code on purpose or what.
With Blesta I was able to easily integrate it with everything. It was very easy. Most of the code is accessible and has a very flexible architecture. In 2 weeks I have coded my own administration panel for the clients including a Go daemon in each server purchased.
Do not even try if you don't have a solid group of people already interested in buying your service. Otherwise, you better be prepared to invest for a long time, until you see some returns.