An unofficial blog that watches Google's attempts to move your operating system online since 2005. Not affiliated with Google.

Send your tips to

February 5, 2007

A Toolkit for Offline Web Applications

Web applications are not yet as powerful as desktop applications. One of the big problems is that when no live network connection is available, users can't use the application or its data. Dojo Offline Toolkit is a small package that could enable compatible web applications to work offline.
Imagine Alex is using a web-based real estate application for realtors built with the Dojo Offline Toolkit. In the upper-right corner of this web application is a button that says "Work Offline." The first time Alex clicks on this button, a small window appears informing him that this web application can be accessed and used even if he is offline. If Dojo Offline has never been installed, Alex is prompted to optionally install a small 100K through 300K download that is automatically selected for his appropriate OS, including Windows, Linux/x86, and Mac OS X/Universal Binary.

Once Dojo Offline is installed with the included installer, the web-based real estate application prompts Alex to drag a hyperlink to his desktop and bookmark the web application's URL. As Alex works online, anything that should be available offline is simply stored locally. If Alex is offline, he can reach his application by simply double-clicking the link on his desktop, opening its bookmark, or by simply typing in its normal web address. The application's user-interface will magically appear in the browser, even if the user is offline, and all offline data will be retrieved from and stored into local storage. Dojo Offline detects when the network has reappeared, allowing the web application to send any data stored in local storage to the web server.

The idea is that web applications would continue to work offline, even though the server doesn't push any data.
Imagine a version of GMail with a "Work Offline" button on the left-hand side of the screen. When pressed, GMail downloads 100 of your most recent emails into Dojo Offline, including pieces of it's user-interface. A user can now close their browser and leave the network, stepping on an airplane for example. Once in the air, the user can then simply open their laptop and browser and type in The GMail UI magically appears, along with their 100 most recent emails. A user can read these mails, compose new ones, or reply to existing ones. A flight attendant announces that the plane will land soon; the user closes their browser and laptop. Later, when they are back on the network, they can click the "Work Online" button, which will send all of their locally written emails to the GMail server.

An offline Gmail (but also offline Google Docs, Google Reader, Calendar etc.) might be a key step for a wider adoption of these tools. All these applications try to mimic desktop applications, but don't have an essential feature: continuous availability.

What I don't like about the Dojo Offline approach is that users have to click on a "Work offline" button. It would be better if the application detected the offline state.

Offline Google Docs
Handling online and offline files


  1. With something like gmail - wouldnt it be better/easier more intuitive for the application to leverage Google desktop, which can probably index the whole gmail history, and act as a proxy. When you are offline, everything comes out of the gdesktop cache and sits in there (new messages)until you are back online.

  2. you don't have to select work offline, if you get disconnected it just works. once you go to the site it downloads the javascript file just it does any javascript file when u visit any page. however u have to design ur page to work offline from the getgo since the only things that work offline are cached items. it would be pretty simple for something like google docs and spreadsheets how ever not so easy for say gmail or google maps since it only caches an item once you look at it, it would have to precache a lot more for it to be usable offline.

  3. A friend was working at a startup a couple years ago writing software to do this sort of thing at the "enterprise" level, software that kept critical data always synched. I think they went out of business. Which probably means its a technology for the masses.

    I think it is absolutely a principle that client and servers need to stay data synched, and this should be invisible, one should never have to be online to work. A principle of Web 2.0 that the web should not be required? That's not conceptually cute enough for popular buzz, but it would be an actual step forward.

    Kudos to the Dojo folks... now can they incorporate so Google can buy them?



  4. Every time I read one of these types of articles I feel we only need someone to write the application interface in the Adobe Apollo program and you will be able to work on line as well as off line.
    Given the resources I am sure Google could have it done by this summer. I could probably have it done this summer.
    Also is web 2.0 just the current blend of dynamic online content. Should web 3.0 be the web applications off line?
    Just my 2 cents...

  5. Obviously Google has resources enough to make a big thing with this... but there's something that's never dependant on the software maker: bandwith. It relies on user's own one and on that precise moment... So, we can go offline caching things, but we can't cache everything possible. That, even Google can't workaround.