Introducing Caboodle

I've been working for a while on a replacement for my personal Wordpress blog.

Why? Mainly because it kept getting hacked and I'd end up unwittingly promoting various brands of viagra in the footer of every page.

But also because I got tired of all of the features, the quite frankly nasty php hacks involved with all of the plugins I was using, copying and pasting files into an FTP client to make a change to the site, manually changing all the permissions to stop the site getting hacked, only to find out that _another_ upgrade had happened and starting the process all over again. It's all a bit much for a mini little site.

For many people, Wordpress is great, but I'm picky and I wanted a change. 

So I started from scratch by asking some questions: how do I want to appear online? What should a personal website be? Who is it for? What's the minimum I could offer visitors to the site to answer their questions or do what they want to do?

When it came down to it I had the following criteria for my new personal website:

  1. It should be a mashup of the various things I do elsewhere online.
  2. It should look beautiful, and all of the content from other places should have a consistent look.
  3. It should be totally unhackable.
  4. It should not require upgrades and updates.
  5. I should be Ruby.
  6. I should be able to use Git to manage it.
  7. No FTP.
  8. It should have no media on it to get lost.
  9. It should have no database to get corrupted.
  10. It should be search engine optimised.
  11. It should have lovely microformats on it.
  12. It should be sociable.
  13. It shouldn't rely on iframes and no javascript widgets.
  14. It should scrape information for other places and make it look great.
  15. It should be expandable as new things I do online become mashable.
  16. It should use HAML and SASS.
  17. It should be fast.
  18. It should be lightweight.
  19. It should be built in a way that lets people make their own in the same way.
  20. The end result should look so simple as to be unsurprising.

So, I give you this new website and I give you Caboodle, which hopefully fulfils all 20.

Caboodle is a mashup framework. It is a neat way of putting together a simple website that combines content from multiple sources in an elegant way.

At the heart of Caboodle is Sinatra, the beautifully simple Ruby-based framework for the web.

Caboodle is based on the idea of "Kits" (Kit and Caboodle anyone?), and each Kit provides everything you need to interact with a particular web application or service (Flickr, Twitter, Linkedin, etc.) as well as handling displaying it on-screen. 

The cool thing is that each Kit is actually a Sinatra application itself, so all Caboodle does is chain the applications together and provide some shared logic to make for a neat user experience.

So if you have a small Sinatra application you've already made, turning it into a Caboodle Kit could be as simple as extending Caboodle::Kit instead of Sinatra::Base.

Migrating from my existing site was easier than I thought, thanks to Posterous, who offer a new Wordpress import service. Caboodle just pulls in the posts once they are on Posterous, and it means I can then blog just by sending an email. Perfect for the tube-ride to work.

Help out!

I'm looking for alpha users to help with the development of the site, especially people who'd get excited by the following, which is how I have deployed this website (assuming you have git and heroku already set up):

> caboodle create mynewsite

Please set a value for title:

> My New Website

(... and set a few more variables...)

> cd mynewsite

> caboodle kit:add Flickr

Please set a value for flickr_username:

> aeioux

> caboodle kit:add Linkedin

Please set a value for linkedin_url:

> http://linkedin.com/in/steflewandowski

> caboodle deploy

mynewsite.heroku.com has been deployed

If you're interested in having a site like this, even if that looks like gibberish, I'll put one together for you just to test this out.

And if you're a Rubyist, I'm looking for people to collaborate with on this! Fork Caboodle on github.

About

Creative entrepreneur and web person

I blog at http://steflewandowski.com