Posted by Dan
4 December 2012
We're really excited to present Rails Assistant, our first App to be released under Nocturnal Code. As software developers we understand the need to have great tools, and we really think we've created something new and useful.
We've designed Rails Assistant to compliment your current development tools and methods. We don't want to force you to develop a specific way.
This tool was created to speed up our Rails development cycle and more we used Rails, the more we saw this need for tool support. We looked at a number of Ruby and Rails IDEs, but there was nothing around that was both simple to use yet powerful enough to be useful.
We considered building our own IDE (yes really), but we reined in that idea, and came to the middle ground of a helper tool. I researched to see if anyone else was doing something similar. There was Locomotive but that seemed long dead, and it really only did one thing, run the Rails server.
Pow does a much better job of running your Rails app than Locomotive, it has a handy .dev namespace and runs any Rack compatible framework, it also love the idea of zero configuration.
As we were developing Rails Assistant, Tokaido (a.k.a. Rails.app) appeared and while we think it's great, the focus of the project is setting up and making Rails easy to install, which is nice, but we wanted more.
Not just Rails
Rails Assistant doesn't just run Rails 3+, it can run arbitrary command line tools. The idea of zero configuration set up is tantalizing but we didn't want to just support Rails, we also looked at Rack, Sinatra, Cramp, Ramaze, Node.js, various databases, and more. There was no reason we couldn't run the start server command for all of these frameworks, and so we did.
We didn't want there to be any confusion as to what Rails Assistant was doing for you and because we're really just running commands on your behalf, we want you to know what's happening and when. You can view and edit any of the commands and automations that we automatically setup.
We may be used to running Rails from our terminal and restarting it whenever we change our configs, or using Guard to monitor this for us. As a Rails project grows we end up with other processes we want to run; test cases, code health checks and background workers. Not to mention even larger projects which can have multiple Rails projects and processes. It all becomes a bit of a nightmare to run the development environment.
We handle running multiple projects for you, each project can be enabled and disabled and we can restart them all at once. Each project can be run with it's own version of Ruby and gems using RVM (we're working on rbenv and chruby). Ideally we are using your current terminal environment including your aliases, PATH and variables.
A good user interface is required all software, especially for a developer tool. We spent a long time designing and iterating Rails Assistant, and think we've got it. The key user interface elements are a project management window and a secondary project overview window. Both windows contain shortcut buttons to open your project in whichever text editor, browser or terminal you like. We also have a truly useful consolidated log, we also went ahead and grouped things like HTTP requests and Bundling.
We actually built RailsAssistant.com using Rails Assistant, and it was great to see it automatically running 'bundle install' every time I modified the Gemfile, or restarting the Rails server when I changed anything in 'config/'. Not having to restart or run periodic tasks saved me a lot of time.
These automations or workflows will automate tasks for you, currently they can run commands, watch files, log output, and restart other workflows. We expect to add more as we see a need.
We're currently in open beta for December, and will move into a paid version in 2013, with a discount for early adopters. We understand that Rails Assistant might not work for everyone straight away, and so we're hoping for the community to try it and let us know what does or doesn't work. We've already set up a feature request form and a more general user support form.
Mac App Store
We've built Rails Assistant with the Mac App Store in mind, we feel it's the place were we can get the most exposure in the short term. It has however, forced us into a situation where we have two versions; a free to roam non-sandboxed version, and a slightly limited sandboxed version. Go ahead and try them both out and let us know what you think. Read out FAQ for more info.
We've only just begun
We love developing Rails apps so we're going to continue to develop Rails Assistant for a while, Rails 4 is coming shortly and we hope to support that and more. We would love to hear you thoughts and comments. Better yet download and try the Rails Assistant Beta. We think you'll like it.