Web phone, web-based, built on web tech, the cloud - all tweak a little niggling truth we all know: The web doesnt work offline. When we have no connection it may as well not exist.
And despite proliferation of wifi and 3/4g, a connected mobile device is limited at least some of the time. Perhaps most of the time.
Burning books, decay, rot and entropy - we fear loss of knowledge, having our nice things taken away. stashes, mix tapes, post-its, vhs, browser print button
Apps have emerged to satisfy our need to hoard for bad times. They encapsulate, impose a simplified mental model, but most importantly they are here, not there. Apps are close by, always available, (or perceived as such)
We have apps. We never "have" the web; the web is there, not here.
We need to expand our definition of the web, or change the vocabulary we use to embrace offline, to faciliate the hoarding and rainy days
save for later, reading list, bookmarks, installs, downloads, caching: all addressing the offline problem
but, ServiceWorkers!
Service workers provide a mechanism, but most of the web wont implement. Thy require work by author/developer, explicit intention for some piece of the web to work offline. Not an answer for 99% of the web. We need to develop a framework for offline web. we need a default, fallback mechanism - in the browser.
- discovery - via search, browser.
- URLs and origins - no change.
- WebApp manifest, app manifests - explicitly override defaults
- Implicit collections ("apps") by origin. Start with normal resource caching/expiry header Preview offline, visual and space on disk. * UI to exclude some resources? Add pages, sync interval, priority (disk usage)
- Snapshot capability (frozen in time)
Implemented as default serviceworker? Always on or quickly toggled per-site.
offline? (no usable connection, or explicit user choice) use stored content from last visit/sync. Indicate offline state - date of last sync.
online: load from network and update offline resources
The same framework can work for apps, for gaia, for firefox OS. All apps can be hosted apps - but only if the offline problem is adequately solved. Permissions by origin, not by delivery/install method.
Apps vs Web Resources (URLs) bogus distinction. App = site - a collection of pages or functionality.
- Packaged app (optionally pre-installed with elevated permissions - certified app)
- Hosted app: Developer has created a manifest and explicit provisions to allow this site to be "installed" and experienced as its own unit, outside the browser
- The Rest of the Web: Bookmark. Print, Save Page, Offline-mode. Also, Pinned Apps
- How to manage storage space without imposing micro-management on the user
- Clear visibility into freshness and completeness of content viewed offline.
- Syncing, caching and cache expiry is historically a difficult technical problem to solve
- How to accommodate different device capabilities: how can web content communicate which version of a site or individual resource should be delivered and stored for a given device or client.
- Batching updates/sync, managing network usage.
- How to handle time-sensitive, no-cache content or other awkward-to-offline content
"what value does your idea deliver"
Without a pervasive offline capability, the web is an incomplete solution to user's needs. Intuitive offline by default completes the circle, allowing use of the web wherever and whenever.
"what technological advantage will your idea deliver and why is this important?"
The web but offline restores the web as the primary origin for content and applications. It complements Pinned Apps and other proposals. It facilitates the cloud-based OS, it gives back meaning to URLs for mobile and all the addressability and interoperability they provide. A store and sync model also creates new opportunities for sharing and updating content w/o network (e.g. Cuban weekly packet/sneaker net, p2p transports) as offline content can be side-loaded.
"why would someone invest time or pay money for this idea"
A device or application that provides these capabilities is not bounded by the limitations of an app store. It is as big as the web. It delivers on the promise of the web being everywhere all the time. It provides a consistent, familiar framework for static, dynamic, free and paid content. It puts the user back in control of "their" content. The idea is readily copyable (as it should be) but only Mozilla has the incentive to bypass app store economies and create the thing the user needs.