Documentation · Roadmap & Évolutions futures

Roadmap V4

État des fonctionnalités V3, actions immédiates, roadmap complète V4 par phases, idées d'articles de blog, futurs produits TRUvector, planning indicatif et vision architecturale V4.

V3 déployé V4 en planification 6 mois horizon
01

Statut complet des fonctionnalités V3

FonctionnalitéStatutNotes
Design System CSS (thèmes Dark/Light/Contrast)✓ Complet689 lignes, 3 thèmes, transitions fluides
Navbar/Footer injectés (components.js)✓ CompletRoot path V3.1 avec Math.max(0,...)
i18n FR/EN asynchrone✓ Complet80+ clés, fallback FR, sélecteur navbar
Recherche Ctrl+K✓ Complet11 entrées, surlignage, nav clavier
Blog (liste + 1 article complet)⬛ Partiel6 articles en liste, 1 seul avec contenu réel
Centre téléchargements + SHA-256⬛ PartielStructure OK, liens href="#" à remplacer
Page Pricing (formulaire demande)⬛ PartielFormulaire OK, endpoint Formspree manquant
Contact Formspree⬛ PartielFormulaire OK, action="#" à remplacer
Newsletter Brevo✗ Non faitHandler JS à écrire + clé API Brevo
Vrais liens téléchargement✗ Non faitBinaires IronLock à uploader sur GitHub/R2
SEO (sitemap, canonical, OG, Schema.org)✓ Complet14 URLs, JSON-LD, hreflang, OG partout
Accessibilité WCAG 2.1 AA⬛ Partielskip-link, ARIA, focus-visible OK. Audit axe-core non fait.
Sécurité Headers Cloudflare✓ CompletSAMEORIGIN, nosniff, Referrer-Policy, cache
Changelog IronLock v1.0→v2.0✓ Complet4 versions documentées avec types add/fix/brk
Mentions légales & Confidentialité⬛ PartielStructure OK, SIRET et adresse à compléter
Performance (Lighthouse score)⬛ Non mesuréÀ mesurer après déploiement, objectif ≥ 90
02

🔴 Actions immédiates — À faire maintenant

🔴 URGENT
Configurer Formspree (contact + pricing)
Sans cela, aucun formulaire ne fonctionne. Les visiteurs qui essaient de contacter TRUvector voient un avertissement. Créer un compte Formspree gratuit (~2 minutes), copier l'endpoint, remplacer action="#" dans contact.html et pricing.html.
Non fait · Durée estimée : 30 minutes
30 minFormspree.io
🔴 URGENT
Ajouter les vrais liens de téléchargement + SHA-256
La page downloads/index.html a tous les boutons "Télécharger →" qui pointent vers href="#". Uploader les binaires IronLock sur GitHub Releases, copier les URLs, calculer les SHA-256, mettre à jour la page.
Non fait · Durée estimée : 1 heure
1hGitHub Releases
🟠 HAUTE
Brancher Brevo pour la newsletter
Le formulaire newsletter (footer + page accueil) affiche juste un message local sans vraiment inscrire l'utilisateur. Créer un compte Brevo, obtenir la clé API, modifier le handler dans assets/js/main.js. Attention : ne pas committer la clé API en clair.
Non fait · Durée estimée : 2 heures
2hBrevo API
🟠 HAUTE
Compléter les mentions légales
La page legal/mentions-legales.html contient des placeholders pour l'adresse physique et le numéro SIRET. Obligatoire légalement pour un site commercial français. À compléter dès immatriculation de TRUvector.
Non fait · Durée estimée : 30 minutes
30 minLégal FR
🟠 HAUTE
Soumettre le sitemap à Google Search Console
Le site est en ligne mais Google n'a pas encore été notifié. Vérifier le domaine dans Search Console et soumettre https://truvector.dev/sitemap.xml. Sans ça, l'indexation peut prendre des semaines.
Non fait · Durée estimée : 30 minutes
30 minGoogle GSC
03

Phase 1 — Quick wins (M1)

🟡 MOYENNE
Audit accessibilité axe-core
Installer l'extension axe DevTools (Chrome/Firefox) et faire un scan de toutes les pages principales. Corriger les violations WCAG 2.1 AA : ratios de contraste insuffisants sur certains textes secondaires, labels manquants, etc. Objectif : 0 violation critique.
Non fait · Durée estimée : 1 semaine
1 sem.axe-core
🟡 MOYENNE
Audit Lighthouse + optimisation images
Lancer Lighthouse sur les pages principales. Identifier les points de friction : logo.svg 2.9MB à remplacer par logo.webp optimisé (<50KB), lazy loading sur les images non critiques, préchargement des fonts critiques.
Non fait · Durée estimée : 2-3 jours
2-3jLighthouse
🟡 MOYENNE
Page 404 personnalisée
Cloudflare Pages sert une page 404 générique par défaut. Créer un fichier 404.html dans la racine avec le design TRUvector, un message d'erreur cohérent, et des liens vers les pages principales. Améliore l'UX et le taux de rebond.
Non fait · Durée estimée : 2 heures
2h404.html
🟡 MOYENNE
Open Graph images dédiées (1200×630px)
Actuellement toutes les pages partagent le même og:image (le logo). Créer des images OG spécifiques pour les pages clés : accueil, IronLock, blog. Impact direct sur les partages LinkedIn/Twitter/Slack.
Non fait · Durée estimée : 1 jour
1jDesign
04

