At Roche we recently delivered HTML5 application
Targetted only for modern browsers
To support Offline mode we brought whole application to client-side.
Node.js on server-side synchronizes the clients and saves data to physical database (mongodb)
Minimalistic client-server communication based on sockets (Socket.IO)
Single-page application. Browser history is handled with HTML5 History API
Data is stored in browser's localStorage with simple id/hash values
Data manipulation is done with evented database engine written in JavaScript, taken in full to the client-side
All HTML templates are written in JavaScript, also taken in full to client-side
Server just backups the data and synchronizes clients if needed.
Final JavaScript file for client consists of 303 modules from 19 packages
It's CommonJS/NodeJS style modules bundled for browser with modules-webmake
Concatenated file is over 13 thousand lines long and weights about 450kB
219kB when minified
60kB when minified and gzipped
One average picture on Facebook weights 100-500kB (depends on screen resolution)
Use a spacebar or arrow keys to navigate