What Makes Goodreads a Great Website?

Arjen Vrielink and I write a monthly series titled: Parallax. We both agree on a title for the post and on some other arbitrary restrictions to induce our creative process. This time we decided to write about what makes Goodreads a great website. First we sat together for an hour and used Gobby to collaboratively write a rough draft of the text. Each of us then edited the draft and published the post separately. You can read Arjen’s post with the same title here.

Goodreads.com

Goodreads.com

What is Goodreads?
Goodreads is Facebook and Wikipedia for readers: a social network of people that love to read books, full of features that readers might like. It allows you to keep many “shelves” with books that can be shared with other people on the site.

Great Features
Here are some of the features (in no particular order) that make Goodreads work so well:

  • The site is not only useful when you are a member. Even if you are not logged in it still is a pleasant site to read and browse for book lovers.
  • It allows you to keep track of your own, yout friends and “the crowds” books. If you see an interesting book you can put it on your to-read shelf, if a friend reads an interesting book than he or she can recommend it to you.
  • Statistics can suggest recommendations based on my shelves, reviews and friends.
  • There is a distinction between friends (a symmetric relationship) and followers (an assymetric relationship).
  • There is a book comparison feature: it finds the books you have both read and compares the scores you have given to those books.
  • It is very easy to invite your friends into the site. You can put in their email address, or you can give Goodreads access to your webmail contacts (sometimes this is a questionable thing, but Goodreads isn’t to pushy (it doesn’t send out Tweets without you knowing it for example)).
  • They have a great “universal” search box where you can search books on author, title or isbn from the same field.
  • It makes use of Ajax in the right locations, allowing you to update small things (“liking” a review, noting what page you’ve reached, handing out stars to a book) without having to reload the page.
  • The user profile page is related to the contents of the webservice: for example, it allows you to say who your favourite authors are.
  • The site supports many different ways of viewing and sorting your shelves. You can look at covers or at titles and sort by author, by score, by last update and more.
  • Before building a great iPhone app, Goodreads made sure their website had a great mobile version of their website. When you access the website with a mobile browser it automatically redirects to a mobile version of the website, so even if you are accessing the site with your Windows Mobile device you have a great experience.
  • Not only is it very easy to put data into the Goodreads ecosystem, it is also very easy to get your data out again. You can download a CSV file with all your books (including the data you added like reviews, date read, your rating and the metadata about the book that Goodreads has added like the ISBN or the average rating). The smart import feature looks at an HTML page (e.g. an Amazon wishlist page) and imports all the ISBNs it can find in the source code of the page. Like any good webservice it imports files that are exported from their competition (Shelfari, Librarything and Delicious library).
  • There seems to be an evolving business model. Initially there were only (onubtrusive) adds, but now they are starting to sell e-books, integrating this into the social network.
  • Often when you read a book there are sentences or passages which really impress or inspire. Most of the times you then forgot these. Goodreads allows you to favourite and rank (and thus collect) quotes easily by author or by book. You can add and export quotes as well.
  • Sharing your Goodreads activity to other important webservices is built in. There are integrations with Facebook, Twitter, WordPress Blogs and MySpace. Goodreads also provides embeddable widgets that you can put on another website (e.g. a box with the most recent books you have read). A simple integration allows you to instantly find a book that you are looking at in Goodreads in your favourite online bookstore. And of course there is the ubiquitous RSS.
  • A site like Goodreads get is value from the data that its users put in. Goodreads allows this at many levels. There are trivial ways of adding information (i.e. saying you like a review by clicking a single link, allowing Goodreads to display useful reviews first), but there are also ways of adding information that take slightly more effort. For example, it is fairly easy to get “librarian” status which shows the site trusts their users. As a librarian you can edit existing book entries. A low entrance level is key to crowd sourcing. Another way to involve people is to allow them to add their own trivia that other users can try and answer in trivia games.
  • It allows users to flag objectionable content.
  • Goodreads has its own blog, keeping you up to date about the latest features and their direction.
  • It has an element of competition, you can see how many books are on your shelf and how many books are on other people’s shelf, but there are more metrics: you can see who has written the most popular reviews, your rank among this week’s reviewers, or who has the most followers
  • It has a great and open API. This allows other people to build services on top of Goodreads. The potential for this is huge (the very first Goodreads iPhone app was not made by Goodreads itself, but was made by a Goodreads enthousiast) and I don’t think we have seen what will be possible with this yet. A lot of the data that Goodreads collects is accesible through the API in a structured and aggregated form. It should be very easy for other book related sites to incorporate average ratings from Goodreads on their own pages for example.
  • It is in continual beta and their design process seems to be iterative: it keeps evolving and adding new features at a high frequency like the recently added stats feature.

