VibeAppGuard
Comment ça marcheCe qu'on vérifieTarifsDocs
ConnexionVérifier mon app
Comment ça marcheCe qu'on vérifieTarifsDocs
Vérifier mon app
VibeAppGuard

Le check de mise en production pour les apps construites avec l'IA. Sache si ton app est sûre, rapide et complète avant l'arrivée des vrais utilisateurs.

Produit

  • Ce qu'on vérifie
  • Tarifs
  • Documentation
  • API

Entreprise

  • Conditions générales
  • Politique de confidentialité
  • Mentions légales
  • Contact

© 2026 VibeAppGuard · Tous droits réservés.

Documentation

Tout ce qu'il faut pour vérifier ton domaine, lire un rapport et brancher VibeAppGuard à ton flux de travail.

  • Démarrer
  • Vérifier ton domaine
  • Lire un rapport
  • Tests de charge
  • API publique
  • Webhooks
  • Exemple CI/CD

Démarrer

Crée un compte, ajoute l'URL de ton app en ligne et lance un check. Les vérifications passives tournent tout de suite sur toute URL publique. Les vérifications actives et les tests de charge exigent la vérification du domaine.

Un check prend une minute environ. Tu reçois un email quand il est terminé, et le rapport reste disponible dans ton tableau de bord.

Vérifier ton domaine

La vérification prouve que tu contrôles le domaine. Choisis une des trois méthodes ; ton jeton personnel est affiché sur la page du projet.

1. Fichier de vérification

Sers un fichier texte à ce chemin contenant exactement ton jeton :

https://your-app.com/.well-known/launchcheck-verify.txt
launchcheck-verify=3f9a…your-token

2. Enregistrement DNS TXT

Ajoute un enregistrement TXT sur ton domaine (ou sur le sous-domaine _launchcheck) avec ton jeton comme valeur. La propagation DNS peut prendre quelques minutes.

your-app.com.   TXT   "launchcheck-verify=3f9a…your-token"
# or
_launchcheck.your-app.com.   TXT   "launchcheck-verify=3f9a…your-token"

3. Balise meta

Ajoute cette balise dans le <head> de ta page d'accueil :

<meta name="launchcheck-verify" content="launchcheck-verify=3f9a…your-token" />

Clique ensuite sur « Vérifier » sur la page du projet. La vérification est recontrôlée avant chaque test actif.

Lire un rapport

Le score va de 0 à 100 et le verdict le résume : Prêt (85 ou plus sans problème de priorité haute), Prudence (60 à 84 ou au moins un problème de priorité haute) et Pas prêt (moins de 60 ou un problème critique).

Chaque problème a une gravité, une explication en langage clair, les preuves trouvées et un prompt de correction. Marque un problème comme corrigé ou ignoré ; les problèmes ignorés restent masqués dans les prochains checks de la même app.

Critique
Données ou argent en danger maintenant (secret exposé, base publique, .env fuité). À corriger avant tout.
Haute
Les visiteurs sont touchés ou tu perds de l'argent (paiements en mode test, erreurs sous charge, pas de titre).
Moyenne
Dégrade l'expérience ou la confiance (serveur lent, liens cassés, politique manquante).
Basse / Info
Bonne hygiène et petits détails.

Tests de charge

Un test de charge envoie des visiteurs simulés sur ton app pendant une durée choisie et mesure les temps de réponse et les erreurs. Commence avec 10 à 25 visiteurs pendant 30 secondes, puis augmente.

Ordre de grandeur : 50 visiteurs simultanés, c'est à peu près ce qu'un site de contenu voit avec 75 000 visites par jour. Le résultat est un verdict (a tenu, a ralenti, a cédé) plus des recommandations avec prompts de correction.

Les tests tournent par défaut sur notre moteur intégré. Les tests plus gros peuvent être routés vers des prestataires externes (Grafana Cloud k6, loader.io) quand ils sont configurés.

API publique

Disponible sur les plans Pro et Agence. Crée une clé dans Paramètres → Clés API et envoie-la en jeton Bearer. URL de base :

