Files
office_translator/MARKETING_PLAN.md
sepehr 0a013c679d
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m40s
feat(admin): canaux IA par palier (z.ai/DeepSeek directs), emails generes par IA, reductions Stripe
- Chaque modele d'un palier devient une route {canal, modele} : openrouter,
  deepseek direct, zhipu (z.ai, nouveau canal), minimax, openai, xai ;
  repli automatique sur la route suivante si la cle manque, compatibilite
  ascendante avec les anciens reglages a chaines
- Page Fournisseurs refondue en sections ; interrupteurs et chaine de
  secours retablis ; tests de connexion avec delai d'attente
- Emails de relance generes par IA (canal au choix, prompt construit depuis
  le plan marketing, HTML sane, RTL arabe/persan, jamais d'envoi automatique)
- Codes promo : validation locale avant Stripe, Coupon+PromotionCode avec
  double plafond, comptage par session (webhook+sync=1 fois), ecriture
  atomique, relier-a-Stripe, suppression, validation publique au checkout
- Page Tarifs : champ code promo (?promo=) avec verification traduite
- Tests : 1357 verts (facturation par palier testee dans le worker,
  point de contact providers/available, promos, generation)
2026-09-05 19:46:33 +02:00

221 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Plan Marketing — Office Translator (Wordly.art)
> Document de référence pour l'agent marketing. Dernière mise à jour : 2026-09-05
>
> **Changements majeurs vs. version du 2026-08-29** (revue complète, vérifiée dans le code)
> 1. **DeepL a été retiré du produit** (commit « DeepL purge ») : le produit vend désormais **6 moteurs** (Google, Google Cloud, OpenRouter éco et premium, OpenAI, Grok/xAI). DeepL ne peut plus être cité comme moteur proposé, seulement comme concurrent. La landing (`pricing-section.tsx`, `faq-section.tsx`) et certains textes de lancement affichent encore DeepL : **à corriger avant publication** (checklist §9).
> 2. L'API expose désormais **107 langues nommées** via `/api/v1/languages` : on peut dire « 107 langues » (ou « plus de 100 ») au lieu de « 60+ ».
> 3. **L'exécution est déléguée à l'agent Hermes** (e-mails, rédaction, reporting) : consignes complètes dans `docs/marketing/instructions-agent-hermes.md`.
>
> **Changements majeurs vs. version du 2026-05-10**
> 1. **Le billing est réellement implémenté** (Stripe : checkout, webhooks, portail, crédits) — la section tarifaire est désormais ancrée sur les plans réels du backend (`models/subscription.py`, `services/pricing_config.py`), plus sur des tiers fictifs.
> 2. **La landing page est fonctionnelle** : sections pricing, FAQ, preuve sociale, capture d'e-mail (waitlist) et analytics (Vercel Analytics) sont déployées dans `office-translator-landing-page/`.
> 3. **Un endpoint public d'inscription** existe : `POST /api/v1/waitlist` (dédoublonné, persisté dans `data/waitlist.json`), compteur `GET /api/v1/waitlist/count`.
> 4. La mention « SOC 2 Compliant » (infondée) a été retirée du footer.
>
> **Alignement code du 2026-08-29** (voir `docs/marketing/PLAN-ALIGNEMENT-CODE.md`) : le PDF est supporté (dont **PDF scannés via OCR Mistral**) et l'ajoutera à tous les supports ; rétention réelle = envois 30 min / résultats ≤ 2 h ; les moteurs vendus sont exactement ceux des plans (`PLANS[plan]["providers"]`, désormais appliqué côté API) ; 100+ langues exposées via `/api/v1/languages`.
---
## 1. Positionnement & Proposition de Valeur
### Le Produit
**Office Translator** (marque **Wordly.art**) est un SaaS de traduction de documents professionnels (Word, Excel, PowerPoint, **PDF — y compris scannés, via OCR**) qui **préserve la mise en forme, les formules, les tableaux, les images et les styles** du document original. L'utilisateur choisit son moteur de traduction par document.
> Nommage : « Office Translator » est le nom du dépôt / nom de travail interne ; **Wordly.art** est la marque publique (domaine de lancement, landing, footer). Le footer de la landing affiche donc « Wordly.art » — c'est intentionnel.
### Accroche unique (USP)
> « Traduit en place. Zéro perte de mise en page. »
Contrairement à Google Translate (qui aplatit le fichier en texte brut) ou à DeepL (formatage limité), le moteur translate *in place* : cellules fusionnées, formules Excel, en-têtes/pieds de page Word, animations PowerPoint restent intacts. Les PDF scannés (pages image) sont récupérés par **OCR Mistral** avant traduction — DeepL et Azure les refusent. Les textes dans les images sont traduits via des modèles vision (plans payants).
### Différenciateurs
| Différenciateur | Détail | Preuve produit |
|---|---|---|
| Préservation du format | Structure préservée (formules, fusions, styles) ; PDF scannés via OCR | openpyxl / python-docx / python-pptx / PyMuPDF + `services/mistral_ocr.py`, tests de réintégration |
| Multi-moteurs (6) | Google, Google Cloud, OpenRouter éco **et** premium, OpenAI, Grok (xAI) — grille appliquée côté API par plan (+ moteur personnalisé en Enterprise) | Choix par document, `PLANS[plan]["providers"]` |
| IA contextuelle | Traduction LLM contextuelle (DeepSeek / Claude / Gemini) sur plans payants | `ai_translation` + `ai_tier` |
| Glossaires techniques | Terminologie personnalisée (CVC, IT, Légal, Médical…) | `routes/glossary_routes.py` |
| 107 langues | 107 langues nommées exposées via `/api/v1/languages` (promesse « plus de 100 » tenue) | `middleware/validation.py` (`LANGUAGE_NAMES`) |
| Confiance | Suppression auto des fichiers (envois 30 min, résultats ≤ 2 h), TLS, jamais utilisé pour l'entraînement | `config.py` (TTLs), docs sécurité |
### Segments cibles (priorisés)
| Segment | Douleur | Taille | Priorité | Message clé |
|---|---|---|---|---|
| **PME internationales** (export, docs commerciaux/techniques récurrents) | Traducteurs humains chers et lents, formats cassés | Grand | **P1** | « Le coût par page, sans casser le format » |
| **Agences de traduction** (productivité) | Revue manuelle des mises en page, marges écrasées | Moyen | **P1** | « 6 moteurs au choix, glossaires partagés, 5 sièges » |
| **Départements RH multilingues** (contrats, onboarding) | Volume saisonnier, terminologie juridique | Moyen | P2 | « Glossaires légaux + volume Business » |
| **Freelances / consultants** | Outils gratuits qui détruisent leur travail | Grand | P2 | « 2 docs gratuits/mois, Starter à 9 € » |
| **Étudiants & académiques** | Budget nul | Grand | P3 (freemium) | « Plan Free, sans carte bancaire » |
---
## 2. Tarification (source de vérité : `models/subscription.py` + `services/pricing_config.py`)
**Monnaie : EUR. Billing Stripe implémenté (checkout, webhooks, portail client, crédits à l'unité).**
| Plan | Mensuel | Annuel (20 %) | Docs/mois | Pages/doc max | Fichier max | Moteurs | IA | API |
|---|---|---|---|---|---|---|---|---|
| **Free** | 0 € | — | 2 | 10 | 5 Mo | Google | Non (documents filigranés) | Non |
| **Starter** | 9 € | 7,20 €/mois | 50 | 50 | 10 Mo | Google | Non | Non |
| **Pro** ★ populaire | 19 € | 15,20 €/mois | 200 | 200 | 25 Mo | + Google Cloud, OpenRouter | Essentielle : DeepSeek V4 Flash, GLM-5.3 Flash, MiniMax M3 | Non |
| **Business** | 49 € | 39,20 €/mois | 1 000 | 500 | 50 Mo | + OpenAI, Grok (xAI), premium | Premium : Claude 5 (alternatives DeepSeek V4 Pro et GLM 5.3) | Oui, 10 000 appels/mois, 5 sièges |
| **Enterprise** | sur demande | sur demande | illimité | illimité | illimité | + custom | custom | illimitable |
**Paquets de crédits** (au-delà des quotas, sans changer d'abonnement) : 50 cr. 5 € · 100 cr. 9 € · 250 cr. 20 € · 500 cr. 35 € · 1 000 cr. 60 € (0,060,10 €/page).
### Message tarifaire
- **Ancrage** : coût par page vs traduction humaine (50100× moins cher) et vs réfection manuelle après Google Translate.
- **Freemium réel** : le plan Free (2 docs/mois, sans carte) sert d'essai — c'est le « free trial » opérationnel.
- **Relances et réductions** : les emails de relance (générés par IA à partir de ce plan) et les codes promo (Stripe Coupon + Promotion Code, double plafond) sont gérés depuis l'administration (page Marketing).
- **Transparence** : les prix exacts ci-dessus sont ceux du backend (`models/subscription.py` + `services/pricing_config.py`) ; toute promo est gérée via `data/pricing_overrides.json` (admin). À noter : la section pricing de la landing (`components/pricing-section.tsx`) est un **miroir statique** de ces plans (constante `PLANS`) — aucun prix n'est généré automatiquement, donc tout changement de prix/fonctionnalité doit être répercuté **à la main** dans ce composant et dans ce document le même jour. **Au 2026-09-05 ce miroir est en retard** : il affiche encore DeepL (Starter et Pro), la FAQ dit « up to seven providers » et la preuve sociale affiche « 7 moteurs », « 60+ langues » et « 100 % » — correction à faire avant publication (checklist §9).
---
## 3. Actifs Marketing en Place (état 2026-09-05)
| Actif | Statut | Emplacement |
|---|---|---|
| Landing page (hero, démo de traduction) | ✅ | `office-translator-landing-page/` (Next.js 15 + Tailwind) |
| Section **Pricing** (4 plans + toggle mensuel/annuel + bannière Enterprise) | ✅ | `components/pricing-section.tsx` |
| Section **FAQ** (10 questions) | ✅ | `components/faq-section.tsx` |
| Section **Preuve sociale** (stats à afficher : 107 langues, 6 moteurs, format préservé, rétention ≤ 2 h + 3 témoignages génériques à remplacer par de vrais clients) | ✅ (textes du composant à aligner, cf. §2) | `components/social-proof-section.tsx` |
| **Capture d'e-mail** (waitlist : e-mail + segment d'intérêt) | ✅ | `components/waitlist-section.tsx``POST /api/v1/waitlist` |
| **Analytics** (Vercel Analytics : pages, événements, heatmaps) | ✅ | `app/layout.tsx` (`@vercel/analytics`) |
| Footer corrigé (mention SOC 2 retirée) | ✅ | `app/page.tsx` |
### À produire avant le lancement (voir §6, checklist)
- 8 captures d'écran réelles de l'interface (héros, upload, résultat côte à côte, sélecteur de moteur, glossaires, dashboard, pricing, profil)
- Vidéo démo 6090 s + tutoriel 35 min
- GIF 15 s du workflow upload → traduction → téléchargement
- OG image 1200×630 + bannière GitHub + infographie avant/après
- Remplacement des 3 témoignages génériques par 3 témoignages clients réels (objectif : 1 par segment P1/P2)
---
## 4. Canaux de Lancement
> **Exécution** : les tâches marquées « Marketing » sont déléguées à l'agent Hermes (consignes, chiffres autorisés et circuit de validation dans `docs/marketing/instructions-agent-hermes.md`). Les tâches « Dev » et « Fondateur » restent à Sepehr.
### Phase 1 — Pré-lancement (Semaines 12)
| Canal | Action | Responsable | Livrable |
|---|---|---|---|
| Landing page | Publication en prod (Vercel ou Docker) avec URL propre `wordly.art` | Dev | URL + OG image |
| Waitlist | Activation `POST /api/v1/waitlist` en prod ; objectif **150 e-mails** avant lancement | Marketing | Compteur `/api/v1/waitlist/count` |
| Product Hunt | Préparation du listing (assets, tagline, maker comment, 5 commentaires amis planifiés) | Marketing | `docs/marketing/launch/product-hunt.md` |
| Reddit | Rédaction de 3 posts (r/SideProject, r/translator, r/smallbusiness) | Marketing | `docs/marketing/launch/reddit-posts.md` |
| Hacker News | Rédaction du Show HN (angle technique : préservation du format) | Dev | `docs/marketing/launch/show-hn.md` |
| X/Twitter | Thread de lancement (12 tweets + GIF) | Marketing | `docs/marketing/launch/x-thread.md` |
| LinkedIn | Post ciblant PME/agences (fondateur) | Fondateur | Post + 2 relances |
### Phase 2 — Lancement (Semaine 3)
| Jour | Action |
|---|---|
| J-2 | Test du tunnel complet : inscription → 1ère traduction → upgrade Stripe (mode test) |
| J0 | Lancement Product Hunt (mardi/mercredi), Show HN (matin EST), thread X, cross-post Reddit, post LinkedIn |
| J1 | Suivi des commentaires (réponse < 2 h), relance X, e-mail waitlist n°1 « vous êtes dedans » |
| J+7 | E-mail waitlist n°2 : 3 études avant/après + offre de lancement (remise supplémentaire à définir par Sepehr — distincte de la remise annuelle standard de 20 % ; code via `pricing_overrides.json`) |
### Phase 3 — Croissance (Semaines 48)
| Canal | Action |
|---|---|
| SEO | Publication des 5 articles de blog (§5) ; pages « traduire un excel sans perdre le format », « traduire un powerpoint en anglais » |
| YouTube | Tutoriel 35 min + review avant/après |
| Partenariats | 5 agences de traduction (commission 15 % la 1ʳᵉ année), 3 consultants internationaux, annuaires SaaS français |
| Google Ads | Campagne test (10 €/jour) sur « traduire excel » / « translate powerpoint » uniquement si CAC < 3× marge mensuelle |
| Communautés | Discord/Slack de traducteurs et de devs (Build in public) |
| AppSumo | Lifetime deal Business (optionnel, à valider après semaine 4) |
---
## 5. Stratégie de Contenu
### Articles de blog (SEO) — 5 au lancement, dans `docs/marketing/blog/`
> Avant publication : relire chaque article avec les chiffres de la section 2 (certains datent d'avant la revue du 2026-09-05 : DeepL cité comme moteur, « 7 moteurs », « 60+ langues », « 100 % ») et y insérer les captures réelles. Délégué à Hermes (validation par Sepehr).
1. **« Comment traduire un fichier Excel sans perdre la mise en forme »** (pilier, 1 500+ mots)
2. **« Outils de traduction de documents : 5 approches comparées (2026) »** (comparatif : nous vs Google, DeepL, Smartling, Transifex, Smartcat)
3. **« Traduction professionnelle de documents : guide complet pour les PME »**
4. **« Pourquoi DeepL et Google Translate « détruisent » vos documents Excel »**
5. **« Auto-héberger son outil de traduction : guide Docker complet »** (capture de l'audience self-hosted)
### Rythme social (répétitif, 3 h/semaine max)
| Type | Fréquence | Plateforme |
|---|---|---|
| Avant/Après document (anonymisé) | 1×/sem. | X, LinkedIn |
| Astuce traduction | 2×/sem. | X |
| Mise à jour produit / build-in-public | selon releases | X, LinkedIn, IndieHackers |
| Témoignage client | au fil de l'eau | toutes |
---
## 6. KPIs & Mesure
### Mesure (déjà branchée)
- **Vercel Analytics** sur la landing (pages, événements, top pages, referrers).
- **Waitlist** : `GET /api/v1/waitlist/count` + segmentation par intérêt (champ `interest`).
- **Backend** : `/health` (monitoring) ; quotas par plan visibles dans le dashboard admin.
### Objectifs
| Métrique | Mois 1 | Mois 3 | Source |
|---|---|---|---|
| Visiteurs uniques landing | 5 000 | 25 000 | Vercel Analytics |
| E-mails waitlist | 150 | 1 500 | `/api/v1/waitlist/count` |
| Inscriptions (tous plans) | 200 | 1 500 | BDD utilisateurs |
| Documents traduits | 500 | 5 000 | Journal de jobs |
| Taux de conversion visite → inscription | 2 % | 4 % | Analytics |
| MRR | variable | variable (cible : 300 abonnements payants) | Stripe |
| NPS | > 40 | > 50 | Enquête post-traduction (pas encore implémentée — cf. vague C5 de `docs/marketing/PLAN-ALIGNEMENT-CODE.md` ; à ne mesurer qu'après création du mini-formulaire) |
| CAC (Google Ads) | — | < 3× marge mensuelle du plan d'entrée | Ads |
---
## 7. Concurrence (actualisé 2026-08)
| Concurrent | Force | Faiblesse | Notre avantage |
|---|---|---|---|
| **Google Docs (traduction intégrée)** | Gratuit, connu | Détruit les formats complexes, pas de glossaire | Préservation du format + multi-moteurs |
| **DeepL (documents)** | Qualité de traduction | Prix élevé, formatage limité, moteur unique, refuse les PDF scannés | 6 moteurs au choix, 107 langues, prix, OCR des scannés |
| **Smartling / Smartcat** | Complets, TMS | Lourds, chers, surdimensionnés pour une PME | Simplicité + prix accessible |
| **Transifex** | Enterprise i18n | Trop cher, orienté localisation logicielle | Fichiers bureautiques, pas de code |
| **Outils one-shot (DocTranslator, etc.)** | Simple | Qualité inégale, pub, aucune API | Interface pro, glossaires, API Business |
---
## 8. Timeline Recommandée
```
S1-2 : Publication de la landing + waitlist + production des assets (captures, vidéos, GIF)
S3 : Lancement (Product Hunt + Show HN + Reddit + X + LinkedIn) + e-mails waitlist
S4 : 5 articles SEO + YouTube + 5 partenariats agences
S5-6 : Google Ads (test) + communautés + relances
S7-8 : Optimisation (A/B du pricing, témoignages réels, LTV)
```
---
## 9. Checklist Exécutable (état au 2026-09-05)
- [x] Landing page : sections Pricing, FAQ, Preuve sociale, Waitlist
- [x] Endpoint waitlist (`POST /api/v1/waitlist`, dédoublonné) + compteur
- [x] Analytics (Vercel Analytics) branchée sur la landing
- [x] Footer corrigé (SOC 2 retiré)
- [x] Contenu de lancement rédigé (`docs/marketing/launch/`)
- [x] 5 articles de blog rédigés (`docs/marketing/blog/`)
- [x] Spec des assets visuels (`docs/marketing/launch/assets-spec.md`)
- [x] Doc de suivi des KPIs (`docs/marketing/kpis.md`)
- [x] Instructions de l'agent Hermes (`docs/marketing/instructions-agent-hermes.md`)
- [ ] Publication de la landing page en production (`wordly.art`)
- [ ] **Aligner la landing sur la revue du 2026-09-05** : retirer DeepL de `pricing-section.tsx` (lignes 52 et 69) et de `faq-section.tsx` (ligne 21, « seven providers » → six, sans DeepL) ; `social-proof-section.tsx` : « 60+ » → 107, « 7 » → 6, « 100 % » → promesse crédible (« Format preserved ») ; même correction dans `launch/` si un reliquat subsiste
- [ ] 8 captures d'écran réelles de l'interface
- [ ] Vidéo démo 6090 s + tutoriel 35 min
- [ ] GIF workflow 15 s + OG image 1200×630
- [ ] 3 témoignages clients réels (remplacer les génériques)
- [ ] Lancement Product Hunt (assets + 5 commentaires planifiés)
- [ ] Séquence e-mail : 5 e-mails post-inscription (déléguée à Hermes — `docs/marketing/emails/`)
- [ ] Configuration GA4 (optionnel, en complément de Vercel Analytics)
---
*Ce document est la source de vérité marketing. Toute modification de prix passe par `data/pricing_overrides.json` (admin) et doit être répercutée ici le même jour.*