Phase 2 — Contenu (M2-M3)

🟠 HAUTE
Rédiger les 5 articles de blog manquants
Le blog liste 6 articles mais 5 n'ont pas encore de contenu réel (lien mort). Chaque article est un actif SEO permanent — ils continueront d'attirer du trafic organique des années après leur publication. Utiliser blog/proteger-python-reverse-engineering.html comme template.
Non fait · Durée estimée : 2-3 jours par article
2-3j/art.×5 articles
🟡 MOYENNE
Flux RSS pour le blog
Créer un fichier blog/feed.xml statique avec les entrées RSS/Atom des articles. Mettre à jour manuellement à chaque nouvel article. Lien déjà en place dans blog/index.html avec rel="alternate". Permet aux lecteurs RSS et aux agrégateurs (Hacker News, Dev.to) de suivre le blog.
Non fait · Durée estimée : 2 heures + 10 min par article
2hXML statique
🟡 MOYENNE
Pagefind — moteur de recherche full-text réel
Remplacer l'index JS statique (11 entrées codées en dur) par Pagefind, un moteur de recherche statique qui indexe tout le HTML du site à la compilation. Commande de build : pagefind --site .. Résultats pertinents sur tout le contenu du manuel, des exemples, des articles. Zéro serveur requis.
# package.json (si introduction de npm) "build": "pagefind --site . --output-subdir _pagefind" # Ou en une commande sans npm : npx -y pagefind --site . --output-subdir _pagefind
Non fait · Durée estimée : 1 jour
1 jourPagefind
05

Phase 3 — Produit & Monétisation (M3-M5)

🟠 HAUTE
Intégration Stripe — Paiement direct
Quand les tarifs IronLock seront fixés, ajouter des liens Stripe Checkout ou Payment Links depuis la page pricing. Stripe génère des pages de paiement hébergées (aucun code backend requis). Un Cloudflare Worker peut écouter les webhooks Stripe pour envoyer les licences automatiquement par email.
Non fait · Pré-requis : tarifs fixés
2-3jStripe + Worker
🟠 HAUTE
Démo interactive IronLock — Option A (Simulation JS)
Créer une page products/ironlock/demo.html avec un terminal animé qui simule l'exécution d'IronLock. L'utilisateur entre un nom de fichier fictif, voit le processus de chiffrement étape par étape avec de vraies valeurs (fingerprint hash calculé via Web Crypto API, clé AES simulée). Fort impact de conversion sans implémentation WASM complexe.
Non fait · Durée estimée : 3-5 jours
3-5jJS + Web Crypto
⚫ LONG TERME
Démo interactive IronLock — Option B (WebAssembly)
Compiler le core cryptographique d'IronLock en WebAssembly via Emscripten ou Rust/wasm-pack. L'utilisateur uploade un vrai fichier Python ou EXE, il est chiffré dans le navigateur avec une clé de démo. Expérience authentique qui inspire confiance aux développeurs techniques.
Non fait · Durée estimée : 2-4 semaines
2-4 sem.WASM / Rust
⚫ LONG TERME
Espace client — Portail de gestion de licences
Page de connexion + dashboard licences : liste des licences achetées, machines autorisées, bouton de révocation, téléchargement sécurisé via signed URL R2. Nécessite : Cloudflare Workers (API auth), D1 (SQLite managed), R2 (signed URLs), Stripe (webhook achat). C'est une rupture architecturale — le site sort du 100% statique.
Non fait · Durée estimée : 4-6 semaines · Pré-requis : Stripe opérationnel
4-6 sem.Workers + D1 + R2
06

Phase 4 — Avancé (M5-M6)

⚫ LONG TERME 1-2 sem.
API Status Page
Page /status affichant la disponibilité des services TRUvector. Cloudflare Workers Healthcheck toutes les 5 minutes. Badge de statut intégrable dans la page d'accueil.
⚫ LONG TERME 3-5j
Automatisation newsletter release
Cloudflare Worker déclenché par webhook GitHub Release → envoi automatique d'un email Brevo à tous les abonnés quand une nouvelle version d'IronLock est publiée.
⚫ LONG TERME 1-2j
hreflang étendu + pages EN dédiées
Dupliquer les pages clés en version anglaise dans /en/ pour les moteurs de recherche. Le site actuel utilise de l'i18n côté client — non visible par Googlebot. Pages statiques EN = meilleur référencement international.
⚫ LONG TERME 2-3j
Certificat de conformité RGPD
Audit complet RGPD avec un template validé : politique de confidentialité enrichie, registre des traitements, formulaire de suppression de compte, DPA Cloudflare et Brevo signés. Obligatoire si espace client avec données personnelles.
07

Articles de blog — Planning et idées

5 articles listés sur le blog n'ont pas encore de contenu. Ordre de rédaction recommandé selon l'impact SEO et la pertinence produit :

