Documentation

Publiez une PWA avec un assistant IA.

PwaNow fournit une skill que tout assistant de code IA peut suivre de bout en bout — créer le site, envoyer la build et vérifier qu'elle est réellement en ligne — via le serveur MCP hébergé de PwaNow. Rien à installer localement.

Donnez un seul prompt à votre agent

La plupart des assistants de code IA — Claude Code, Claude, Cursor et similaires — peuvent récupérer une URL et la suivre comme des instructions. Pointez le vôtre vers la skill et décrivez ce qu'il faut construire :

Prompt

Build a PWA with a few games, including flappy bird. Deploy it on PwaNow using this skill: https://pwanow.com/skill.md

La skill est autonome : elle indique à l'agent l'endpoint MCP auquel se connecter, comment s'authentifier, comment compresser et envoyer une build (le serveur MCP n'a pas accès à votre système de fichiers local, cette étape reste donc à la charge de votre agent), et de ne pas déclarer de succès tant que le site en ligne n'a pas réellement passé une vérification.

Ajoutez un backend pour vos données

PwaNow héberge la build statique — les données propres de votre PWA (comptes, enregistrements, tout ce qu'elle doit stocker) vivent où vous les dirigez. Dites à votre agent lequel brancher :

Prompt — Firebase

Build a PWA that [describe what it does]. Use Firebase for the
backend — Firestore to store data and Firebase Authentication for
sign-in. Create a new Firebase project, wire the client SDK into the
app, and add security rules that scope data per user. Deploy it on
PwaNow using this skill: https://pwanow.com/skill.md

Prompt — Supabase

Build a PWA that [describe what it does]. Use Supabase for the
backend — Postgres for data and Supabase Auth for sign-in, with Row
Level Security policies so each user only sees their own data. Deploy
it on PwaNow using this skill: https://pwanow.com/skill.md

PwaNow n'exécute pas de code côté serveur — il se contente de servir les fichiers statiques que vous envoyez. Firebase et Supabase sont conçus pour ça : leurs SDK client parlent directement au backend, et des règles de sécurité (pas un serveur que vous hébergez) maintiennent les données cloisonnées par utilisateur.

Avant de commencer

Votre agent a besoin de deux choses de votre part : un compte et une clé pour agir en votre nom.

  1. 1

    Créez un compte

    Gratuit, aucune carte bancaire requise. Inscrivez-vous pour obtenir un tableau de bord.

  2. 2

    Créez une clé API

    Depuis Clés API dans le tableau de bord. Les clés commencent par pwanow_live_… et authentifient les requêtes MCP en votre nom.

  3. 3

    Remettez-la à votre agent

    Collez la clé dans votre prompt ou dans la configuration du client MCP — selon ce que demande la skill.

Ce que fait réellement la skill

Le même cycle de déploiement et de vérification, qu'il soit exécuté par un humain ou un agent.

Crée le site

Appelle create_site avec un nom de sous-domaine (en vérifiant d'abord list_sites pour ne pas dupliquer un site que vous possédez déjà).

Envoie la build

Demande une URL présignée via get_upload_url, puis compresse et envoie votre build elle-même — le serveur MCP ne peut pas accéder à vos fichiers locaux.

Vérifie qu'elle est en ligne

Interroge get_site_status jusqu'à la fin du traitement, puis appelle test_site, qui récupère l'URL réelle et en vérifie le résultat.

Rapporte honnêtement

Ne signale un succès que lorsque test_site renvoie passed: true — et explique quelle vérification a échoué sinon, plutôt que de deviner.

Vous préférez tout configurer vous-même ?

Tout client compatible MCP peut se connecter directement, sans passer par le prompt de la skill.

.mcp.json — Claude Code

{
  "mcpServers": {
    "pwanow": {
      "type": "http",
      "url": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

.claude/settings.local.json — skip the approval prompt

{
  "enabledMcpjsonServers": ["pwanow"]
}

.vscode/mcp.json — VS Code

{
  "servers": {
    "pwanow": {
      "type": "http",
      "url": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

.cursor/mcp.json — Cursor

{
  "mcpServers": {
    "pwanow": {
      "url": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

~/.codeium/windsurf/mcp_config.json — Devin Desktop (formerly Windsurf)

{
  "mcpServers": {
    "pwanow": {
      "serverUrl": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

~/.codex/config.toml — Codex CLI

[mcp_servers.pwanow]
url = "https://api.pwanow.com/mcp"
http_headers = { "Authorization" = "Bearer <your pwanow_live_… API key>" }

~/.gemini/config/mcp_config.json — Antigravity

{
  "mcpServers": {
    "pwanow": {
      "serverUrl": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}
  • create_site — réserve un sous-domaine pour un nouveau site
  • list_sites — affiche tout ce que vous possédez déjà avant d'en créer un doublon
  • get_upload_url — obtient une URL présignée pour envoyer une build compressée
  • get_site_status — vérifie le statut d'un site et son URL en ligne
  • test_site — récupère le site en ligne et indique ce qui fonctionne réellement
  • delete_site — permanent ; les agents suivant la skill confirment d'abord avec vous

Utiliser Claude Code

Enregistrez la skill localement plutôt que d'y faire un lien, si vous préférez qu'elle soit toujours disponible.

Terminal — macOS / Linux

mkdir -p .claude/skills/pwanow
curl -o .claude/skills/pwanow/SKILL.md https://pwanow.com/skill.md

PowerShell — Windows

mkdir .claude\skills\pwanow -Force
Invoke-WebRequest -Uri https://pwanow.com/skill.md -OutFile .claude\skills\pwanow\SKILL.md

Demandez ensuite simplement à Claude Code de déployer votre projet sur PwaNow — il récupérera automatiquement la skill et demandera votre clé API la première fois qu'il en aura besoin.