My SiteSprint Project: LindyHub

Posted on November 16th, 2009.

If you're a web designer and/or developer, you might have heard of SiteSprint. From the SiteSprint page:

What is the Site Sprint?
A challenge to do something about our personal websites. If you were looking for a reason to rework an existing site or launch a new one, here it is.

The event has a couple of rules:

The Rules
1. Launch by 12/15
2. Document your process
3. On launch, share what you did and how you did it

I've decided to join in and finish up a pet project of mine that I've been working on (very sporadically) for the past six months or so: LindyHub

  1. Preface: About Swing Dancing
  2. The Problem
  3. LindyHub's Current State
  4. My Goals for the Sprint (and Beyond)
  5. For the Nerds: What I'm Using
  6. If You're Interested, Follow My Progress!

Preface: About Swing Dancing

If you're a dancer, go ahead and skip to the next section. This is for the programmers and designers that might not have heard of Lindy Hop.

Lindy Hop is a form of swing dancing. I've been doing it for six years and love it.

Part of the Lindy Hop culture consists of "exchanges" and "workshop weekends". The general idea is that a group of dancers will host one of these events on a weekend. They'll hire DJs or bands, and teachers if they're going to have classes, and plan out a whole weekend of awesomeness.

Dancers from far and wide will travel to these events to meet and dance with new people (and old friends).

If you want more background on dancing find me on Twitter and I'll gladly explain more, but this in-a-nutshell explanation should be enough for you to understand the rest of this entry.

The Problem

LindyHub is a project I've been working on for about six months off and on in my spare time and it was rolling around in my head before that.

Over the last few years or so I've been getting back into web development and design. At the beginning of this year I started to notice a trend: most websites for Lindy Hop and blues events are very basic and unpolished. Some of the things I've noticed about almost every event site:

There are other things, but those are the big ones.

Now, I completely understand why people don't add those features to their event sites. It doesn't make sense to spend 10 hours adding cool features that are nice to have but not really necessary if your website is only going to be used for a single event. Those 10 hours could be spent promoting your event and getting more people to come which is better for everyone.

Around the time I was noticing these things I was also starting to get back into contributing to open source projects. Two of the big project hosting sites nowadays are BitBucket and GitHub. I noticed how they both make starting a new project almost trivially easy — you sign up for an account and within two minutes people can view and contribute back to your new project. They've fostered a lot of collaboration in the open source community and it's been a very good thing all around.

The two ideas came together in my head pretty quickly. I started thinking about designing a site that made setting up a dance event almost as easy as forking a project on BitBucket.

Sure, every organizer spending 10 hours to add cool features to their event site doesn't really make sense. But what if one person spent a couple hundred hours and built a site that let every organizer add those features in 10 minutes? After 20 or 30 events it's saved those couple hundred hours and just gets better from there.

The more I thought about it the more it seemed like a good idea. I'd been learning a lot about web development and about six months ago I decided I was competent enough to handle something like this, and started working on the LindyHub core.

LindyHub's Current State

I've been working on LindyHub off and on for the past six months or so, and it has been coming along pretty well. I decided to use SiteSprint as motivation to buckle down and complete it to a point where I can invite a few organizers to give it a try in a "closed-beta" period. From there I'll work out any kinks and open it up for public use.

Here are some of the things the site can do right now:

My Goals for the Sprint (and Beyond)

Some of the things I'm planning on adding to the site in during the sprint are:

There are a whole slew of other things I have tumbling about in my head, but those should be enough to give you an idea of where the site can go.

Above all, my goal is to spend as much time as it takes to create a site that will save organizers a few hours of their time and make it easier for dancers to find events they want to go to.

I don't want to try to create a site that will accommodate every event. If I make LindyHub flexible enough to handle Frankie 95 it will become so complicated that no other events will want to use it. I want it to work for the 85% or 90% of events that just need the most common features. Doing that will make it far, far easier to use, which means more people will use it.

For the Nerds: What I'm Using

LindyHub is built with Django and Python.

It's hosted on WebFaction and uses a PostgreSQL database to store its data.

It uses Aardvark Legs to keep me sane while writing the CSS, and will use jQuery for the inline form validation.

I'm happy to go further in depth if you're curious — find me on Twitter.

If You're Interested, Follow My Progress!

I'm going to be working on the site a lot over the next month. I might write another blog entry or two, but I'll try to post updates to @lindyhub on Twitter much more often.

If there's anything specific you want to know find me on Twitter and I'll be happy to answer!