Files
office_translator/MARKETING_PLAN.md
sepehr 526c87348f
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m20s
feat(translation): quality pipeline overhaul + new features (audit 2026-08-29)
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)
2026-08-29 18:38:09 +02:00

14 KiB
Raw Blame History

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,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.
  • 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.tsxPOST /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

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 (20 % la 1ʳᵉ année, 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/

  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)

  • Landing page : sections Pricing, FAQ, Preuve sociale, Waitlist
  • Endpoint waitlist (POST /api/v1/waitlist, dédoublonné) + compteur
  • Analytics (Vercel Analytics) branchée sur la landing
  • Footer corrigé (SOC 2 retiré)
  • Contenu de lancement rédigé (docs/marketing/launch/)
  • 5 articles de blog rédigés (docs/marketing/blog/)
  • Spec des assets visuels (docs/marketing/launch/assets-spec.md)
  • 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 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
  • 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.