Friday, November 23rd, 2007
When Ian Smith launched Joe’s Goals back in June, 2006, it was an instant hit due to it’s simplicity, excellent UI, and it’s excelllent ability to handle the task of managing your goals. By leveraging YUI, the FamFamFam icon library and ColdFusion, Ian created one of most recognizable Ajax-based applications out today.
Ian just announced a major update to the Joe’s Goals site, putting JG v2.0 into private beta and releasing a host of new features which are sure to make his users very happy. Performance was a big focus in this release as well as improving usability and reducing page refreshes:
- Speed Speed Speed! 2.0 is a full Ajax application, no more waiting around for page refreshes.
- Improved stats including a longest chain stat for positive goals and longest gap stat for negative goals.
- Lighter design means there are less links to deal with and better clarity. Goals can now be edited by clicking on their name instead of on the options link.
- Customizable display options means you can pick which stats you want to watch for each goal.
- Printable tracker for those who like to work on a hard copy during the week and update their tracker on the weekend.
- You can also switch back and forth between 2.0 and the classic version until everyone gets ported over.
In trying out version 2.0, it’s definitely an improvement overall to the previous version. The interface is substantially less cluttered and the use of Ajax does give the appearance of improved performance, mainly due to the lack of a page refresh. This is immediately apparent when scrolling back and forth between days which is noticeably snappier due to the partial page refresh versus the full page refresh found in the previous version.
I had a chance to chat with Ian about this new release:
How many users are actively using JG v2.0 and what’s been the response?
Our active user count various but it is between 3000 and 5000 users during most of a given month.
JG leveraged YUI from the get-go. Did you introduce any new technologies in this release (eg: new libs)?
Since JG 1.0 there have been a lot of improvements made to the YUI. I’ve tried to rely as heavily as possible on those components this time around and cut out a lot of my own hacked together code. I’m taking better advantage of the panel and animation libraries as well as their connection library. With the connection library I benefit greatly from the ability to tag Ajax calls with specific arguments so I can capture the call backs and programmatically make page changes based on which requests succeeds or fails. The connection library is the best example of this I’ve seen of any Ajax Toolkit.
I’m not sure what version of CF you’re using but CF8 now includes Ajax tags that leverage Ext, YUI & Spry. Did you use any of that?
What contributed to the speed improvements? Was it the Ajax functionality, under-the-hood updates?
There were several changes that helped (including a rewrite of the backend code). I also develop some techniques for better handling the data in the web browser and pushing as much of the processing to the user’s computer and away from the server.
How did you go about deciding how Ajax would be expanded in JG v2.0? I think readers would be interested in knowing the UI rationale for their own work.
Any plans for an API where people can grab the data for other apps?
Absolutely. I’m very excited about the possibilities opened up by adding an API and I’m also watching closely to see what happens in the social networking space (hint hint).
Posted by Rey Bango at 6:30 am