Heroku recently announced a public beta. Heroku is a Rails hosting service with a twist: They offer a fully integrated development and hosting environment. You develop your application using a web based IDE, and it gets automatically deployed to Amazon EC2.

The IDE works surprisingly well. You get a typical file browser that allows you to create new files / folders or open, rename, move, or delete existing files /folders. The actual editor performs syntax highlighting and automatic indentation, but does not seem to offer any other convenience features (like auto completion or snippets). Whenever you save a file, any updates are automatically deployed and appear on your website. You can choose whether your website is private (only accessible to yourself and other users you have authorized) or public (accessible to anyone), although there does not currently seem to be a way to disable the Heroku toolbar that shows up at the bottom of the page.

In addition to editing your application using the Heroku website, you can both import and export your application as a tarball. You can also take snapshots at any time, and revert to these later, which should come in handy before implementing experimental changes but does not replace actual version control. The Heroku team has announced plans to implement some sort of version control integration in the future, possibly using Subversion. This would be a major boon, as it would free developers to use whatever tools they like, without having to use the cumbersome import / export process (not to mention the inherent benefits of using version control).

The deployment of your application is handled in a completely transparent fashion. Behind the scenes, Heroku leverages Amazon EC2 (Elastic Compute Cloud), which is supposed to allow your application to automatically scale as needed.

Right now, beta accounts are free. Heroku is still finalizing the pricing structure, but they have stated that they’re hoping to implement a model similar to an electrical company, where you are charged based on the resources you have consumed. In this case, resources would be your computing cycles, bandwidth, database storage, etc. They have also stated that they are planning to keep small and low-bandwidth applications free forever. If the seamless scalability that Heroku promises actually proves to work out, this would be an ideal way to start a new application, without having to commit any money to hosting plans upfront.

At this time Heroku is invitation-only, so you can either sign up on their website (although I have found that it may take a week or so to get an invite) or ask an existing member for an invitation. The Heroku mailing list works great for this purpose, or feel free to leave a comment on my blog if you’d like an invite.

Note that beta accounts are currently restricted from initiating any outgoing connections, which makes it impossible to build many types of applications (such as fully integrated Facebook apps). You can however request for your application to be blessed, which will allow you to enter the pilot program for paid apps that support outgoing connections, custom domain names, and higher bandwidth. Heroku requests that the application be in use and under active development when requesting the blessing, although I am not sure this makes sense (certain types of apps might not be able to run at all in a meaningful fashion until they are allowed to open outgoing connections). But I am sure that the Heroku developers will use their best judgement when making this call.

If you’re a Rails developer, you should definitely check it out! I wonder if they are going to support other frameworks (such as Merb) in the future…