When Google launched the iGoogle service in 2005, it became my default home page. I especially liked the capability its dashboard capabilities. My favorite gadget was the one displaying my bookmarks.
When they announced its retirement, I looked for a viable alternative, a hosted service, with multiple account support, with an adaptative layout, etc.
Because I did not find something for my taste, because I see here an opportunity to mix many of my favorite technologies, I started this project to primarily store my bookmarks..
Google App Engine for the identity management, the persistence layer, and the Web server
I've been using the Google App Engine service since the beginning, for personal and professional services. So I naturally decided to use GAE to host this service.
Objectify for the ORM
After one project with JDO on GAE, and others with JPA and Hibernate (JPA 2 compliant), I switched to Objectify. While being specifically made for Google Datastore (with a smaller set of features, like the absence of join support), it offers a standardized approach (in the JDO spirit) and it's an effecient implementation.
RestEasy for the RESTful API
A long time ago, I designed and implemented my own transport layer between back-ends and Web clients. Nowadays, there are so many libraries doing it with the support of huge communities, like Spring or Jersey. For this project, I've chosen the light RestEasy.
Jackson for the transport protocol
Jackson is the best library for manipulating the JSON data format within the JVM.
Bootstrap for the presentation
As many programmers, my UI design skills are limited. Relying on Bootstrap which provides nice looking widgets and a grid management system is an easy win. As Martin Pengelly-Philips did port the Bootstrap theme to Dojo, I use his dbootstrap library.
Stylus for the CSS manipulation
Whoever wrote the style sheet for a complex web site knows how easy it becomes messy. After LESS and Sass, two popular CSS pre-processors I want to give a try to Stylus. I really like the use of mixins: to reduce the cluter with vendor prefixes, to define 'flexible layout' compliant classes, etc.
Intern for the Dojo code testing
Intern is a relative new testing library that supports unit and functional tests. It uses node.js too, like Stylus.
Selenium WebDriver for the interface testing
Even if Intern supports the functional tests, I like the ease of Selenium WebDriver test development. It relies on the server developer skills to test the Web client: it's not the same person doing the code and the tests.