Vibe Prospecting
채팅 안에서 전문적인 영업 탐색, 50개 이상 B2B 데이터 소스로 리드 리스트·계정 조사·결정권자 찾기
Le Mot du Chef와 함께 구글 리뷰에 차분하고 전문적인 답변을 작성하세요 부당한 리뷰가 대신 말하게 하지 마세요
Le Mot du Chef rédige avec vous des réponses posées et professionnelles à vos avis Google. Ne laissez plus un avis injuste parler à votre place.
마케팅TypeScript · HTMLGitHub @zefparis온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Réponses intelligentes aux avis Google pour restaurateurs indépendants.
Front statique sur lemotduchef.fr (Vercel), API sur api.lemotduchef.fr
(serveur X3 derrière un tunnel Cloudflare).
public/ — frontend statique (HTML/CSS/JS sans framework, build build.mjs).server/ — API Fastify : Better Auth (sessions serveur en base, révocables),
isolation par restaurant via memberships, protection CSRF (en-tête
x-lemotduchef-client + contrôle d'origine), rate-limit, quotas côté serveur.# PostgreSQL de dev (port 5445 pour ne pas entrer en conflit)
docker run -d --name lmc-pg -e POSTGRES_USER=lemotduchef \
-e POSTGRES_PASSWORD=lemotduchef -e POSTGRES_DB=lemotduchef \
-p 127.0.0.1:5445:5432 postgres:17-alpine
cd server && npm install
cp .env.example .env # ou exporter les variables
npm run dev # http://127.0.0.1:3500 — sert aussi public/
npm test # 35 tests d'intégration (LLM mocké, SMTP=log)
En dev, LLM_PROVIDER=mock (défaut hors production) produit trois variantes
plausibles sans clé API, et SMTP_HOST=log journalise les emails au lieu de
les envoyer. Le mode mock est refusé en production.
Répondre à un avis. Le restaurateur colle l'avis (texte, note 1–5, prénom
affiché, date de visite), précise le contexte pour les notes ≤ 3 (jamais venu,
salle complète, attente annoncée au client à son arrivée, plat conforme,
problème réel, prix affichés, allergie/santé, autre). Le serveur génère 3 variantes via un LLM
(Anthropic, LLM_PROVIDER/ANTHROPIC_API_KEY/LLM_MODEL, timeout, tokens
journalisés) sous un prompt système versionné (server/src/llm/prompt.ts) :
réponse adressée aux futurs lecteurs, toujours courtoise, jamais d'accusation
ni de menace ni de donnée personnelle, sujets santé traités sans reconnaissance
de responsabilité, un point fort rappelé, signature du profil, 50–120 mots
(30–70 pour un avis positif), formulations distinctes des 10 dernières
réponses. Chaque variante est validée avant d'être renvoyée ; l'utilisateur
peut l'éditer, la copier, ouvrir sa fiche Google et cocher « publiée ».
Avis suspect. Indicateurs calculés côté serveur (1 étoile sans texte, hors sujet, autre établissement cité, propos injurieux) → badge + guide de signalement honnête : motif Google conseillé, texte prêt à copier, lien d'aide, et rappel que Google ne retire que les avis contraires à ses règles.
Collecte d'avis. À partir du lien « laisser un avis » de la fiche Google : chevalet de table et encart d'addition en PDF avec QR code (pdf-lib + qrcode), texte personnalisable. Le QR mène tous les clients à Google : aucun filtre de satisfaction, aucune contrepartie — affirmé dans l'interface.
Profil restaurant (onboarding après inscription) : nom, ville, type de cuisine, points forts, infos pratiques, URL Google Maps validée, email et téléphone de contact réclamations — plus le réglage « Mon style » appliqué à chaque génération : ton (sobre / chaleureux / direct), vouvoiement ou tutoiement du client, signature (« Marc, chef et propriétaire », réponse au « je » si un prénom est signé) et expressions à éviter.
Offres. Gratuit : FREE_MONTHLY_REPLIES générations/mois (défaut 5, sans
carte), historique FREE_HISTORY_DAYS jours. Pro : générations illimitées,
chevalets/encarts, historique complet. Prix relus depuis l'API Stripe
(STRIPE_PRICE_PRO_MONTHLY/_YEARLY), aucun montant en dur, quota appliqué
côté serveur, webhooks signés et idempotents comme source de vérité.
RGPD. Texte de l'avis, prénom d'auteur et variantes purgés après
REVIEW_RETENTION_MONTHS mois (défaut 12) — seules la note, le contexte et la
réponse publiée sont conservés. Le restaurateur est responsable de traitement,
le service sous-traitant (clause art. 28 dans les CGV/confidentialité). Export
compte complet et suppression en cascade avec révocation des sessions.
Back-office exploitant sur /admin : réservé aux emails de ADMIN_EMAILS
(vérifiés côté serveur à chaque requête). Statistiques (comptes, utilisateurs,
inscriptions 7/30 j, avis, générations du mois, abonnés payants et MRR), listes
de comptes et d'utilisateurs (métadonnées uniquement — jamais le contenu des
avis ni des réponses), suspension/réactivation avec révocation des sessions,
suppression de compte, interrupteur d'inscription stocké en base, création de
compte par invitation, journal d'audit.
V2 préparée, non codée : server/src/sources/index.ts définit
ReviewSource (manual | google) pour brancher plus tard l'API Google
Business Profile (OAuth, lecture des avis, publication des réponses).
Voir DEPLOIEMENT-X3.md. En résumé : docker compose build && up -d sur X3
(API sur 127.0.0.1:3500, tunnel Cloudflare api.lemotduchef.fr), front sur
Vercel (build npm run build, output dist, env VITE_API_URL + LEGAL_*).
cd server && npm run typecheck && npm run build && npm test
cd .. && npm run build # dist/ frontend
node --check public/app.js