Search overlay panel for performing site-wide searches

Boost Performance & Scale with Postgres Advanced. Join Pilot Now!

Product Features

Our goal for the Heroku platform has been to create a totally smooth and seamless experience for getting your Ruby web application online. Web apps revolve around one or more dynamic web processes: what Rubyists often call a mongrel, and what we call a dyno. When it comes to dynos, we think we’ve really nailed it, and nothing makes that more tangible than the ease of scaling your app with the dyno slider.

But most serious web apps have a second aspect: one that gets less attention, but one that is often just as important as the web …

Since we returned from a fun and successful Railsconf in Vegas, we have been in full swing completing the rollout of our paid services. The response has been enormous so far, and paid services are now available to all users.

If you’ve checked out the pricing page, you’ve undoubtedly noticed our line-up of a la carte add-ons. We’re really excited about add-ons becoming a key part of our platform, allowing us to seamlessly deliver popular application services and components with the built-in scalability and ease of use you’ve come to expect from Heroku.

We’ve had a solid first …

Say you’re working on a [Rails app](https://wp-www-staging.heroku.com/ruby), and you want to publish your code on Github. Most apps have some deploy-specific private config values – for example, if you’re using the S3 storage back-end for Paperclip, and your S3 keys are saved in config/amazon_keys.yml. You certainly don’t want to push those up to Github – what to do?

You could maintain a separate deploy branch, and commit your deploy config only to that. You can then work on the main branch, and rebase the deploy branch whenever you go for a deploy. That’s a bit of extra work you …

The past eighteen months have seen an explosion of Rails-inspired Ruby web frameworks. Merb and Sinatra are the best known; plus many others such as Ramaze, Camping, and Waves.

That’s why we’re so pleased to announce the ability to deploy any Rack-compatible web app to Heroku.

Assuming you have a Heroku account, here’s how you can deploy a Sinatra app in about 30 seconds. Make a new directory, and inside create hello.rb:

require ‘rubygems’
require ‘sinatra’

get ‘/’ do
“Hello from Sinatra on Heroku!”
end

Then create a config.ru file in the same directory:

require ‘./hello’
run …

Last week I talked a bit about why instant deployment matters. A few people have since commented that it’s not instant deployment that matters to them, but rather deployment that just works every time.

Of course, what we’re really talking about is both. Part of achieving deployment that just works is decreasing complexity and removing steps – each a point of possible failure. We are working toward deployment that’s both instant and completely reliable, because we think those things are tightly linked.

We’ve rolled out some new content today explaining more about how our platform works, including some …

Ruby journalist extraordinaire, Peter Cooper, is a busy man. Chances are you’re already following his work to bring you the latest Ruby news on sites such as Ruby Inside and RubyFlow. Late last year he even added a tremendously useful site oriented towards iPhone and iPod Touch development called Mobile Orchard. Somewhere along the line he was also generous enough to leak the source code for Rubyflow, and now a version of that is available through Sutto’s Github repository.That’s great news for anyone looking to start their own news site, especially since it’s a breeze to get working …

The Heroku API gets a major update today; you can now view and manage all of your application’s settings straight from the command line. New in this version:

Manage sharing (add/remove/list collaborators)
Manage multiple ssh keys for your user (add/remove/list keys)
Update settings (public true/false, mode production/development)
Rename an app
Run rake tasks remotely

A taste of the new command-line goodness:

adam@kvasir:~$ heroku create gagetron
Created https://gagetron.heroku.com/ | git@heroku.com:gagetron.git

adam@kvasir:~$ heroku info gagetron
=== gagetron
Web URL: https://gagetron.heroku.com/
Git Repo: git@heroku.com:gagetron.git
Mode: development
Public: false
Collaborators: adam@example.com (edit)

adam@kvasir:~$ heroku sharing gagetron –add joe@example.com
joe@example.com added as a view-only collaborator …

Heroku now has an API (accessible from the command line, a Ruby library, or REST calls), revision control on all apps with Git, and remote access to the Git repository.

The combination of these new features means that you can now work on your apps using the local tools you love – like TextMate, vi, or emacs – and still get the benefit of zero-configuration deployment to Heroku.

How does it work? Grab the Heroku gem with “gem install heroku”. A sample work session looks like this:

heroku clone myapp
cd myapp
ruby script/server
…edit locally…
git add .
git …

Backstory: A Fiery Debate

Writing a user model and the standard login authentication code seems like busywork to a lot of coders. In fact, many people expected a next-generation app framework such as Rails to handle this for you. After all, Django does. Initially the login engine for Rails seemed to fill this slot, but following a fair amount of controversy over best practices, the login engine was killed by its creator.

With our BDfL having forever cursed prebuilt login systems, the Rails community mostly stopped trying to make them. Yet, this puts us back at square one: …

RSpec 1.1 is now a part of the default plugin kit for Heroku apps.

We’ve been fans of RSpec for a while now, and feel that it represents the future of TDD/BDD for the Rails world. If you’re not familiar with RSpec, read up and then give it a try.

You don’t need to install anything to use RSpec in your Heroku app, but you do need to initialize the spec/ and stories/ directories by running the rspec generator. Just open the Generate dialog, type in rspec, and click Run.

Once you’ve written some specs, you can run them the …

Subscribe to the full-text RSS feed for Product Features.