https://vibeappguard.com/api/v1

Authentification

Authorization: Bearer lc_xxxxxxxxxxxxxxxxxxxxxxxx

Endpoints

  • GET
    /api/v1/projects

    Liste tes apps.

  • POST
    /api/v1/projects

    Ajoute une app. Corps : '{ name, url }'. Renvoie le jeton de vérification.

  • GET
    /api/v1/checks?projectId=…

    Liste les checks.

  • POST
    /api/v1/checks

    Lance un check. Corps : '{ projectId, modules?, load?: { virtualUsers, durationSec }, wait?: boolean }'. Avec wait: true, la requête attend que le rapport soit prêt.

  • GET
    /api/v1/checks/{id}

    Récupère un check avec ses problèmes.

  • POST
    /api/v1/load-tests

    Lance un test de charge seul. Corps : '{ projectId, virtualUsers, durationSec, rampUpSec?, region?, scenario?, wait? }'.

  • GET
    /api/v1/load-tests/{id}

    Récupère un test de charge.

Limite : 120 requêtes par minute et par compte. Les erreurs reviennent sous la forme { error: { code, message } }.

Exemple : lancer un check et attendre le résultat

curl
curl -X POST https://vibeappguard.com/api/v1/checks \
  -H "Authorization: Bearer $LAUNCHCHECK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "projectId": "clx…", "modules": ["SECURITY","PERFORMANCE","FLOWS","SEO","LEGAL"], "wait": true }'

# → 200 { "data": { "id": "…", "score": 78, "verdict": "RISKY", "findings": [ … ] } }

Webhooks

Enregistre une URL HTTPS dans Paramètres → Webhooks. Nous envoyons un POST JSON pour les événements check.completed, check.failed, load.completed et alert.regression.

Chaque requête porte l'en-tête x-launchcheck-signature contenant le HMAC-SHA256 du corps brut avec ton secret de webhook. Vérifie-le avant de faire confiance au contenu :

verify.js (Node.js)
import { createHmac, timingSafeEqual } from "node:crypto";

export function verifyLaunchCheck(rawBody, signatureHeader, secret) {
  const expected = "sha256=" + createHmac("sha256", secret).update(rawBody).digest("hex");
  return timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader ?? ""));
}

// Payload shape
// { "event": "check.completed", "createdAt": "…", "data": { "checkId", "projectId", "score", "verdict", "counts", "shareUrl" } }

Exemple CI/CD (GitHub Actions)

Lance un check après chaque déploiement en production et fais échouer le job quand l'app n'est pas prête. Le verdict est dans la réponse, donc c'est toi qui décides ce qui bloque ton pipeline.

.github/workflows/launch-check.yml
name: VibeAppGuard
on:
  deployment_status:
jobs:
  readiness:
    if: github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'Production'
    runs-on: ubuntu-latest
    steps:
      - name: Run VibeAppGuard and wait for the report
        env:
          LAUNCHCHECK_API_KEY: ${{ secrets.LAUNCHCHECK_API_KEY }}
          PROJECT_ID: ${{ vars.LAUNCHCHECK_PROJECT_ID }}
        run: |
          RESPONSE=$(curl -sS -X POST https://vibeappguard.com/api/v1/checks \
            -H "Authorization: Bearer $LAUNCHCHECK_API_KEY" \
            -H "Content-Type: application/json" \
            -d "{\"projectId\":\"$PROJECT_ID\",\"wait\":true}")
          echo "$RESPONSE" | jq '.data | {score, verdict}'
          VERDICT=$(echo "$RESPONSE" | jq -r '.data.verdict')
          if [ "$VERDICT" = "NOT_READY" ]; then
            echo "::error::VibeAppGuard verdict is NOT_READY"
            echo "$RESPONSE" | jq -r '.data.findings[] | select(.severity=="CRITICAL" or .severity=="HIGH") | "- [\(.severity)] \(.title)"'
            exit 1
          fi