So I've started on my new little project Proxie. In order for it to be scalable, I've started using Capistrano for the development and deployment processes. Furthermore, I'm also using Phing and DBDeploy to handle the database migrates. But that's not where the fun stops, I'm also making use of some great Ruby Gems, locally rather than on the server, to compress static assets, such as CSS, JS and images. A simple break down It's quite simple, Capistrano allows me keep the server running super fast for PHP but also allows me to run commands locally on my machine before I deploy to my Git repo and Capistrano does what it's great at. The reason for this is that I don't want my server to get clogged down with Ruby and other languages that may affect the running of the service. At the moment, it's fully optimised, running XCache and all that too. I know a lot of people prefer to run all the cap tasks on the server, and that's fair enough because normally they're all in a team. But I'm working all alone here and would rather to do it locally. How it's done I did a lot of research into the Capistrano deploy file and found 'exec' command. This will run a command on your system, and this is what I do: task :compress do exec "lessc public/assets/css/styles.less && " + "java -jar tools/jar/yuicompressor.jar -v public/assets/css/styles.css -o public/assets/css/styles.css && " + "rm -f public/assets/js/packaged.js && " + "cat public/assets/js/*.js > public/assets/js/packaged.tmp && " + "mv public/assets/js/packaged.tmp public/assets/js/packaged.js && " + "java -jar tools/jar/yuicompressor.jar -v public/assets/js/packaged.js -o public/assets/js/packaged.js && " + "optipng -o7 public/assets/image/*.png && " + "optipng -o7 public/assets/image/splash/*.png" end I'm using the lesscss gem to sort out the CSS (and damn does it save me time). I'm then concat-ing my JS and CSS, separately, and then sticking them through the YUI compressor. This makes them nice and small. Oh and then I'm also using OptiPNG to sort out the images too. This may seem like overkill, but it works perfectly for me. And then the rest So that's just the little compress task that I do to handle all the static assets, but then when it comes to the other stuff, such as deploying to the dev or production server, running Phing and DBDeploy, Capistrano handles them well too. Here's a good tutorial you need to read on how to get you started: http://www.davedevelopment.co.uk/2008/04/14/how-to-simple-database-migrations-with-phing-and-dbdeploy/ That's where I started, and since then I've modified my task to make sure the server does what it's meant to do: serve files.