My current stats for 2010

My current stats for 2010

  • It is easy to delete your account, deleting all your data in the process. This makes for complete transparancy about data ownership, an issue that other sites (Facebook!) have been struggling with lately.
  • It has a kind of update stream which let’s you easily keep up to date with your friends, groups and favourite authors status.
  • The service has ambitious and lofty goals: “Goodreads’ mission is to get people excited about reading. Along the way, we plan to improve the process of reading and learning throughout the world.” (see here). I do believe that this clear mission has led to many features that wouldn’t have been there otherwise. For example, there is a book swap economy built into the site allowing people to say that they own the book and are willing to swap it for other books. Another book lovers feature are the lists. Anybody can start a list and people can then vote to get books on the list. Examples of list are The Movie was better than the Book or Science books you loved. Another feature are the book events. You can find author appearance, book club meetings, book swaps and other events based on how many miles away you want these to be from a certain city or in a certain country. Of course you can add events yourself, next to the ones that Goodreads imports from other sites, and you can say which events you will attend, plus invite friends to these events.

How Goodreads could improve
As said, Goodreads is continuously changing, there are still some things that require some change in the right direction:

  • Ocassionally the site feels a bit buggy. I have had a lot of grief updating the shelves of books using the mobile site with it not doing the things I wanted it do.
  • It is not always clear what kind of updates are triggered by an user action. I am not sure what my friends see. Sometimes you find your Facebook Wall flooded with Goodreads updates because your friend found a box of long lost books in the attic which he entered in an update frenzy.
  • Usability: Some features are hard to find. Like the new stats feature discussed above, you can only find it hidden away on the bottom left of a page in some obscure menu. Other features are hard to use, requiring many more clicks than are actually necessary.
  • They could improve on localisation and on the translations of books. In your profile settings you can select your country, but you cannot select in which languages you are able to read books.
  • The graphic design of the site isn’t top notch. When people initially see Shelfari, it might have more appeal just because it looks a tad better.
  • In-app mailing or messaging systems are always beyond me. Goodreads also has an “inbox” where you can send mail to and receive mail from your Goodreads friends. I would much rather use my regular mail and use Goodreads as a broker so email addresses can be private.

Some thoughts on the process of writing this post
Gobby is a multi-platform text editor that allows multiple people to work on the same text file in realtime. It uses colours to denote who has written what.

A Gobby Window

A Gobby Window

This was an experiment to see how it would feel to work like this and whether it would be an efficient and effective way of working together. I thought it was quite successful as we produced a lot of material and helped eachother think: building on the point of the other person. It was helpful to do an initial draft, but it does require some significant editing afterwards. I thought it was interesting to see that you feel no compunction to change the other person’s spelling mistake, but that you feel less free to change the contents of what they are writing.

This time we were sitting opposite each other while writing. In the future it would be interesting (firewalls permitting) to try and do this over a longer distance. Then the unused chat-window might become more useful and important.

You can download the original Gobby file here (it requires Gobby to make sense).

Hopefully this post about Goodreads is an inspiration to anybody who tries to build a social network around a certain theme and remember: if I know you I would love nothing more than to be your Goodreads “friend”.

A SnapAsk Widget for Symbian S60

Answers in a snap

Answers in a snap

My favourite gadget of all time is the Psion 5MX. EPOC, its operating system, was sheer genius. It had a great interface and was a joy to use. EPOC became Symbian S80 and when the lack of Internet functionality of the Psion became too bothersome I decided to switch to a Nokia 9500, then to a Nokia E90 and now I own a Nokia E71 with Symbian S60 3rd edition.

