How I Setup My Hosting Infrastructure and Community To Be Powerful But Cheap

Starting a website can be expensive, but using my approach you could run a full dev shop and site for cheap.


How I Setup My Hosting Infrastructure & Community To Be Powerful But Cheap

I have been making websites for longer than I can remember. Ever since I was in 3rd or 4th grade, I have been using some big name companies for hosting. Some companies I have used over the years are Lunar Pages, Hostgator, Godaddy, host-247 and my own company at one point, Paperless Creations. When I started Unrestricted Coding, I knew there would be no form of monetization for a long long time. I mean, the whole concept of the site is to make it free to learn how to be a programmer. This presented a problem. No monetization meant no funding for hosting. This means I have to find a way to host things relatively cheaply or for free.

The Main Website Hosting

My first revelation was Github Pages. Since the beginning of my website development career, 90% of all the sites I have made have been just static information or maybe a blog. Github allows me to use their servers to host that exact type of website for free. Github Pages (GP) is freaking fantabulistic. Yes, I just made that word up. No longer do I have to juggle managing FTP windows, pay money for each site to be hosted AND deal with complex DNS routing (Just drop a CNAME file and you are done). So static website hosting is covered. Boom. Next, I have to deal with development hosting, production servers, DNS serving, etc. I opted to add a layer of privacy to the hosted files and forked up the cash for a github premium account at $7 a month. Pretty darn cheap if you ask me.

The DNS

To cover the DNS side of the project, I revisited to my trusty friend CloudFlare. They allow users to setup a free account, add a website, and get started in minutes. I really like CloudFlare due to how quickly it can propagate DNS changes. Not only does it implement my DNS changes incredibly quickly, it provides a small amount of DDOS protection as well. So, now, I have the robustness of Github and the DDOS protection layer from CloudFlare. Not too shabby.

Possibly a CDN?

There is also the concept of caching my static files and running them from a CDN. Although I don’t have bandwidth concerns with Github hosting, I do want my site to be as fast as possible. Usually this would involve me setting up a MaxCDN or Cloudfront account which means monthly costs. Luckily, however, this comes baked in with CloudFlare, so I turned that on immediately. That little setting saves me a minimum of $10 a month (and it would be a lot more if I had used Cloudfront).

Development Server Hosting

Now this is a coding site, and I need a staging area for coding and all my projects for the site. At this time, I have between 10 and 15 projects I am working on in relation to this site. I also needed a stable and powerful environment to do all my testing. This environment needed to be the same each time I spun it up… and work without me doing a lot of configuration. For this, I began the search into what is know as a “Cloud IDE”. I looked at several including Koding, CodeAnywhere, Cloud9 and more. The one I ended up settling on was Cloud9, and I haven’t looked back since. With c9 I am able to spin up a workspace and work on a project without spending a dime. Their free plan allows for unlimited public workspaces, and one private workspace. Can you guess what is private? You guessed it, the main site. Everything else I am doing (the book, editor, etc) are open source projects, so I don’t care if they are public or private. I get 1 GB of disk space, 512 MB of RAM, and 1 CPU core. That is way more than enough for doing what I do in dev.

Production Server Hosting

Currently I only have one product that is sitting on a production quality server. This product is the Realtime Chatroom example built on top of the RethinkDB Realtime Web-Database. I needed to have a live example 24x7, running nodejs and a custom DB (RethinkDB) installed. For this I went to the gigantic corporate Alphabet (aka Google Cloud). Now, I did some soul-searching when picking a production platform. I wanted something easy to use, quick and cheap. Amazon Web Services Platform was easy to use, quick, and expensive. So using AWS my cost would have been greater than $10 per month per server instance. With Google Cloud my cost is approximately $4 per month per server instance. Which is a lot less…

Domains

I’ve really only used two companies for domains before, and those are Hostgator and Enom. Enom was a reseller I used for my personal company, and Hostgator was my first host that I actually paid for a domain with. For Unrestricted Coding I went a different route. This time I am using Google Domains for the site. There are a few reasons why. First, it is only $12 flat a year which is cheaper than most companies out there. Secondly, I get free WHOIS privacy which usually costs more than $5 per year and more like $9 per year. And finally, the big kicker is I get a free Google Apps account for each domain, which means free Gmail for my root level domain.

Community

To run the community aspect of Unrestricted Coding, I used to have a server at Digital Ocean running a Discourse forum that cost me $10 a month. However, I axed that forum and just went with a Slack Team (which you can join at this link) - Join Slack. Slack is easy, free, and has a very nifty API to play with. I’m currently looking at moving from Slack to Discord due to Discord having voice chat capabilities… However, the web-socket approach of Discord doesn’t play well with certain firewalls that I am behind from time to time.

Summary

For those keeping count you may have summed up my total cost for running Unrestricted Coding. It is a grand sum of $12 per month. Under that I am currently running the following.

  • 5x Websites with Github pages
  • 1x Website with Google Cloud
  • 21x Development Workspaces with Cloud9
  • 1x Domain with Google Domains

Also my full infrastructure stack is:

  • Github Pages
  • Cloud9
  • CloudFlare
  • Google Domains
  • Heroku (Slack invite, runs 6 hours a day)
  • Google Cloud
  • Slack

About The Author:

Shannon Duncan

Shannon Duncan is the Founder and Author at Unrestricted Coding. He mentors and teaches people of all ages how to code and enjoy the art of programming. Find him on twitter, linked-in, and github.