7 Barebones Rails Apps To Kick Start Your Development Process
Back in 2005, the first Rails application a novice Rails developer produced was typically a simple blog-like system. This was in no small part thanks to a great screencast produced by David Heinemeier Hansson demonstrating how to create such a system in 15 minutes. Sadly, these screencasts have not been updated to 2008 standards, so sometimes it can be hard to figure out where to start.
Even for experienced developers, it can make sense to have a generic / base / bare-bones application from which to work. Why deal with installing the same plugins over and over and laying down the same generic code? So, here are several barebones Rails apps that might provide a good base for your own template.
Bort (Github repository) is a very new (first released this month) barebones Rails app by Jim Neath, a British Rails developer. It includes RESTful authentication, pagination (using will_paginate), RSpec, Exception Notifier, an asset packager, a Capistrano recipe, and database-based sessions. It's fully Rails 2.1 compliant.
Bort E-mail Login Fork
A fork of Bort by Matt Hall that uses e-mail addresses for logins rather than usernames. Expect to see a lot of customized forks of Bort over time - it could well catch on as the de-facto barebones / generic Rails application.
The Caboose Sample App
The Caboose Sample App was a big deal when it was unveiled in early 2007, but doesn't appear to have been updated since then. It includes RESTful authentication, a user model with last login and timezones, full timezone support, attachment support (through attachment_fu), basic views using Yahoo! YUI CSS grids, RSpec tests, and exception notification. There's also a specially tailored version for SSL use. Given its age, this might not be a solid starting point, but the code is well worth looking at.
Karmi's Rails I18N Demo App
Karel Minarik, a Czech Rails developer, has produced the "Rails I18N Demo App." It does what it says on the box and acts as a simple, minimal Rails application to demonstrate and test the new (as of Rails 2.2 and edge) Rails internationalization and localization APIs. A good starting point if you want to see how to use I18N in Rails properly under the hood. Karel also has a to-do list application that could act as inspiration.
Social Network Apps
LovdByLess is an open source general social network Rails application. It includes the usual social networking features, such as friending, messaging, profiles, commenting, user blogs, photo gallery, search, user dashboards, as well as Flickr and YouTube integration. The presentation is very slick. LovdByLess is offered under the MIT license, so reuse is hassle-free.
Insoshi bills itself as a "social networking platform" and is another open source social networking Rails app. Like LovdByLess, it offers the usual gamut of social networking features such as profiles, activity feeds, forums, blogs, messaging, and so forth - along with an administration panel. It's made available under the GNU Affero GPL license, so any changes need to also be open source (under the AGPL) - this could make it unsuitable for commercial projects although an alternative license is forthcoming.
Community Engine Sample App
Community Engine is an open source Rails plugin that adds social network features to an existing Rails app. Developer Bruno Bornsztein, however, has also developed a sample app that acts as a generic template for a fresh Community Engine driven app. He's also produced a tutorial demonstrating how it works and was put together.
Post supported by thoughtbot training — Have you started making Rails apps? Making mistakes you know about? Mistakes you don't know about? We've been there. Learn real-world skills from a top Rails consultancy to take your use of the framework to the advanced level. Using Umbrella Today? as a case study, we'll walk through our process and our code. For truly deep comprehension, each lesson is accompanied by a hands-on workshop where you'll code while we mentor by your side. Bring the joy back to your work.