Update: the content in this post that is related to Jumpstarter is no longer relevant since they’ve changed their offer since the article was written. You can still try it on other services, like eg. Heroku.

There is a new Swedish hosting provider called jumpstarter.io and they recently launched a feature that makes it really easy to deploy your PHP websites using git. They currently offer a free plan that allows up to 5000 requests per month. Right now, jumpstarter is heavily tuned to PHP, but if you are used to (aka. spoiled) working with Ruby/Rails like me, you really can’t live without DSLs like HAML, SCSS, Coffeescript. Luckily there is a solution for static websites called Middleman which is sort of a “mini Rails” but with only the view-layer (although it provides some powerful extensions for eg. blogging)

In this post I’ll show you how to deploy a static site using middleman and jumpstarter.io with git (through a plugin called middleman-deploy). I’ve created a middleman template that we’re going to use as starting point, but first head over to jumpstarter.io and create an account and a project (use any template). Once inside:

  1. Upload your ssh-key in the settings (cat ~/.ssh/id_rsa.pub | pbcopy)
  2. Head over to the ‘git’-tab of your project and take note of the remote git URL

Next, pop up your terminal:

Open up config.rb and add the following lines

Now we are ready to deploy! Jumpstarter will use master as the default branch so we will do all the work on a another branch called source:

There! now you have a shiny new site up and running  at jumpstarter.

PHP

Middleman only allows you to build static sites. However it can co-exist with php files since it will gladly copy any file in the ./source-directory, which allows you to put your php-files for handling contact-forms etc. in there. It is a bit awkward to test this but if you point your ordinary XAMPP stack to the ./build folder in the middleman repository and run middleman build regularly, you’ll have an ok development cycle I’d say.

Extra

Since middleman allows you to generate assets with an asset-hash I’m going to configure the server to set maximum expire time on those assets. Jumpstarter makes this very easy since it allows you direct access to the nginx configuration file:

Alternative hosting

Jumpstarter.io makes it super easy to get started with and the paid plans are really affordable if your site gains traffic. Other places to deploy your site would be Github (static only) , Heroku or Pagodabox. The nice thing about jumpstarter compared to Heroku and Pagodabox is that your site won’t fall asleep after an hour of inactivity (for the free plans that is).