As part of a larger project I’m doing, I had a need to write out a personal timeline – a potted history of my life, along with any particular emotions associated with each event. Of course, in order to distract myself from the task at hand, and instead of using the A4 sheet of paper I’d been given, I went looking for some software to help out. TimelineJS turned out to be exactly what I was looking for.

I started out by maintaining the JSON source file manually (I could have used Google Docs, but I’m allergic to spreadsheets!), adding bits and pieces as I could remember them. That got dull – and error prone (it got upset every time I missed out a , between entries!) – pretty quickly, though, so I’d chuck together some code as a web front end to produce the JSON data.

I wondered if it could be handy for others, too, so I’ve shared the code on GitHub at mathie/timelines and I’ve got an instance of it running here: You can sign up to create timelines and either share them publicly, or keep them private. You can also share a private timeline with collaborators, who can see the timeline and make changes to it. Being able to share a private timeline with my wee sister (who has a much better memory than me!) was the main reason I felt the need to build this app in the first place.

The app itself is pretty straightforward. There’s nothing I wanted to implement that needed anything more than ordinary RESTful operations – I managed to think of every operation in terms of creating or updating a resource. It always pleases me when I manage to build a design so it’s all just CRUD operations. And the refactoring which took me from a timeline belonging to a user, through to a timeline having many collaborators (a has_many through: assocation), worked rather neatly. After changing the associations themselves, the only other code I had to update was one line figuring out authorisation.

And for an example of what it can do, here’s a (slightly condensed) version of my timeline.

After all that effort, I suppose I should get back to the task at hand and figure out what to add to the timeline. Knowing that I’ve been in continuous employment since I turned 16, and that I’ve moved home more than a dozen times since I left for University is interesting an’ all, but I suspect I’m missing the underlying point of the exercise… What sort of personal history would you like to record on a timeline?

A Sneak Peek at
The Internet

If you enjoyed this article, you might be interested in my new project, A Sneak Peek at The Internet. What happens when you enter into your web browser and hit return? A Sneak Peek at The Internet will take you on a deep dive through the network stack, from HTTP, SSL, TCP and IP, all the way down through the data link layer, back up to Facebook's data centres, and then on the return journey back to the browser.

There's more fun, excitement and peril than a Disneyland rollercoaster!