New iGoogle Module: The son of NavBar and Toggle

I've created a new iGoogle NavBar and Toggle module. It does two things:
  • Lets you hide the search bar and save most of the real estate at the top of the page
  • Adds configurable links to the top of the homepage similar to the google link bar in gmail, but with a lot more links. You can configure the links using your account.

Why the new module? Well, last week Google updated their personalized homepage adding a NavBar at the top of the page. The update broke my existing NavBar & Toggle module.. Unfortunately, their updates did not make the NavBar configurable and the page still doesn't have a way to shrink the search space. Thus the new module...

Here's what it does to the iGoogle page:

Before: Toggle Google and Configurable Menu

After: Toggle Google and Configurable Menu

Development Notes:
I decided to EOL the old module and create a new one for two reasons. First, the functionality difference was big enough to justify a separate module and its conceivable someone might want to keep using the old module. Second, I wanted to try out google code which is where the new module is hosted. Google code has a slick set of tools for project hosting.

In order to make the NavBar links configurable I needed an external link storage source. I wanted to use Google Bookmarks, but they don't have a public API and there's enough reverse engineering in this module already. So I went with I set up a igooglemenu account to hold the default links, and anyone can change the module settings to use a different account if they like.

Reverse Engineering the home page has been a pain. Almost every time Google changes it the module breaks and I have to start over. To smooth that effort I'm using the google code wiki to track the DOM. This will give me a starting point for tracking down the changes the next time they make an update.

I think the user interface and coding in the new module are pretty elegant. Mostly because its much simpler than its predecessor. It'll be interesting to see if my opinion holds over time.