Pourquoi Apple m'a conduit vers Odoo 19
it-guy.ai fonctionnait comme un site statique Astro. L'App Store exige une URL de confidentialité par application, et ce, dans les langues dans lesquelles l'application est vendue. À partir d'aujourd'hui, Odoo 19 s'en charge.
Dans App Store Connect, un champ obligatoire pour l'URL de confidentialité
Par application. Et si vous proposez votre application non seulement en Allemagne, vous aurez besoin de cette page dans les langues dans lesquelles elle est vendue.
Avec DevPreview, cela se faisait manuellement : une page, version allemande et anglaise côte à côte, lien inscrit dans App Store Connect, c'était fait. Puis la deuxième application est arrivée, et d'une seule page est née une table de multiplication – applications multipliées par langues multipliées par documents. Dans un projet Astro, chaque cellule de cette table est un fichier distinct dans le dépôt. Si je modifie une durée de conservation, je la mets à jour partout. À la troisième fois, j'en oublie une, et alors la version anglaise affiche un délai qui, en allemand, est déjà différent.
Odoo attache les traductions au même enregistrement que l'original. Je saisis un texte, je change la langue et je traduis les paragraphes modifiés. Pas de deuxième arbre de répertoires, pas de fichier qui dérape.
L'effet secondaire que j'avais sous-estimé
Une faute de frappe sur la page d'accueil signifiait jusqu'à présent : éditeur activé, rechercher le fichier, modifier, committer, pousser, attendre la construction, déployer. Pour un seul mot.
Astro n'est pas en cause, le générateur fonctionne proprement. Mais chaque modification traverse la même chaîne, que j'échange une lettre ou que je construise une page entière. Maintenant, je me connecte, je clique sur le texte, je sauvegarde, c'est fini.
Pour les articles plus longs, je continue d'écrire en Markdown – je tape volontairement moins de 1 200 mots dans un éditeur WYSIWYG. Mon module prend en charge le transfert vers la base de donnéeseq_website_markdown_import: le titre, le résumé, les balises, la date de publication et les champs SEO figurent en en-tête YAML dans le fichier, les images sont à côté au format ZIP, le module relie les deux pour créer un article terminé.
Si le titre manque, les conséquences sont immédiates : Sans title: dans le frontmatter, l'importateur utilise le nom du fichier comme titre de l'article – et il se trouve alors au-dessus de l'article une construction composée d'une date et de tirets. Deux minutes économisées, dix minutes de travail supplémentaire.
Les fioritures sont venues avec
Sur la page se trouvent quelques petits jeux JavaScript et gadgets que j'ai construits au fil du temps. C'est précisément cela que je considérais comme la partie critique de la migration, car j'avais craint qu'Odoo m'embarrasse lors de l'intégration de scripts personnalisés.
Non. Les jeux ne dépendent d'aucun framework, ce sont du pur Vanilla-JS et constituent donc une simple question de fichiers dans le répertoire des assets plus d'une page avec un bloc HTML. Effort : une après-midi, et celle-ci a été principalement consacrée au nettoyage des chemins que j'avais câblés de manière rigide il y a des années.
La mesure de la portée reste en interne
Aucun Google Analytics, aucun service tiers. La mesure s'effectue via un module Odoo propre sur mon propre serveur chez Hetzner, et j'ai défini les délais de conservation au lieu de les laisser prendre les valeurs par défaut :
- Journaux serveur : 7 jours
- Mesure de la portée : 12 mois
- Demandes de formulaire de contact : 24 mois
Depuis le déménagement, ces données et les contenus sur lesquels elles sont collectées se trouvent dans la même base de données. Je réponds aux demandes d'accès conformément à l'article 15 du RGPD via une fiche de données de contact plutôt que via deux systèmes et une bonne mémoire.
Ce que j'ai acheté en retour
Un fichier HTML statique est plus rapide qu'une page derrière laquelle se trouvent un processus Python et une requête de base de données. La première construction de la page est plus lente depuis aujourd'hui, et aucun réglage fin ne peut changer fondamentalement cette situation.
Ce qui aide est sans spectacle : activer les bundles d'assets, définir proprement les en-têtes de mise en cache, fournir les images dans la taille à laquelle elles sont affichées, et ne pas empiler de fragments que personne n'a besoin. Ainsi, la page atterrit dans une zone qui suffit pleinement pour une carte de visite de développeur avec deux applications sur l'App Store. Celui qui exploite un site d'actualités avec des chiffres d'accès à six chiffres prendra une décision différente.
Et celui qui maintient une page de contenu pur, sans formulaires, sans données clients, sans documents juridiquement contraignants en cinq langues, a avec Astro l'outil meilleur en main. Pour moi, le changement en valait la peine, car j'utilise Odoo quotidiennement et j'écris moi-même les modules manquants. Sans cette condition préalable, le déménagement n'aurait pas été un gain, mais un deuxième projet en plus des applications.