I know you were asking about design, but the first thing I usually do with a new project (usually commit #2) is to make sure the deployment process works.

Then I usually setup a CI service that runs the specs on each commit, and deploys to a staging/demo server automatically if they pass.

The reason I do this first is that deployment becomes more difficult the further into the project you get. It's easier to work through deployment issues incrementally rather than just before launch, or when you want to demo the app to someone outside.

This is something I was considering. I've never personally dealt with the full deployment process by myself with Rails, so I was going to look at this when I get to coding. I wasn't planning on CI, but it's something else that I'd like to do.

If you use Rails, any recommendations for CI? Thanks for the comment.

You could run something like Autotest for continuous testing & quality control: http://ph7spot.com/musings/getting-started-with-autotest

You can run Capistrano for continuous deployment: https://github.com/capistrano/capistrano.

If you wanted to go the extra mile you could also setup different staging environments on your server: http://cjohansen.no/en/rails/multi_staging_environment_for_r...