This Sunday marks the 5th year of operating NodeCraft. To celebrate it, weâve written a brief summary of our perspective in building a bootstrap startup...
Starting up
When we originally founded NodeCraft we started as 3 partners with less than $600.00 of cash to kick-start the entire company. James Ross, an experienced community manager and developer, Jonathan Yarbor, a professional web-development consultant and an unnamed third partner who left the company before we finalized the legal paperwork. We collectively decided that we wanted to create a startup that was focused on providing a new-age solution to game server hosting without raising external funding. We knew the Minecraft market was in the middle of explosive growth and felt we could simply leverage that growth into self-funding the company. In this model, we knew we would spend a little more time on the initial company growth, but we would own our entire company; this means we never have to make compromises against our customers for the sake of making our investors richer.
Why we built NodeCraft
The business partnership between James and Jon grew out of the work they had done on the gaming community SammyServers. This community focused around playing Garryâs Mod and Minecraft at the time, and spent a lot of time and energy building applications and tools to help effectively maintain the servers and the community. After a few complications with hosting providers, we kept talking about how we wished there was a company that would create a quality service, that wouldnât prey on their customer-base, wouldnât oversell, and would create a product that used current-day technologies for game servers. That company didnât exist, so we resolved to be that company. As such, NodeCraft was born.
Business partners, across the pond
With the third partner no longer in the company, we found ourselves in a fairly precarious situation. We both held equal shares of the company and had only known each other for a few months. There was the entirety of the Atlantic Ocean separating us and we had never met prior to building the company. This situation was normal for us as we had spent the majority of our lives in an internet connected world and the reality is that we got lucky, having very complimentary personalities and skillsets. Initially through technologies like Skype and now Slack, weâve been able to operate as if we had a single office.
M.V.P. (minimal viable product) is king
Through sheer luck, we had a contact that was leaving the Minecraft hosting market who had an âownedâ license of the Multicraft control panel software that we used for the first two years, while we developed NodePanel v1. This license allowed us to host 10 full devices of customers without paying additional license fees for the use of Multicraft. The cost savings afforded by the now deprecated license really helped us focus on the problems required to build our own system. Whilst we no longer have any reliance on Multicraft, simply operating a company within the market helped us understand the needs of customers and helped us identify what pain points were causing extended costs via support.
We owe a debt to our community partners
We nearly owe all of our success to our partners, and the relationships we have built with them. Throughout 2014, one of our founders, Jon, started to develop a relationship with the primary, and only active ATLauncher developer, Ryan. We discovered that we shared numerous common values and ideals, including our strive to forward the community in a positive manner. After discovering that he wasn't happy with his current CDN infrastructure, as it wasn't as reliable as he needed and wasn't providing his users with the best possible experience, we saw an opportunity to give back to the very community that had given us a start at building a company. With a fleet of servers and a sum of underutilised, paid bandwidth, we realized we could build a CDN that wouldnât cost us any additional bandwidth fees, but would mean everything to millions of gamers using the ATlauncher. Over a few caffeine fueled weeks, we created a fast and secure CDN that Ryan could utilise to distribute thousands of mods, modpacks, and launcher assets, with utmost reliability.
As a result of our success with the ATLauncher, we were able to establish a strong relationship with developers of the Pixelmon team, who were in the progress of developing their own custom launcher, once again to make the experience for their end-users as optimal as possible. We offered our CDN for use here, and Pixelmon now accounts for the vast majority of our CDN traffic.
Today, this CDN is known as NodeCDN, and delivers over 3PB of content every year. We've recently introduced a lot of improvements on the CDN via the use of Cloudflare's caching technology in over 100 data-centers across the globe, and with upcoming projects such as Diluv, we hope to further NodeCDN's availability and performance, and continue providing the community with a free, easy to use CDN.
In addition to our CDN, we partner with a lot of different people in the gaming community, from content creators on various platforms, including Twitch, YouTube and Beam, as well as mod developers, communities, and more. Generally providing our partners with servers, this enables them to provide their viewers or users with an enjoyable experience via servers they can rely on. We'd like to extend a special highlight to one of partners, Kehaan, who consistently drives a lot of traffic to our website, and his community is always a pleasure to work with. Itâs sincerely an honour to work with these amazing people.
Scaling without sacrificing company culture.
After the ATLauncher gave us an opportunity to build them a better CDN, we had a massive growth of 700% revenue and thousands of users, from just a few hundred. We soon realized we had growing pains, which is the best kind of problem to have.
System overload
With the volume of sales pouring in, we had a hard time getting enough servers ordered and racked with our providers, let alone optimizing our application to handle the sudden volume of users. As if that wasnât enough stress, we also had a lot of new users that needed customer support and billing assistance. To say we were at our limits as two partners was an understatement.
Our staff mean everything to us
Up until this point, we hadn't had any need for employees, so didn't quite understand the process of getting started. In the interim, one of our friends from SammyServers offered to help out as an external contractor, but after a short period, we realized we needed in-house staff. We heavily encouraged our friend to relocate and work with us in Oklahoma, but unfortunately due to personal circumstances, he was ultimately unwilling to relocate and/or leave his own business which left us no choice but to start recruiting locally. We rented our first office and hired a budding DevOps engineer to help us start scaling the company, and many Rocket League lunches and a new office later weâve found ourselves looking for another support specialist. If youâre interested, you can drop your resume on our jobs page.
Finding the right server providers
Itâs no secret that weâve always relied on 3rd party providers to host the physical hardware and maintain the network that our game servers operate on. As a startup with limited resources we knew this would an essential part of our growth model.
We originally launched the company with web-hosting grade hardware leveraged with the success of web-application hosting from Jonâs past ventures. After reaching network limits with the DDoS attacks that hosting game servers bring, combined with the high price tag of our first provider, we started shopping for a more ideal provider.
After learning a hard lesson from a cheap provider, whom cannot be legally named, we were faced with a serious problem. We needed a quality host whom we could trust and establish a long term relationship with. After some very awkward negotiations, we discovered that many high quality companies offer serious discounts at long term contract bulk deals. While this might have been obvious to more seasoned entrepreneurs, keep in mind we had this all start happening at once; it was a serious learning curve for us. After a few painful migrations eating up dozens of man-hours (even with automation) we found ourselves very confidently partnered with Singlehop - a high quality server provider located in Chicago. After touring their Chicago datacenter, we found that they shared a lot of the core values we did in terms of creating a very realistic and performant hosting service. To this day, they are our single biggest provider whom we rely on to ensure thousands of game servers run smoothly.
Building the future of game servers
While we may have launched NodeCraft with an off-the-shelf 3rd party product, we perpetually were developing the next iteration of our service. We started with minor features additions to Multicraft and WHMCS such as a One Click mod installer and improved provisioning system, and eventually started working on a self-contained product.
Building NodePanel
The very first iteration of NodePanel was built using Multicraftâs internal API. We quickly found the API patterns to be too restrictive for us to have real success as a company. We hired a java contractor to create the daemon service that launches and maintains the servers while we focused on the backend. After a few months of back and forth we found ourselves in a very similar position. We needed to understand the entire process by building it ourselves. Some screenshots of these early prototypes can be seen below:
![NodePanel prototype 1](//s3.nodecraft.com/attachments/aezOtRaMQpmmvua8Qh97_2017-05-23_21-47-25.png =150x150) ![NodePanel prototype 2](//s3.nodecraft.com/attachments/C88knWNGRfq6Z46LeEIO_2017-05-23_21-48-12.png =150x150)
This was a very demotivating set-back as a lot of time and energy was wasted on a product that ultimately was trashed. We focused on learning a few bleeding edge technologies as to come back at the problems with a fresh output.
Bleeding edge technologies
Weâve found ourselves repeatedly following the trends of up-and-coming technologies which simply didnât exist a few years prior.
We quickly found that the asynchronous nature of Node.js, coincidentally sharing our company name, would allow us to create a real-time system that was as fast-paced as gamers wanted. Combined with RethinkDB, a document store database, we could rapidly develop both web applications and daemon services for NodePanel. We quickly prototyped our system together with the help of PubNub and within 6 months had a working beta complete with users.
Today we find ourselves using more and more technologies that have helped us define what game server hosting really should be. The result is a complex stack of truly new technologies that push what we can do as a game server host
Node.js
RethinkDB
Redis
Docker
Ansible
AngularJS
Websockets
NATS
InfluxDB
Whatâs Next
While our next big milestone is in 5 years, we have a lot of great changes coming within the next few months to our partners, customers, and staff.
NodePanel 2
Weâre getting really close to being able to launch NodePanel 2 for all customers. This means access to host at least 9 different games, use of our new instance system, and several other speed improvements weâve built into the system at no additional charge.
Affiliate Program
Once weâve launched NodePanel 2, we will be working towards an affiliates program which will allow our community partners and marketers to make money by use of a referral or âtell a friendâ system. We donât have a lot of details to provide yet as there is a bit of legal work to be finalized first.
Game Developer Program
Our last and most exciting program weâre working on is targeted at helping developers reclaim server costs by also getting a percentage of revenue of their games hosted at NodeCraft. If youâre a game developer who is interested in being apart of our pilot program, please let us know via our contact form.