I am a beginner in developing websites by Django. I run small discussion websites similar to SO.

I have an account at Bluehost which has been a nightmare in developing by Django. I have found that Webfaction and Google App Engine seems to be the best choices for Django.

However, I am not sure which one is the best for me.

Is Google App Engine better than Webfaction in running small websites?

Comments

Webfaction and Google App Engine are "the best choices for Django"? Since when? I find my VPS does an amazing job with tons more flexibility than either WebFaction or GAE give you.

Written by Oli

Yeah, but VPSes are considerably more expensive than shared hosts. For a small app using WebFaction, you can plunk down $102 plus the cost of a domain, and you're good for a year. Even a cheap VPS costs twice as much for a similar plan.

Written by LeafStorm

Accepted Answer

Webfaction:

Plus:

  1. Great shell access. Ability to install python modules, or anything else you might need. You will love checking out source code from shell to update your production (no need for FTPing anything anymore!)
  2. Very good performance and reliability
  3. Great support + wealth of info on help knowledge base and in the forums. (FORGET bluehost or anything else you ever tried). I was surprised by amount of answers I found to what I thought would be difficult questions.
  4. You can use regular database and you can do joins (see app engine minus #2)

Minus:

  1. Setting up initial deployment can be a bit tricky the first few times around (as is to be expected from shell).
  2. Growing-scaling can be expensive and you probably will not survive beign "slashdotted"

App Engine

Plus:

  1. Free to start with
  2. Initial database is easier to setup.
  3. Deployment is a breeze
  4. Enforcement of "good" design principles from the start which help you with #5. (Such as hard limits, db denormalizing etc)
  5. Scalability (but this does not come free - you need to think ahead).
  6. No maintanence: auto backups, security comes for free, logging + centralized dashboard, software updates are automatic.

Minus:

  1. Setting up Django on App Engine is not so straightforward, as well as getting used to this setup. The webapp framework from google is weak.
  2. Database model takes a little bit of time to wrap your head around. THis is not your moma's SQL server. For example you have to denormalize your DB from the start, and you cannot do Joins (unless they are self joins)
  3. The usual things you are used to are not always there. Some things such as testing and data-importing are not that easy anymore.
  4. You are tied down to App Engine and migrating your data to another DB or server, while not impossible, is not easy. (Not that you do data migration that often! Probably never)
  5. Hard limits in requests, responses and file sizes (last time I heard about 1MB).
  6. App Engine currently supports Python 2.5 only.

Can't think of anything else so far. I am currently with Webfaction and am testing App Engine as well. I have no difficulty going from Django-Webfaction to App-Engine way of thinking. However, I am not sure if the AppEngine -> Standalone servers route would be just as easy.

References

Talks:

Written by drozzy
This page was build to provide you fast access to the question and the direct accepted answer.
The content is written by members of the stackoverflow.com community.
It is licensed under cc-wiki