Authensor

SafeClaw as a PWA: Install It Like a Native App

Authensor Team · 2026-02-13

SafeClaw as a PWA: Install It Like a Native App

The SafeClaw dashboard started as a web page served by a local daemon. It worked, but it felt like a second-class citizen on your desktop. You had to remember the URL, find the right browser tab, and keep it open to receive notifications. We wanted SafeClaw to feel like a native app — without actually building one.

Progressive Web Apps gave us exactly that.

What You Get

When you install SafeClaw as a PWA, it behaves like a native application:

Why PWA Over Electron

We considered Electron. It would have given us native-level capabilities and a familiar distribution model. But Electron apps are heavy — 100MB+ for the runtime alone. SafeClaw's entire footprint is designed to be minimal. Adding a Chromium bundle would have violated our philosophy.

We also considered Tauri, which uses the system webview and has a much smaller footprint. It's an excellent framework. But it would have added a build-time dependency on Rust and a platform-specific distribution pipeline. For a tool that's already running a web server locally, a PWA was the zero-overhead option.

The PWA approach means the dashboard is the same code whether you access it as a tab in your browser or as an installed app. One codebase, one deployment target, zero platform-specific code.

The Service Worker

SafeClaw's service worker handles three responsibilities:

Caching — The dashboard's HTML, CSS, JavaScript, and static assets are cached on first load. Subsequent launches load from cache instantly while checking for updates in the background. The cache strategy is stale-while-revalidate for assets and network-first for API data. Background Sync — If you approve an escalation while the daemon connection is temporarily interrupted, the approval is queued by the service worker and sent when the connection resumes. This prevents the frustrating experience of tapping "approve" and having nothing happen. Push Notifications — The service worker receives push events from SafeClaw's daemon and displays native OS notifications. Notification payloads are compact — just enough data to render the notification and deep-link to the correct dashboard view.

Mobile Experience

The PWA is fully responsive. On mobile devices, it adapts to the smaller screen with a simplified layout optimized for the most common mobile action: reviewing and responding to escalations.

The swipe-to-approve feature we discussed in a previous post is part of the PWA's mobile experience. Combined with push notifications, it creates a seamless flow: notification arrives, tap to open, swipe to approve, done.

Installing SafeClaw as a PWA

Installing is straightforward. Open the SafeClaw dashboard in Chrome, Edge, or Safari. You'll see an install prompt (or use the browser's "Install App" option). On mobile, use "Add to Home Screen."

After installation, SafeClaw appears in your app launcher alongside your other applications. On macOS, it shows up in Spotlight. On Windows, it appears in the Start menu. On mobile, it's on your home screen.

Detailed installation instructions for each platform are in our documentation. The PWA implementation, including the service worker and manifest, is on GitHub.

The PWA approach lets us deliver a native app experience with zero additional dependencies. It's the right tool for the job — lightweight, universal, and always up to date.