Dojo Offline Beta Released: Toolkit for Offline Web Apps

Today we released the Dojo Offline Toolkit. Dojo Offline is a free, open source toolkit that makes it easy for web applications to work offline. It consists of two pieces: a JavaScript library bundled with your web page and a small (~300K) cross-platform, cross-browser download that helps to cache your web application's user-interface for use offline.

This was such a crazy application for me to work on. I've been crunching away on the offline problem for years, throwing different things against the wall to see what would stick: AMASS, Dojo Storage, early offline work using Dojo Storage and browser caching tricks, and now Dojo Offline. This project was a serious coding stretch for me; it involved using 6 different languages, 3 of which I don't even know (Perl, NSIS, Bash Shell Scripting) and one in which I'm frankly not very good at (C). Here's the languages it took for me to get this out the door:
  • JavaScript - for Dojo Offline JavaScript library bundled with web page
  • C - for local proxy
  • Java - for server-side portion of Moxie demo app, using servlets and MySQL to create a full syncing example
  • Perl - for Mac OS X installer
  • Bash Shell Scripting - for Mac OS X installer
  • Nullsoft Scriptable Install Script - for Windows installer
It also involved some relatively serious interactions with the Win32 API, Cocoa, and cross-compilation environments. I've gotten lazy doing web programming -- I forgot how damn hard client-side development is, and how slow it can be to develop. It's definently reinforced my belief that moving more of this to the web is the correct thing, just for the ease of QA and distribution.

This project almost didn't happen multiple times -- there were many times in which I thought it would be impossible and got pretty close to giving up, but the thought of not delivering kept me going. What we have up is a beta -- there are bugs and glitches for some edge cases, but the functionality is there and the core use cases work well. We now just have to drive the beta forward and keep iterating to press the bugs out across more and more tested PCs. Very special thanks to SitePen (Dylan Schiemann and Carrie Sackett in particular) -- without their support the Dojo Offline Toolkit would never have happened.

I'm really going to need the help of the wider community to pitch this tent. Dojo Offline is really just a scrappy open source project, and like any low-to-the-ground open source project it's resource constrained. What we really need is one or two more really good C-programmers. With that the sky would be the limit.

Ok, now I'm going to go sleep for a very long time :)

Comments

Jace said…
A Linux version would round this off just great.

--Jace
Chris Holland said…
Mad Props to you Brad :)

Enjoy your well-earned rest, hopefully the community will pick it up from here.

i'm working on a narrowly-scoped JS library aimed at making it easy to inject data contained in javascript objects (simple data beans, and/or collections of data beans) into various portions of an HTML document, looking to release it open-source. i'll have stuff up at ibbydev.blogspot.com

There are a bunch of use cases for this when working with DWR, but also anywhere you've got data you want to get into your DOM.

I'm trying to stick to pure DOM-compliant methods too, in hopes it'll be forward-compatible with documents that go xhtml strict in application/xhtml+xml

BTW, we really could use a guy like you here, but i'm not sure we can top the awesomeness of working with Engelbart :)

Anyway, keep-on kickin'-@ss! :)
Unknown said…
Hey Brad,

This looks great and I already have a few uses planned for it. I am hoping to spend some more time checking it out this weekend.