Install Hookbase as an App
Hookbase is now an installable PWA: a standalone dashboard window, home-screen icon, and jump-list shortcuts, plus a branded offline shell that deliberately never caches stale webhook or delivery data.
Hookbase On Your Home Screen
You can now install Hookbase as an app. On Chrome, Edge, Android, and iOS Safari, add it to your home screen or desktop and it opens in its own window — no address bar, no browser tabs, just the dashboard.
This is a modest change. Hookbase is still the same web app, and it still needs a connection to show you live delivery data. But an installed shell is a nicer place to live when you're checking on webhooks a dozen times a day, and it let us make one deliberate decision about offline behavior that's worth explaining.
What You Get
Install Hookbase and you get a standalone PWA — a real app icon on your device that launches straight into /dashboard with no browser chrome.
- Standalone window. The manifest declares
display: standaloneandstart_url: /dashboard, so launching the icon drops you at the dashboard instead of the marketing site. - App icon. A maskable icon set for Android's adaptive shapes, plus an Apple touch icon for iOS home screens.
- Jump-list shortcuts. Long-press the icon on Android, or right-click it on desktop, and you get two shortcuts: Dashboard and Analytics. They deep-link straight into those pages.
- Theme color
#6366f1. The install chrome and splash use Hookbase's indigo, so it looks like the app and not a generic browser bookmark.
That's the whole surface. It's an installable shell, not a separate native build — same code, same auth, same everything, just in its own window.
The Offline Shell — And Why It Stays Dumb
Here's the part we thought about the most.
Hookbase ships a small, hand-written service worker (public/sw.js — no build tooling, ~100 lines you can read). It precaches a branded /offline page and static assets. If a navigation fails because you're disconnected, you get the Hookbase offline screen instead of the browser's dinosaur.
What the service worker does not do is cache any live data:
- API and auth traffic is never cached. Anything under
/api/or/auth/, and anything cross-origin (includingapi.hookbase.app), goes straight to the network. Non-GET requests are left untouched entirely. - Navigations are network-first. When you're online, you always get a fresh page. The cache is only a fallback for when the network isn't there.
- Only static assets get cached — JS, CSS, fonts, icons — with stale-while-revalidate.
This was a design decision, not a limitation we ran out of time to fix. A webhook dashboard is an operational tool. Stale delivery counts, a cached "all green" from ten minutes ago, an event list that's silently frozen — those don't just fail to help, they actively mislead you during the exact moment you're relying on them. So the rule is simple: online, you get fresh data or you get nothing; offline, you get a clear "you're offline" state, never old numbers dressed up as current ones.
The offline page says exactly that: "Hookbase needs a connection to load live webhook data." No fake dashboard, no ghost metrics.
If you want offline-driven recovery workflows, that already exists — from an agent, not a cache. See the MCP tools for webhook recovery.
How To Install
Chrome / Edge / Android. An install icon appears in the address bar. Click it and confirm. We also show a dismissible Install Hookbase prompt inside the dashboard that triggers the same native flow — dismiss it once and it stays gone.
iOS Safari. Safari has no install prompt event, so there's no button we can wire up. Instead, tap the Share button and choose Add to Home Screen. The in-app prompt shows these steps on iOS so you're not left guessing.
Once installed, the app detects standalone mode and hides the install prompt — you won't be nagged to install something you already have.
Where This Goes
This is a small, honest first step: an installable shell with a graceful offline state and a firm rule against showing stale data. It doesn't try to be an offline-capable data app, because a webhook relay shouldn't pretend it can operate without a connection.
What might follow — no promises — is richer install polish like screenshots in the manifest for a nicer install card, and, further out, push-based delivery alerts so a failing route could notify you on your phone even when the app is closed. We have not shipped push, and we won't until we're confident the alerts are accurate enough to trust. Until then, install the shell, pin it wherever you keep the tools you actually open, and keep an eye on your webhooks from /dashboard.