Growing Pains of Going Pro

Since the initial release of the Hopville 2.0 beta will have a stripped-down feature set – and I mean, a really stripped down feature set – I thought it might be good to share some of the details of what 2.0 represents under the covers.

Hopville grew to 100,000 recipes as one of several side projects, without having serious focus given to it.  With Hopville 2.0 I’m beginning to give it real focus, getting it ready to grow to its next milestone of 1,000,000 recipes. First step was to overhaul its infrastructure.  Here’s what happened this week:

  • New web host: Since its inception, Hopville has run on an affordable hosting account through Site5.  While they’ve served Hopville well, the nature of that hosting service (cheap hosting on shared servers without system-level access) is too limited for a site operating at professional capacity. The tallest hurdle jumped this week was the migration from their service to cloud servers hosted by Rackspace, with whom I’ve had great experience in a few startups where I’ve worked.
  • New web framework version: Hopville was most recently running Rails 2.3, but the version released this week represents an upgrade to Rails 3.2.
  • New codebase: Due to some delicious tech tweaks introduced into Rails as of its 3.1 version, plus a completely new approach to how Beer Calculus works, I took the opportunity to overhaul the codebase, rewriting nearly everything from scratch.  (Might’ve bit off more than I can chew, frankly, as this project ran far longer than my original estimates.)
  • New database: The site still runs on the open source MySQL database, but for 2.0 it has been restructured and expanded.  Where it took about 20 tables to run the old Hopville, it’s taking about 30 (so far) to run the new service.  One side effect is that folks may have to reset their passwords as the new server and framework use stronger encryption for passwords.  I’ve also isolated the database onto its own server which will help the site to scale and eventually facilitate things like a public API.  You’ll start seeing the reasoning behind the restructuring (in the form of new features) soon…
  • New image service: One of the embarrassing historical aspects of the old site was how images were handled.  I thought to myself when Hopville launched, “since nobody is using this site, I don’t have to optimize its images in any way – it doesn’t matter how huge and slow the pages are with zero traffic” Then I proceeded to never upgrade the service after the site grew to have traffic.  I let the browser resize images into thumbnails, etc – if you’re a web developer you know that this is an absolute no-no.  Hopville 2 will have a lot more image functionality (eventually).  Accordingly, with this launch images are finally processed and handled correctly, as well as being stored on Amazon’s cloud, which should speed up some pages quite a bit.

July will be a bit bumpy since Hopville has no QA department and does testing in the wild.  I’ve also lucked into an unfortunately-timed but also all-expenses-paid vacation to Alaska, so as of Friday I’ll be mostly offline for a whole week.  Sorry folks!  Y’all will notice a distinct lack of features during the initial beta testing, as I removed lots of features to focus on the systems migration.  But you’ll just have to trust me that I can see far into the future that was enabled by the Great Migration of Hopville 2.0.  And what I can see out there on the horizon is damn exciting.  The summer of 2012 is the awkward puberty that Hopville has to transition through on its way to becoming an adult.  Stay tuned…

Final recipe count for Hopville 1.0: 118,222

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: