As you might have read in my Migrating to WordPress article, I am now the proud owner of both a Bluehost and Dreamhost account. These two shared hosting providers have similar strong offerings for a similar low price, but they’re nevertheless different. Let’s compare both:

The raw numbers

BLUEHOST.COM
Bluehost
DREAMHOST.COM
Dreamhost
PRICE
$6.95/mon (2 years prepaid) $7.95/mon (2 years prepaid)
FEATURES
  • 10 GB storage
  • 250GB/mon bandwidth
  • 20 GB storage
  • 1000GB/mon bandwidth
  • 6 domains, 20 subdomains
  • 50 MySQL, 50 Postgres DB
  • 2500 email addresses
  • PHP, Perl, Python, Ruby on Rails
  • unlimited domains
  • unlimited MySQL DBs
  • unlimited email addresses
  • PHP, Ruby on Rails
ONE-CLICK Install
CPanel/Fantastico: WordPress, pMachine, Nucleus, Drupal, Joomla, PhpNuke, Typo3, phpBB2, OS Commerce, Coppermine, Gallery, PHPList, Advanced Poll, PHProject, SohoLaunch, PhpWiki, PhpAdsNew, WebCalendar, Moodle, … Home-made: WordPress, phpBB, Advanced Poll, osCommerce, MediaWiki, Joomla, Gallery, WebCalendar


BLUEHOST GUI
Bluehost has a nice management interface: Cpanel Pro.
Bluehost: cpanel

Their list of one-click application installs is impressive:
Bluehost: Fantastico

DREAMHOST GUI
The management interface of Dreamhost is an own-developed web application:
Dreamhost: control

The list of one-click installs is more limited but has most best-of-breed applications:
Dreamhost: goodies

DNS MANAGEMENT
A big difference between the two is the way they handle DNS management.

  • Bluehost will expect their DNS servers to be responsible for any domain hosted. Their management web interface will not accept to host a domain that is not controlled by their DNS servers. Believe me, I’ve tried.
  • Bluehost does not allow you to just define subdomains in DNS and point them to some external IP address. All your subdomains must be hosted on the same Bluehost server
  • Bluehost does not allow you to choose the subfolder for a subdomain: blog.example.com is hosted on /blog. Unfortunately any other domain example.2.com that you have will not be able to get a subdomain blog.example2.com on another subfolder.

CONCLUSION
If your demands are not too high (not something like 10 domains with 150 subdomains), you like a complete and easy web interface and the luxury of being able to install 30+ applications with one click (it’s three actually, but who’s complaining), then take Bluehost, they’re the cheapest.
If you need flexible DNS management, are not afraid of installing programs yourself (FTP and such), need a lot of email, database or bandwidth: Dreamhost is the way to go!