Making of a Web App: Interlude – Importance of a Blog

In Startup Marketing: Big Bang vs. Darwinian Evolution, Dharmesh Shah highlights the importance of getting feedback early in a Darwinian evolution approach compared to the “stealth mode” approach with a big-bang launch. His insights are well stated and recommended reading to show the design and development of a new product should be accompanied by, or even preceded by, a regularly updated blog that reaches your intended audience. I recommend you read it, and if starting a new product, create and regularly update a blog about the product.

Making of a Web App is Synap Software’s blog about our upcoming web-based sales team collaboration app.

Making of a Web App: Part 11 – Technical Interlude

For people with an interest in the technical side of the project, here are notes on the configuration of our development, test, and production environments.

For those who couldn’t care less if PlaybookIQ is powered by mongrels or mice – don’t run away yet. Later this week, I will have the beginnings of actual product on the “production” server where anyone interested can follow along in real-time as updates are made throughout each development day. I would love ongoing feedback from the “live” site. Stay tuned because some real stuff is starting to happen.

Environments and Tools

My environments look like this:

Development and Testing Platform

  • MacBook Pro running OS X
  • TextMate editor
  • Ruby v1.8.6 programming language
  • Ruby on Rails v1.2.2 open source web framework
  • mySQL open source database
  • web-brick web server
  • Subversion version control system
  • net-ssh for password-less connectivity to remote server
  • Dreamweaver and Fireworks for working with html and graphics
  • CSSEdit for working with .css
  • Capistrano to automate deployment
  • a few other little goodies

Remote Host

  • VPS slices at Slicehost.com
  • Ubuntu Unix
  • Rails v1.2.2
  • mySQL database
  • Apache2 web server
  • mongrel cluster as an http load balancer
  • svn server for source code control
  • trac for project management and source code management

The local environment setup was actually done some time ago. The great news for Mac fans is that when OS X Leopard is released in October you will be able to write and deploy Rails apps “out of the box” with Rails, Mongrel and Capistrano pre-bundled into OS X 10.5. Awesome.

Deprec

Once the local install of Ruby and Rails was complete, the rest was easily configured and deployed using deprec, deployment recipes for Capistrano. I first read through the info from the deprec site, then followed a combination of instructions from here, here, and here and now can easily deploy updates using these few commands and without manually logging into the server.


svn commit -m 'new update'
cap disable_web
cap deploy_with_migrations
cap enable_web

Anyone running Rails on Slicehost, drop me a line and I can send you the step-by-step details of what worked for me to get the complete stack setup with deprec.

SSL

All PlaybookIQ users will have SSL, so I wanted to get that built out from the start so that all code would handle it properly. While the setup of all other components was straightforward thanks to deprec, configuring Apache, mongrel, and the Rails app to use SSL took way too much time. The key to anyone looking to use SSL with Apache is to understand VirtualHosts. More details on the exact steps I took to deploy SSL on Rails and Apache will be in a future post.