Suddenly I find myself stuck with a smartphone that has an operating system which doesn’t leverage the keyboard of the device and is in many ways quite clunky (some options are hidden more than five layers deep). However I much prefer Symbian to the other available platforms: the iPhone is extremely nice but married to iTunes and locked down, Palm hasn’t been resurrected yet, Windows Mobile is a joke (using a pen is ridiculous in this day and age), the Neo Freerunner is too experimental, Maemo doesn’t allow me to use a SIM card and all the phones running Android that currently exist have no battery life.

I like to get the maximum potential out of all the technology that I use. I have spent quite a bit of time setting up my phone exactly the way I like it, so that I have quick access to information on the go (see for example the custom mobile start page that I created). In due time I will write a post about the programs that I use on my phone. In this post I want to focus on a small widget that I developed yesterday evening.

A couple of months ago I read a post on Lifehacker about a great service for people who own a mobile device with email capabilities: SnapAsk allows you to send an email to ask – at – snapask -dot- com with a keyword and a query in the subject line. SnapAsk will then reply to your email with an answer to your query. So “wiki Symbian” will return the Wikipedia page for Symbian and “news economic crisis” will return an email with relevant news articles. Some of the keywords are a bit US centric and don’t return proper results for me in the Netherlands (e.g. weather, traffic or flight), others are quite innovative: Know some words of a song, but can’t remember the name or who sang it? Send an email with the subject “lyrics A full commitment’s what I’m thinking of” to Snapask and you will be textually Rickrolled.

Using SnapAsk on my phone proved more difficult than I had hoped. I had to either type in the email address in the To: field or select it from my contacts, remember (the hardest part!) and type the keyword I wanted to use and finally type the query. I also learnt the other day that Nokia has decided to support widget development on their Symbian platform. So I gave in to my tinkering spirit and committed to trying to write a little widget which would make it easier to use SnapAsk on my phone.

I set the following criteria for the widget:

  • It should require the least amount of possible clicks
  • It should be as close to self explanatory as possible
  • I would have to be done with it in a couple of hours
The UI of the widget

The UI of the widget

At first I thought I would create links for each keyword and an input field for the query. The user would first click on the link with the keyword, then write the query and finally click on a link or press a button to start the email application. Later I realised that I could eliminate one step by making the keywords buttons. This way the user would only have to type in the query and select the correct keyword.

This idea required some Javascript. I have been wanting to try jQuery, so I wrote the initial implementation using that library. When I tried loading the page on my phone I learnt that jQuery seemingly was not supported by Nokia’s built-in browser. I then decided to try and write it with normal Javascript code and this worked perfect. With some CSS I managed to get the input field to be the full width of the top of the page (where the cursor is likely to be). I also made the field higher by increasing the font-size property, so that it is easy to get your cursor on it, in case it isn’t. The only thing I couldn’t manage to do was get the field to auto-focus on load. It seems that Nokia doesn’t want to support that function.

All I had to do, after finishing the HTML file (with inline CSS and Javascript), was create an XML file called info.plist with the name of the widget and its version number and an icon.png file of 88×88 pixels. I then put these three files into a folder, zipped it and changed the extension to .wgz.

The widget as an installed app

The widget as an installed app

The great thing about these widgets is that they install like any other Symbian program and can, by default, be found in the Installations directory on your phone. Ajax can be used and apparently some Javascript methods exist that allow you to map certain functions to the softkeys of the phone.

I really like how standardised web technology is becoming. This widget should run on any other device with a standards based browser and if you keep the structure of the page simple and clean you can expect each individual mobile browser to display the page optimally.

My employer has standardised on Symbian smartphones for all their consultants. It should be relatively easy for them to develop a highly relevant widget that will enable me to do my work better and more efficiently. I have to say I am bit puzzled about the fact that Nokia is not pushing this concept a bit harder. Where is the Nokia Widget Store?

I would love for people to use the widget and give me some feedback on whether they like it:

Download the Widget
(or try in your browser if you don’t have a Symbian phone)

If you know of any other interesting widgets for Symbian please let me know!