THE CWA STANDARD

Containerized Web Apps

A standard for packaging web applications as self-contained, native-capable apps distributed through the LoadSites container.

What is CWA?

CWA (Containerized Web Apps) is an open standard for building web applications that run inside the LoadSites native container. A CWA app is a standard HTML, CSS, and JavaScript web application — the same technologies used to build websites — packaged as a ZIP bundle and described by a JSON manifest hosted on your domain.

CWA content is rendered using the platform's native WebView component (WKWebView on iOS, Android WebView on Android) — the same rendering engines used by Safari and Chrome. The container provides a JavaScript bridge (window.LoadSites) that gives your web code permission-gated access to device APIs: camera, haptics, biometrics, push notifications, and more.

CWA bundles contain only static web assets. No native executable code, bytecode, or binaries. All JavaScript runs within the WebView sandbox using the system's built-in JavaScript engine.

How It Works

  1. Author a manifest — Create a loadsites.app.manifest JSON file on your domain that describes your app (name, icon, ZIP location, permissions).
  2. Package your app — Bundle your web app into a ZIP file. The container extracts it and serves it locally on the device.
  3. Users install via LoadSites — Users enter your domain in the LoadSites app. The container fetches the manifest, downloads the ZIP, and creates a home-screen card.
  4. App runs with native APIs — Your code accesses native features through window.LoadSites. The bridge is guaranteed available before your scripts execute.

Key Features

📷

Camera & Gallery

Take photos or pick from the gallery. Get images as base64 data URIs.

🔒

Biometrics

Authenticate users with Face ID, Touch ID, or fingerprint.

🔔

Push Notifications

Send real-time notifications via the LoadSites Cloud relay service.

📳

Haptics

Trigger vibration, impact feedback, and notification haptics.

📍

Geolocation

Get the device's GPS position or watch for location changes.

💾

Persistent Storage

Read and write key-value data scoped to your app, persisted across sessions.

🔗

Native Share

Open the system share sheet with custom text, title, and URL.

🌐

Network Status

Detect connectivity changes and current network type in real time.

📦

Multi-App Manifests

Serve multiple apps from a single domain. Users pick which to install.

Architecture

  Your Domain                          User's Device
 ┌──────────────────┐                ┌─────────────────────────┐
 │ loadsites.app.   │   manifest     │  LoadSites Container    │
 │ manifest (JSON)  │ ─────────────► │                         │
 │                  │                │  WKWebView / WebView    │
 │ app.zip          │   download     │  ┌───────────────────┐  │
 │ (HTML/CSS/JS)    │ ─────────────► │  │ Your HTML/CSS/JS  │  │
 │                  │                │  │ (standard web      │  │
 │                  │                │  │  content in the    │  │
 │                  │                │  │  system WebView)   │  │
 │                  │                │  │                    │  │
 │                  │                │  │ window.LoadSites   │  │
 │                  │                │  │ (JS bridge API)    │  │
 │                  │                │  └───────────────────┘  │
 └──────────────────┘                └─────────────────────────┘

CWA vs PWA

CWA complements Progressive Web Apps (PWAs) rather than replacing them. While PWAs run in the browser with limited device access, CWA apps run inside a native container with full bridge APIs. The same web app can be both a PWA and a CWA.

Read the full comparison →

Licensing

Most CWA features are free to use. Push notifications require a LoadSites license (Basic tier or higher) because they rely on the LoadSites Cloud relay infrastructure. See the Notifications page for tier details.

Platform Compliance

CWA is designed to comply with Apple App Store and Google Play Store policies for apps that render web content. All content is standard HTML/CSS/JS rendered in the platform's native WebView (WebKit on iOS). No native code is downloaded or executed. The bridge API is permission-gated, sandboxed, and does not expose raw platform APIs to loaded content.

Read the full compliance documentation →