In order to make your website live, there are a few players that need to be involved. You need to have a "Domain Name" ( mysite.com, mysite.net, ...), and a Web Server ( the computer that will be responsible for sending your webpage to visitors coming to your web server ). There are some other things that you can do to improve how content is optimized to be delivered to different geographic locations, and some tools that help split loads if your web server can't handle the volume you're getting, but those are separate, and really for most apps not necessary.

Your domain name will be registered through a "Registrar" service. These companies maintain records of what web server is connected with what website. They typically provide tools to edit these records and say your website is hosted on ( whatever computer). You can also have several web servers and host each on a separate "sub-domain". If you purchased "mysite.com", you also have access to "mysubdomain.mysite.com" and any other thing before the dot ( called a subdomain ). These are configurable through your registrar. This system works because each computer on a network has an "IP address". Registrars are certified by an international certification body (ICANN) to maintain records of which ip addresses are associated with which web hosts. We like hover.com because they don't try to sell you anything else and are pretty straight forward, even if their prices are slightly higher ( we are only talking $2 per year per domain ).

There are a ton of web hosts out there. Its sometimes hard to figure out which to pick. For us, and many others, one of the most important things a web host can offer is a responsive support staff. Next, we need the host to guarantee some level of up-time. Finally, we need the host to provide some kind of backup solution. We have built our own backup solutions, but its so much less stress if your hosting company can handle this for you. Finally, when considering all of this, you want a host that matches your needs.

Unless you're building an app that already has a ton of users already, or you're expecting to jump to having extremely high traffic, your best option starting out is a "Shared Host" or a "Managed Host". If you don't have much of a budget or a programming / design staff, your best option to get your business off the ground will be to go with a "Hosted App"

How to choose which host is right?

If you or your organization is beginning a new project, there are a few decisions you'll have to make ... and sometime it can be hard to sort through all of the options you will be presented with. The first step is to decide on a domain name that is right for your business. This can be an involved process. If you already have a domain name, you'll need a web server or host.

There are four main types of web hosts:

  1. Shared Hosts - These are farms of servers where your website / account is one of many accounts shared on one machine. You will only have very limited access to the machine - just your user's home directory, and typically a separate mysql server you can connect to from your web application. These hosts are appropriate for the small business that aims to scale and ultimately to bring some tech staff onboard ( or a partner like us ) to manage their online presence. Examples of shared hosts we have worked with include bluehost.com, http://hostmonster.com, hostgator.com, webfaction, to name a few. They each have their advantages and disadvantages, and change over time. Most recently we have enjoyed working with webfaction, since they have pretty good support for the python/django stack. We have had reasonably good success with all of the shared hosts we mentioned.

  2. Hosted App - (squarespace.com, weebly.com, wix.com, ...) These provide you or your company with access to a hosted web application. This approach takes quite a lot out of your hands which is both a good thing and a bad thing. If you're under time pressure, and you don't have a huge budget, these solutions can fit the bill pretty well. Many of the themes look pretty good without much modification, and they function very well for what they are designed for. However, all of your content is then on someone else's server running on someone else's application. These solutions are generally worse for blogging, or for doing really much beyond what you started out to do. They are fairly inflexible compared with anything you run on your own host. You will also pay on average more per month than with a shared host. They do (many of them) manage everything from hosting to domain name registration and keep more of the app on the same platform - and in some cases they can be more cost effective, if you have very limited needs. But again they control the platform, and have some restrictions - including making moving your site to a new host impossible without some major reworking. Its good if you don't plan to scale much, or if you are under extreme time pressure and want to get something quick published so you can get funding to build something real. We host web applications for some clients, and this gives us the ability to hand taylor the web applications to meet the needs of the client - this can be more expensive than either option, but having a website and maintaining your online presence requires some level of ongoing work that many clients choose to opt out of being involved with. We also help some clients maintain their hosted app on their own shared hosting account.

  3. Virtual Private Servers - On a Virtual Private Server, you are still technically usually sharing one web host / server with typically hundreds or more other users ... but you have access to every aspect of your virtual machine. It is as if you have your own server, but since its a virtual machine its both a little bit cheaper, and a little bit slower. There are often restrictions on bandwidth, memory, disk space usage, and sometimes CPU usage. So if you get a bunch of traffic to your website and you go past those limits, they charge a premium. It can get expensive relative to having your own server ... but then having your own server means having some onboard IT staff to help maintain the machine. This can sometimes be cost effective, but it only makes sense at a much larger scale.

  4. Private Servers - You can get a server and put it in a co-location (colo) facility, where you rent space, power, and a super fast, reliable network connection. You're responsible for everything else. This is the most cost effective way of delivering apps that require a lot of CPU and memory usage / have a lot of traffic. Its also quite a lot of work, and requires some deep knowledge of sysadmin techniques to keep the machine reliable. It introduces a whole new class of risks that were all taken by your host previously. For example - magnetic hard drives on servers tend to go bad about every 5 years. You have to make sure to be on top of that or your data could be lost. You can configure a RAID ( Rapid Array of Inexpensive Disks ) which basically takes your data and makes it redundant across a bunch of hard drives and balances speed and reliability.