Simon Gilligan has created Applebox, a consumer storefront that looks just like iTunes, but instead of Cocoa, it is a serverless Ajax application:

Ok, time to geek out and talk about the technology behind APPLEBOX. Whilst we think our model for the local DVD store is a winner (weâ€™ve reduced store overheads, embraced the Internet and kept a strong sense of local community even from the web) we also completely love the technology! Forget Rails, weâ€™ve got a J2EE web stack that we think is second to none. Check it out:

Our architecture is SOA (Service Oriented)
All our application calls are SOAP, which from the ground up creates an API we will give public exposure to at a later date. For example this call returns a movie profile.

Our storefront is Serverless AJAX
The Web 2.0 movement has swept AJAX into the mainstream. We take that one step further and deliver our complete application as Serverless AJAX that makes stateless SOAP calls to our backend.

Our development process is Model Driven (MDA)
Rails gives the Ruby community productivity. For us, MDA gives J2EE a similar shot in the arm. Our complete stack with stubs for all business methods and web services, a default CRUD service layer, and all the J2EE XML config files are generated from a UML model. We can iterate from UML through to database and service layers in a matter of minutes. The MDA generator we we use is AndroMDA.

Ziggy:
My take on Serverless AJAX is that it’s a technique of delivering a web application client without the use of a serverside architecture. Delivery is via plain ‘ol static html and JavaScript. No php/asp/cfm/jsp. It then makes independant AJAX data calls to a set of application services. The app services require a server architecture, but that can be focused on purely data responses and not burdened with UI issues (and so are also reusable by any application client).
.
BuzzWorkers:
Thanks!
.
tastypopsicle:
You’re right! I don’t support Safari – yet! My app services return SOAP XML documents, and so I use XPATH to query the response and pull out the data I need. When I wrote APPLEBOX, Safari (version 2) didn’t offer XPATH. Safari 3 now does, so once I get the time, I’ll be revisiting my data/service layer to check it’s all compatible. With Safari’s profile on the increase, I look forward to supporting it fully.
.
Schill:
That’s great news. The idea is the performance hit is felt up front, when the app framework and most of the UI modules are downloaded. Once loaded, iframes are shuffled forward to achieve the app navigation, and the data is retrieved by a SOAP call. With the increasing size of JavaScript frameworks these days (prototype/YUI/dojo, even the APPLEBOX framework), once it’s loaded – that’s it! Each page navigation doesn’t require the framework be turfed (on page exit), and then reloaded (on page entry) all over again. All UI widgets persist, so they also, don’t need to be rebuilt. It’s possible to build a Rich Internet App without it becoming painfully slow to get around.
.
.
There’s more about the architecture here: http://applebox.com.au/blog/2007/12/mda-soa-and-serverless-ajax-our-web-stack-defined/
.
Cheers,
Simon Gilligan
APPLEBOX Founder