pwa-portal-applisted
Install: claude install-skill jacob-scheatzle/claude-pwa-portal
# PWA Portal App Builder
This skill builds child PWAs ("apps") that live inside a self-hosted **PWA Portal**. The portal hosts multiple small-business apps under one origin; each app is a folder of HTML/CSS/JS plus a `portal.json` manifest, packaged as a `.zip` and uploaded.
The portal provides shared services that apps call from JavaScript via a built-in SDK: **PDF generation, email, per-user/per-app storage, and user info**.
## When to use this skill
Use when the user asks you to:
- Create a new app for their portal ("make me a [X] app for my portal", "build a quote tool", "I need a contact form")
- Modify or extend an app you previously built (re-package and re-upload)
- Package or upload an existing app folder
**Don't use** if the user is asking about the portal itself (admin UI, settings, auth) — that's the host application, not a child app you're building.
## First-time setup: connect to a portal
You upload finished apps to a running **PWA Portal**. There are two ways to
connect — pick whichever the user has set up.
### Option A — MCP connector (recommended)
If the portal has its MCP server (on by default in the Docker image; an admin
can disable it with `MCP_ENABLED=false` — see the portal's `docs/mcp.md`), you
manage apps as **tool calls** with no
config file. First check whether a portal MCP connection is already available
(look for `whoami` / `list_apps` / `upload_app` tools). If it is, use it — and
confirm with `whoami` that the token is an admin.
If it's