The biggest difference is that we're designed for service-driven applications. We make it super easy to architect your application as a collection of loosely coupled services - which makes it more maintainable and future-proof.
I find their availability to be incredibly irregular, but the ease of setting up a project on their platform can't be beat.
Well short of a one-click installation, of course. :)
A novice could probably set up a GitHub project on dotCloud, whereas there is no chance in hell said person could do it on Heroku, last I checked their guide.
Their support team is also pretty great. Of course, the ideal scenario is never having to deal with support. ;)
Really?! I've used heroku and dotcloud for a while, I'd say that heroku wins on ease of setup. Dotcloud on the other hand allows you far greater flexibility in your setup. I'm aware that heroku's usability has decreased a smidge since they moved to the cedar stack but I'm curious to know what you would find difficult about getting set up on heroku?
I just haven't found Heroku to compare favourably to dotCloud's deployment:
1. Sign up, install CLI, enter username/password
2. git clone foo
3. cd foo
4. dotcloud create bar
5. dotcloud push -A bar --git
And from a developer perspective we're just talking about setting up the DB, wsgi, postinstall, and dotcloud.yml.
I didn't manage to find something in Heroku's guide that made it sound as easy for setting up Django on their PaaS. If I did, I'd probably have some services set up on Heroku at the moment. Maybe someone else just needs to write a better guide for them.
Hmm, I started using heroku a long time ago so I'm not sure what their on ramp is like now. Their docs have definitely become more complicated than they used to be though. Looking at your dotcloud steps though, heroku would be.
1. Sign up, install CLI, enter username/password
2. git clone foo
3. cd foo
4. heroku create bar
5. git push heroku master
So basically the same. Worth noting that this sets up a database for you as well, your project is configured to use it when you push. From memory you have to set up the DB yourself with dotcloud, it's been a while though.