🔑
1 — Fingerprint hardware : 8 sources d'entropie expliquées
Lié directement à IronLock. Expliquer chaque source (UUID carte mère, CPU ID, MAC, disque, RAM, OS, BIOS, hostname), comment les combiner en SHA-256, et pourquoi la tolérance 6/8 est le bon compromis. Article technique dense, très recherché par les développeurs qui implémentent du licensing.
cryptolicensingironlock ~12 min · Impact SEO : ÉLEVÉ
⚖️
2 — AES-256-GCM vs ChaCha20-Poly1305 pour le licensing
Comparatif technique des deux algorithmes AEAD dominants. Performance sur ARM vs x86, disponibilité hardware AES-NI, vecteurs d'attaque, implémentation Python avec la lib cryptography. Conclure sur pourquoi IronLock v2 utilise AES-GCM.
cryptoaes ~10 min · Impact SEO : MOYEN
🐛
3 — Anti-debug techniques sur Windows et Linux
IsDebuggerPresent, CheckRemoteDebuggerPresent, ptrace, /proc/status TracerPid, timing attacks, exception handlers, scan de processus. 12 techniques avec exemples de code Python. Ce sujet est très recherché et peu bien documenté en français.
securitypythonwindows ~15 min · Impact SEO : ÉLEVÉ
📋
4 — IronLock vs PyArmor vs Themida : comparatif 2026
Comparatif objectif des 3 solutions de protection logicielle les plus utilisées. Critères : sécurité (résistance au reverse engineering), performance (overhead CPU), prix (one-time vs abonnement), documentation, support, plateformes. IronLock positionné honnêtement.
licensingcomparatif ~9 min · Impact SEO : TRÈS ÉLEVÉ (recherches directes)
✍️
5 — ECDSA P-384 vs RSA-2048 pour les licences logicielles
Pourquoi IronLock v2 a migré de RSA-2048 à ECDSA P-384. Avantages ECC : clés 10× plus petites, vérification plus rapide, sécurité équivalente. Implémentation complète en Python avec la lib cryptography. Signature et vérification de licence JSON.
cryptolicensing ~11 min · Impact SEO : MOYEN
08

Futurs produits TRUvector

IronLock v3

Évolution naturelle d'IronLock v2. Idées identifiées : support WASM pour licensing de modules WebAssembly, intégration API REST pour licensing en ligne (avec révocation à distance), GUI améliorée avec dashboard licences.

Horizon : 2026-2027

Produit 2 — Outil sécurité

À définir. Les domaines d'expertise TRUvector (Python, cryptographie, reverse engineering, analyse de vulnérabilités) ouvrent plusieurs niches : analyseur statique de sécurité, obfuscateur spécialisé, scanner de vulnérabilités Python.

Horizon : 2027

Suite TRUvector

Vision long terme : une suite d'outils complémentaires pour la distribution sécurisée de logiciels : protection (IronLock), analyse (scanner), distribution (plateform de licences SaaS).

Horizon : 2027+

09

Planning indicatif V4

Planning pour un développeur seul (Tristan Ruard). Les durées sont indicatives et peuvent varier selon la priorité donnée à IronLock lui-même vs le site web.
Tâche M1M2M3M4M5M6 Effort
Actions immédiates
Formspree + Brevo + Downloads
~3h
Mentions légales + GSC
~1h
Phase 1 — Quick wins
Audit accessibilité axe-core
1 sem.
404.html + OG images
1-2j
Phase 2 — Contenu
5 articles de blog
2-3 sem.
Pagefind full-text search
1j
Phase 3 — Produit
Démo interactive (JS simulation)
3-5j
Stripe Checkout
2-3j
Espace client (MVP)
4-6 sem.
10

Architecture cible V4

V3 — Architecture actuelle

┌─────────────────────────────────────┐ │ CLOUDFLARE PAGES │ │ (static files serveur) │ ├─────────────────────────────────────┤ │ HTML + CSS + JS (vanilla) │ │ JSON i18n (fetch côté client) │ │ 0 backend · 0 base de données │ └─────────────────────────────────────┘ Services tiers : - Formspree (formulaires) - Brevo (newsletter) - Google Fonts (typo)

V4 — Architecture cible (avec espace client)

┌─────────────────────────────────────┐ │ CLOUDFLARE PAGES │ │ (static frontend) │ ├──────────────────┬──────────────────┤ │ Cloudflare │ Cloudflare D1 │ │ Workers (API) │ (SQLite managed) │ ├──────────────────┼──────────────────┤ │ Cloudflare R2 │ Cloudflare Access│ │ (binaires signés)│ (auth magic link)│ └──────────────────┴──────────────────┘ Services tiers : - Stripe (paiement + webhooks) - Brevo (newsletter + transac.) - Formspree (formulaires simple)
💡
Principe de migration : Le frontend reste 100% statique. Les fonctionnalités dynamiques (auth, licences, paiements) sont des Cloudflare Workers indépendants appelés via fetch(). Le site peut rester déployable avec un simple git push, quelle que soit la complexité backend.