Monday, 26 August 2013


I’ve read and enjoyed some of Joel Spolsky’s Joel on Software posts, in dead tree format.  So the other day, I was link surfing, followed a link to his site, and ended up reading How Trello is Different, a mere 18 months after it was originally posted.

I was taken with the sentence: “The great horizontal killer applications are actually just fancy data structures.” Trello is a “team coordination system” that is a fancy data structure comprising a “list of lists”. (Actually, it is a list of lists (boards) of lists of lists (cards) of lists of lists (checklists); or tree, as we say in the trade.)

The point is that any killer app can be used for multiple different purposes, mostly not thought of by the original developer: Excel, for example, isn't just a calculator, it’s used for almost anything that needs tables.

So Trello is good for any task that needs lists of lists – including to do lists. I hadn’t consciously been looking for a to do list manager, as I was happily using Toodledo. Toodledo is great for to do lists, but I was finding that maybe I wanted something with a little more structure: not just a single to do list, but ... a list of lists! The pro version of Toodledo has more capabilities, but that requires a subscription. So, finding Trello felt like serendipity, and I decided to give it a try (it’s free, and web-based, like so many things nowadays; there is a pro version, but it looks well beyond my needs).

And it’s really great. I now have (a list of) seven boards, the major list category: think project, or similar large slice of life. I have one for teaching in general, one for a specific module I’m teaching, one for research, one for tracking my research students, one for travel and events, one for miscellaneous to do items, and one for template lists.

Each board has several lists: categories of tasks or items in that board. So my specific module teaching board has a list for lectures, for practicals, for seminars, for the web site, and for the assessment.

These lists are just called lists. They are lists of cards. Each card is a task or other specific unit of work. So my practicals list has a card for the preparation I need to do for each individual practical, and a further card for things I need to do for all the practicals. Lists, and cards within lists, can be dragged around to reorder things how you want.

It doesn’t stop there. There’s loads of data that can be associated with a card. Flip the card over, and there’s a free text field, a due date, coloured tags, a list of activities (things that have happened with the card), a list of checklists, and more. Each checklist is itself a list of check items. And that’s as far down as the lists go, I think.

For the group working part, multiple people can be members of a board, can be assigned different cards, and so on.

I’ve been using Trello for a few weeks now, and it fits in very smoothly to my workflow. There’s an “all cards” view that you can use to show cards with a due date, in date order, so I can easily see what’s urgent.

I liked it enough to want to use it permanently. But there was one issue: backup. The data is stored on the Trello server. If I lost my to do list, I would be in deep trouble. I went to the help page, searched on “backup”, and found:
To export your data, simply open a card or open the sidebar Menu, then click the ‘Share, Print, and Export’ button, and you’ll find export options. Currently, we allow export to JSON, which is a format that lends itself well to Trello’s specific data storage model.
Yes, but if Trello disppears, how will that help me? (I have no reason to believe Trello will disappear. But, I'm paranoid about backups.) I clicked the export button, and was delivered a .json file. I decided to see how easy it would be to extract my to do life from the file. I wrote a little Python and CSS, and converted the relevant bits of the file to HTML:

The CSS just formats to HTML to look like the original Trello board. It looks a bit different, because I added the info from the back of the card to the front in this backup display.

So that’s okay, then. I can recover the data, provided I remember to backup the boards. But that’s a bit boring, having to backup seven boards individually. Boring backups are no good: they tend to get skipped. So I went back to the site to see if there was a command to backup all the boards in one go. No, but there is an API; I’d seen that originally, but forgotten about it.

The API lets you get and set your data remotely. So I modified my Python script to read from URLs rather than JSON files, and voila, backup of the entire set of boards with a single click.

So now I’m happy, and will go over to Trello. And I’m not even scratching its surface yet: I haven’t made any use of the multi-person aspects so far. I may think about doing that on a new project that’s about to start up.


  1. Is there any chance that you can share you Python and CSS code? This kind of backup tool is exactly what I need. Creating it by myself will take me weeks -- will have to relearn Python ;)

  2. Hi Susan,
    I've been using Toodledo combined with 2do on my iPhone to manage my personal tasks, and use Trello at work as a Kanban board. I'm going to try your idea for managing all of my tasks just with Trello, as they have an iPhone app that works very well too.