August 1, 2009 will

Links Desktop Teaser Screencast

In past blogs I've hinted on the fact that I'm working on a Javascript application in my spare time. It's not quite done yet, and wont be live for a few more weeks, but I do have something that I can show off.

This project is best explained in the form of a screencast. This is the first screencast I have ever made and I'm not sure if I have done it right, or if my humble server will cope with serving FLV files. If the server doesn't manage to keep up, I'll probably Youtube it.

Update: If for any reason the above player doesn't work, you can view the screencast on Youtube.

The front-end uses nothing more than HTML and Javascript. This project actually represents more Javascript than I have written in all my previous career. I've written so much JS lately that I have stopped hating it – but that may just be Stockholm Syndrome.

The back-end is a Django application that serves the content and the API that is used by the front-end JS. I've put together a nice simple mechanism for exposing an AJAX API in Django, that removes virtually all the boiler plate; the API views are inspected, and the URLs created automatically. I'll probably blog about that at in the future.

Most of my recent experimentation in to caching has been with this project in mind; I've planned for large capacity, if it ever becomes really popular. Virtually all the data can be moved to memcached and I can manage the browser cache with ETags.

Please leave a comment if you would like to be one of the beta testers, or have any other suggestions. I'm particularly interested in ideas for monetizing!

Use Markdown for formatting
*Italic* **Bold** `inline code` Links to [Google]( > This is a quote > ```python import this ```
your comment will be previewed here
Jonathan Church
Hi, I found this through reddit. I think you have a very neat piece of software here. One of the ways you might want to think about monetizing it is including some default bookmarks in the software. They could be affiliate links, such as an Amazon affiliate link in which you get up to 15% of the sale. I also have a few ideas for improving the software. I think there are too many icons, you might want to think about narrowing them down and removing similar ones. Also, I think you should tag the icons so that a user can do a text search for an icon. For example, if the typical “friends” icons were labeled with the tag “friends”, it would be very easy for the user to add an appropriate icon. That icon you use in the demo would be a good one, as would many others in the list. I also think it would be a good idea to let users tag the bookmarks themselves. I am often wanting to relate a firefox bookmark to multiple folders, and the only option for this is to actually put the link in both folders. Tagging bookmarks would be a great improvement.
Roll Troll
Wow! You've made a larger, clunkier, uglier, bookmarks bar, seen commonly in nearly every browser available!
Python is the new javascript. Give a try.
Ayoub M.
really, a greate project.
i'v been looking too long for such project that relies heavly on js, are you planning to open source it ?
Petar Maric
Cool proof of concept. Is it just a toy project, or do you have some bigger plans for it?
Euan Goddard
Looks great Will. I like the stacks - that's come on a lot since I last saw. Always up for some beta testing and some code review at a push :)
Andy Baker

Regarding the tools that pop up at the bottom in ‘edit’ mode. In my view icons+tooltips don't cut on the usability front. Text labels, man! It's easier to read than to guess what obscure squiggles stand for or wave your mouse around and wait for the tooltips to appear.
Will McGugan
Jonathon, thanks for the suggestions.

Roll Troll, its not as ugly as yo moma.

Niki, I may just do that!

Ayoub, sorry its not going OO any time soon.

Peter, I guess I'll finish it and see if people use it.

Andy, its not that obscure if you see it full-size.
David Lavery
Really interesting, especially in the light of Google recently announcing a web based OS. Have you thought about porting it to the Google App Engine, or Amazon ECS? It could solve any scalability worries you might have.