All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m20s
Translation quality & format preservation: - Word: merge adjacent same-format runs into one unit (sentence-level coherence like inline-tag handling); translate comments/balloons; dedupe textbox collection (was translated twice); RTL no longer overrides center/justify alignment; CJK/Arabic font hints (eastAsia/cs) - PPTX: chart translations now actually reach the output file (ChartPart.blob is read-only — rewrite chart XML in the saved ZIP); CJK typeface hints (a:ea) - Excel: sheet renames no longer break references — rewrite cell formulas (3D/quoted), defined names, data validations, cond. formats - PDF: bold/italic honored (hebo/heit/hebi); table cells never merge; unchanged blocks left untouched (typography preserved, fixes duplicate hyperlinks); attempted/changed stats + route gate now cover PDF; CJK font paths; scanned PDFs via Mistral OCR (detection + admin settings) Features: - formality param (formal/informal) + automatic regional-variant prompts - output_mode=bilingual docx (source above translation) - per-user translation memory on Redis (falls back to LRU), context-hashed - QA report + 0-100 confidence score in job status; L0 on by default - OpenAI-compatible providers: whole chunk in ONE numbered-JSON request (~15x fewer calls) with per-item fallback; base prompt always present (custom prompt no longer replaces translation instructions) Infra & marketing alignment: - plan-based engine gating + vision gating (closes paid-engine leak); /providers/available filtered per plan; 107 languages exposed - zh-CN/zh-TW validation fixed; libmagic disabled on Windows (native crash) - admin: Mistral OCR settings + engine status dashboard; httpx<0.28 pin (TestClient breakage); Prometheus test fixture fixed - marketing docs aligned with code (PDF+OCR, retention, engines, pricing) - security: .env.ionos/.env.production/provider_settings.json removed Tests: 1173 passed / 0 failed (6 network tests deselected: free Google endpoint temporarily blocked from this machine)
209 lines
14 KiB
Markdown
209 lines
14 KiB
Markdown
# Plan Marketing — Office Translator (Wordly.art)
|
||
|
||
> Document de référence pour l'agent marketing. Dernière mise à jour : 2026-08-29
|
||
>
|
||
> **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 (7) | Google, DeepL, Google Cloud, OpenRouter éco **et** premium, OpenAI, Grok (xAI) — grille appliquée côté API par plan | 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` |
|
||
| 60+ langues | 100+ codes validés, exposés via `/api/v1/languages` | `middleware/validation.py` |
|
||
| 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** | « 7 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 (filigrane) | Non |
|
||
| **Starter** | 9 € | 7,20 €/mois | 50 | 50 | 10 Mo | Google, DeepL | Non | Non |
|
||
| **Pro** ★ populaire | 19 € | 15,20 €/mois | 200 | 200 | 25 Mo | + Google Cloud, OpenRouter | Essentielle (DeepSeek) | Non |
|
||
| **Business** | 49 € | 39,20 €/mois | 1 000 | 500 | 50 Mo | + OpenAI, x.ai/Zai, premium | Premium (Claude/Gemini) | 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,06–0,10 €/page).
|
||
|
||
### Message tarifaire
|
||
- **Ancrage** : coût par page vs traduction humaine (50–100× 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.
|
||
- **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.
|
||
|
||
---
|
||
|
||
## 3. Actifs Marketing en Place (état 2026-08-29)
|
||
|
||
| 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 vérifiables : 60+ langues, 7 moteurs, 100 % format, TTL 60 min + 3 témoignages génériques à remplacer par de vrais clients) | ✅ | `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 60–90 s + tutoriel 3–5 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
|
||
|
||
### Phase 1 — Pré-lancement (Semaines 1–2)
|
||
| 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 (−20 % la 1ʳᵉ année, code via `pricing_overrides.json`) |
|
||
|
||
### Phase 3 — Croissance (Semaines 4–8)
|
||
| 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 3–5 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/`
|
||
1. **« Comment traduire un fichier Excel sans perdre la mise en forme »** (pilier, 1 500+ mots)
|
||
2. **« Les 5 meilleurs outils de traduction de documents comparés (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 (et quoi faire) »**
|
||
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 |
|
||
| 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 | 7 moteurs au choix, 60+ langues, prix |
|
||
| **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-08-29)
|
||
|
||
- [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`)
|
||
- [ ] Publication de la landing page en production (`wordly.art`)
|
||
- [ ] 8 captures d'écran réelles de l'interface
|
||
- [ ] Vidéo démo 60–90 s + tutoriel 3–5 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
|
||
- [ ] 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.*
|