We’ve launched www.RedBlueus.org, a one-to-one dialogging application
built in Rails that matches users from opposite ends of the political
spectrum to talk about divisive issues. The system is designed to help
users have productive dialogues focused on conversation rather than
I was the chief (and pretty much only) engineer. Major features:
- A simple wiki-like content management system (the client manages all
pages on the site),
- XHTML compliance,
- Email reminders,
- A DHTML (via prototype) “virtual facilitator” that walks users
through a set of questions designed to help create productive (rather
than trollish, knee-jerk) responses,
- An Apache 2.2 / mongrel / postgresql 8.1 backend,
- A rich admin system,
- A performance tweaked rights/roles system inspired by the one in
- Role-based HTML filtering,
- A guided dialogue process that essential walks participants through a
queue-based “workflow”, starting with a set of opening questions, a
back-and-forth phase and finally a survey about the dialogue and
This was sort of “build to suit” - the scope wasn’t as fleshed out as it
should’ve been at the start of the project. I found Rails to be an
excellent choice in this case because the separation of concerns really
helped me make pretty big changes without a lot of effort.
It felt like I had a very high probability of my first effort at
writing code working perfectly - I chalk it up to the orthogonal nature
of the changes Rails and MVC affords. Orthogonal focus begets quality.
Centralizing logic in models and a liberal use of partials was a
godsend as this project progressed and changes came down the pike.
We don’t treat the database as a souped-up flatfile storage engine -
we’re using triggers, foreign keys, functions and “advanced” postgres
features to keep the data clean and tidy. The default rails assumptions
about your database basically being stupid makes this a bit more
difficult to manage (especially when it comes to testing and
migrations), but not insurmountable.
This was our first major Rails project. So far, we are very happy with
the results in terms of deployment options, development time and quality
of the code and framework. Feel free to ding me here if you’ve got
I’ll throw up a link to the press release when we’ve posted it to our
main site. Thanks!