55 Commits
Author SHA1 Message Date
dependabot[bot] 64979ef66a build(deps): bump posthog-js (#214)
Bumps the landing-minor-patch group in /landing with 1 update: [posthog-js](https://github.com/PostHog/posthog-js).


Updates `posthog-js` from 1.438.21 to 1.444.0
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.438.21...posthog-js@1.444.0)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.444.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: landing-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-06 12:19:32 +01:00
IliesAllaliandClaude Opus 5.5 ef620c9cb5 mesure : copie du lien de partage, page vie privée à jour
share_copied quand le propriétaire copie le lien, le mot de passe ou le message d'invitation
(what, seasonal pour le message de Noël), ou crée le lien d'un co-gestionnaire (manager_invite).
Rien de ce qui est copié ne part. La page vie privée (fr, en) décrit maintenant tout ce que l'app
mesure : démo, modifications comptées sans leur contenu, propositions, partage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 19:32:10 +01:00
IliesAllaliandClaude Opus 5.5 9bf55a16f3 landing : mesure d'audience des pages statiques, provenance gardée jusqu'à l'app
Les guides, l'aide, la vidéo et les pages vie privée (public/, copiés sans Vite) n'avaient aucune
mesure. src/pages.js, construit par Vite avec une empreinte et posé au build dans chaque page par
scripts/inject-pages.mjs, envoie les mêmes événements que la page d'accueil (page_viewed, scroll_depth_50
et 100, signup_cta_clicked) et video_played sur /video/. Les liens vers l'app gardent le ?source=
d'arrivée au lieu de la provenance fixe de la page. Page vie privée (fr, en) complétée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 19:01:07 +01:00
IliesAllaliandClaude Opus 5.5 db09620a58 Page vidéo : Parenthèse en 30 secondes (#210)
/video/ sur parenthese.io : la vidéo validée par Patch le 03/11, en 16:9 sur
ordinateur et 9:16 sur téléphone (la seconde ne se charge qu'au besoin), aperçu,
balises og:video et JSON-LD VideoObject, bouton vers l'arbre d'exemple
(source=video). Lien à donner dans les mails de presse et aux créateurs.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 11:33:09 +01:00
IliesAllaliandClaude Opus 5.5 374fa35fbd Guide anglais « A family tree as a Christmas gift » (#208)
/en/family-tree-gift/, pendant du guide de Noël français (hreflang dans les deux sens,
lien English et Français dans le pied de page), lien dans le pied de page des huit pages
anglaises, plan du site. « family tree gift » : 590 recherches par mois aux États-Unis,
1 900 en décembre (DataForSEO, 02/11).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 15:17:19 +01:00
IliesAllaliandClaude Opus 5.5 bb6ad7d5d2 Guide « Arbre généalogique en cadeau de Noël » (#206)
Nouvelle page /arbre-genealogique-cadeau-noel/ sur le gabarit des guides (HowTo et FAQPage
en JSON-LD, français seul), lien dans le pied de page des huit pages françaises, plan du site.
Bouton avec source=guide-noel. En ligne avant mi-novembre pour être classée en décembre
(« arbre généalogique cadeau » x3,4 en décembre).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 01:38:42 +01:00
dependabot[bot] 04dc7f0e88 build(deps): bump the landing-minor-patch group (#196)
Bumps the landing-minor-patch group in /landing with 2 updates: [posthog-js](https://github.com/PostHog/posthog-js) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `posthog-js` from 1.438.12 to 1.438.21
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.438.12...posthog-js@1.438.21)

Updates `vite` from 8.3.4 to 8.3.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.438.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
- dependency-name: vite
  dependency-version: 8.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-29 12:24:13 +01:00
IliesAllaliandClaude Opus 5.5 fcfb7d1494 Landing : pages préchargées au survol d'un lien (speculationrules)
- Règles de préchargement dans l'accueil et les 15 guides : une page du site est préparée quand on survole
  son lien (appui sur téléphone), et s'ouvre presque tout de suite. Pages seulement, pas les fichiers ;
  l'application n'est pas concernée. Ignoré par les navigateurs qui ne connaissent pas ces règles.
- Une page préchargée ne compte pas de visite avant d'être vraiment ouverte (PostHog attend
  prerenderingchange), et l'animation du logo se joue à l'ouverture, pas pendant le préchargement.
- CSP de la landing (deploy/nginx.conf) : empreinte des règles, et nouvelle empreinte du script du logo.
  Le mot-clé 'inline-speculation-rules' ne suffisait pas à Chrome.
- Test : chaque script en ligne des pages a son empreinte dans la CSP, chaque page a ses règles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 18:05:12 +01:00
IliesAllaliandClaude Opus 5.5 3aad835908 Tailwind 4 : app et landing, rien ne bouge à l'écran (#165)
* Tailwind 4 (app) : plugin Vite, remise à zéro de la v3 gardée (main sur les boutons, placeholder, bordure grise), thème et utilitaires inutilisés retirés

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Tailwind 4 (landing) : plugin Vite comme l'app, remise à zéro de la v3 gardée, thème inutilisé retiré ; marge gauche du graphe du hero retirée, écrasée par lg:mx-0 en v3 et devenue visible en v4

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 14:06:33 +01:00
IliesAllali 07b10559e6 Merge pull request #133 from IliesAllali/dependabot/npm_and_yarn/landing/landing-minor-patch-00b7d6252c
build(deps): bump the landing-minor-patch group in /landing with 4 updates
2026-10-23 16:28:58 +02:00
IliesAllaliandClaude Opus 5.5 64821c9c99 deps: dompurify 3.4.17 sous posthog-js (GHSA-cg2g-xh64-v4q7, critique)
L'audit de la CI bloque toutes les PR depuis la publication de l'avis du 23/10.
Seuls les fichiers de verrou changent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:55:38 +02:00
dependabot[bot] 5a7cb03a01 build(deps): bump the landing-minor-patch group
Bumps the landing-minor-patch group in /landing with 4 updates: [posthog-js](https://github.com/PostHog/posthog-js), [react](https://github.com/react/react/tree/HEAD/packages/react), [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) and [postcss](https://github.com/postcss/postcss).


Updates `posthog-js` from 1.438.9 to 1.438.12
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.438.9...posthog-js@1.438.12)

Updates `react` from 19.3.0 to 19.3.1
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.3.1/packages/react)

Updates `react-dom` from 19.3.0 to 19.3.1
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.3.1/packages/react-dom)

Updates `postcss` from 8.5.30 to 8.5.31
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.30...8.5.31)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.438.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
- dependency-name: react
  dependency-version: 19.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
- dependency-name: react-dom
  dependency-version: 19.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
- dependency-name: postcss
  dependency-version: 8.5.31
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-22 01:14:30 +00:00
IliesAllaliandClaude Haiku 5.5 e75ff5e040 fix: portrait à la hauteur des champs en modification, symbole du logo sur téléphone
- Fiche en modification : le portrait prend la hauteur des champs Prénom et Nom (écart compris), carré (align-self stretch + aspect-ratio 1)
- Landing, téléphone (≤ 820 px) : symbole du logo seul, nom accessible « Parenthèse, accueil » conservé

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-18 22:43:19 +02:00
IliesAllaliandClaude Haiku 5.5 8e1b244a4a fix: en-tête de la fiche en modification et bouton de connexion de la landing
- Fiche : pastille Édition retirée ; case « Je ne connais pas son prénom » sur une ligne pleine largeur ; badge caméra « Changer la photo » sur le portrait (même choix de source)
- Landing : « Se connecter » en bouton blanc sans contour, icône de profil ; sur téléphone, icône ronde seule avec aria-label

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-18 22:33:19 +02:00
IliesAllaliandClaude Haiku 5.5 97b92e3f84 fix: fiche, partage, landing et bannière de création
- Fiche : nom, puis une ligne « surnom · repères de vie · âge » (point médian, sans pastille d'âge)
- Portrait vide : icône seule, avec aria-label et title « Ajouter une photo »
- Partage : message replié (copie directe, « Voir ou modifier le message »), sur-titre retiré
- Landing : « Se connecter » en bouton secondaire à gauche de « Créer mon arbre », masqué sur téléphone
- Bannière « Votre arbre est créé. » dans la DA (carte pz, Newsreader, bouton pilule)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-18 22:20:20 +02:00
IliesAllaliandClaude Haiku 5.5 f1ecb3951c fix(entree): connexion visible, porte qui reconnaît le compte, libellés
- Démo : le bouton « Se connecter » ouvre la connexion, plus l'inscription
- Porte de l'arbre : quand la personne est connectée, un bandeau dit quel
  compte est ouvert et qu'il faut taper une fois le mot de passe reçu avec
  le lien. Il reste affiché au retour d'une connexion faite depuis la porte.
- Landing : lien « Se connecter » dans la navigation et le pied de page
  (vers ?account=login, sans source, le rendu au build n'a pas de window)
- Libellés de la porte et de l'inscription, en français et en anglais

Vérifié : vitest 154/154, eslint frontend, vite build, landing (test et
build). La landing n'a pas de configuration eslint dans le dépôt.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-18 20:05:18 +02:00
dependabot[bot] 265ae1d9f3 Bump the landing-minor-patch group across 1 directory with 2 updates
Bumps the landing-minor-patch group with 2 updates in the /landing directory: [posthog-js](https://github.com/PostHog/posthog-js) and [postcss](https://github.com/postcss/postcss).


Updates `posthog-js` from 1.438.0 to 1.438.9
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.438.0...posthog-js@1.438.9)

Updates `postcss` from 8.5.29 to 8.5.30
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.29...8.5.30)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.438.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
- dependency-name: postcss
  dependency-version: 8.5.30
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-16 18:32:24 +00:00
dependabot[bot] 2e638d8a43 Bump posthog-js
Bumps the landing-minor-patch group with 1 update in the /landing directory: [posthog-js](https://github.com/PostHog/posthog-js).


Updates `posthog-js` from 1.435.8 to 1.438.0
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.435.8...posthog-js@1.438.0)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-version: 1.435.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: landing-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-09 13:23:34 +00:00
IliesAllaliandClaude Opus 5.5 52fff2b037 Dépendances du 09/10 et version 1.0.2
fast-jwt 6.3.4 (cache du vérificateur, jetons expirés sans iat), source-map-js 1.2.2 et
postcss-selector-parser 7.1.6 forcé sous Tailwind 3 (CSS produit identique octet pour octet).
Landing en Vite 8 et plugin-react 6, mêmes navigateurs cibles que le front, rendu comparé à
l'écran au build Vite 7 en 1920 et 390 px. Groupes mineurs front (#50) et landing (#38).
Reprend #38, #41, #46, #49, #50, #51. CHANGELOG 1.0.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 15:21:08 +02:00
IliesAllaliandClaude Opus 5.5 0365a71618 Suivi avant le Show HN : démo, source jusqu'à l'inscription, un seul clic CTA
- demo_opened (une fois par chargement, visiteur sans compte) et demo_interaction (personne, média, recherche, édition, création d'arbre ; une fois par type, sans contenu)
- Source d'arrivée gardée sur l'appareil (?source=hn) et jointe à account_screen_viewed et account_registered ; la landing transmet la vraie source au CTA et à l'iframe de démo au lieu de source=landing
- Plus de remise à zéro PostHog à chaque ouverture anonyme (effaçait le visiteur de la landing), seulement à la déconnexion
- Landing : un seul événement signup_cta_clicked (hero_cta_clicked retiré, plus utilisé par le funnel), envoyé avant la navigation sans sendBeacon (bloqué par Brave)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 13:41:21 +02:00
IliesAllaliandClaude Opus 5.5 10f1fc5d14 Typo : plus de mot ni de signe seul en fin de ligne
- text-wrap-style pretty sur les paragraphes, listes, légendes et chapôs, balance sur les titres
  (landing, guides statiques, base pz.css de l'app). Longhand pour ne pas réactiver le retour
  à la ligne là où white-space: nowrap est posé. Les noms de l'arbre sont sur le canvas, non touchés.
- Espaces insécables du français dans le texte visible : fine insécable avant ? ! ;,
  insécable avant : et dans les guillemets, entre un nombre et son unité (Mo, Go, €, dpi).
  Landing (i18n.js, bloc fr hors meta) et pages guides FR (corps de page, hors script).
- App : frenchTypography() appliquée par t() en français, avant le remplacement des variables ;
  le dictionnaire anglais reste indexé sur le français tel qu'écrit. Tests mis à jour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:06:44 +02:00
IliesAllaliandClaude Opus 5.5 b41eb7c2ec Landing : capture de l'arbre de démo sous le bouton « Entrer dans la démo »
Avant le chargement de l'iframe, le bloc #demo n'affichait qu'un fond papier
et le bouton n'apparaissait qu'une fois la démo chargée. Une capture fixe de
l'arbre (FR/EN, grand écran et mobile, WebP 29 à 69 Ko, même origine) sert
maintenant de fond, et le bouton est visible dès l'arrivée sur la section.
Le clic garde le même comportement ; s'il arrive avant la fin du chargement,
le symbole de chargement s'affiche par-dessus la capture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 18:25:16 +02:00
IliesAllaliandClaude Opus 5.5 aeb6db9036 Landing : aplats de la démo et de l'appel final en terracotta vive, démo sans ombre
Choix A de Patch le 02/10/2026 sur la planche des trois terracotta : fond
#D2694A (--a500) sur .sec-demo et .final à la place des roses --a50 et
--peche-50, titres et textes en blanc, bouton final blanc à texte encre.
Le cadre de la démo perd son ombre portée, il garde sa bordure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 17:15:05 +02:00
IliesAllaliandClaude Opus 5.5 75922f3ed3 Sécurité 1.0.1 : audit indépendant de la 1.0
- Vidéo piégée : l'expression régulière de position était quadratique, un faux MP4 de 2 Mo figeait l'API (bornée, linéaire)
- Sessions émises avant le 01/10/2026 refusées (SESSIONS_NOT_BEFORE) : des sessions ont fuité dans les annotations et les journaux jusqu'à la 1.0
- Contributions : l'« avant » montré au propriétaire vient de la base ; une suppression approuvée part en cascade (unions, liens, souvenirs, portrait, fichiers)
- Mot de passe de partage : essai compté avant bcrypt, comparaisons une par une, changement et rattachement dans une transaction
- Quota mesuré sur le disque, 10 arbres par compte, corps à 1 Mo hors envois, bornes sur annotations, contributions et GEDCOM
- GIF réencodés ; anciennes propositions d'annotation sans adresse stockée ; clé d'exemple refusée sans NODE_ENV
- Déploiement du commit validé par la CI, clé d'hôte obligatoire ; nginx : X-Forwarded-For écrasé, version masquée, journal sans query string
- PostHog verrouillé dans le code, sans script externe ; CSP sans *.posthog.com ; sauvegardes hors serveur chiffrées par défaut

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:19:41 +02:00
IliesAllaliandClaude Opus 5.5 9d9b6a8480 Landing : React 19.3, posthog-js, autoprefixer (groupe mineur, PR #28)
Versions mineures. Pages vues à l'écran (accueil FR et EN, téléphone, vie privée), 13 tests, et événements PostHog toujours envoyés (requêtes interceptées, comparées avec main).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:12:25 +02:00
IliesAllaliandClaude Opus 5.5 ba15fc8745 Compte : « Supprimer mon compte » joignable, lien mort sans déconnexion
Avec un arbre, la fenêtre « Mon compte » ne menait nulle part : elle a maintenant « Gérer mon compte », qui ouvre « Vos arbres » (déconnexion, suppression du compte), la croix ramène à l'arbre. Sans arbre, « Mon compte » renvoyait aussitôt à l'assistant de création : le repli vers la démo ne se déclenche plus quand l'utilisateur a ouvert l'écran lui-même. Sur le lien d'un arbre supprimé, la session du compte est restaurée, « Créer mon arbre » ouvre le compte connecté au lieu d'un écran de connexion. Page vie privée alignée sur le chemin réel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 23:22:45 +02:00
IliesAllaliandClaude Opus 5.5 038ccd4b35 Vie privée : un seul mot de passe de partage
La page décrivait encore deux mots de passe (visiteur et contributeur). Elle décrit maintenant le mot de passe de partage (haché, et gardé chiffré pour que le propriétaire le relise), la famille qui propose des ajouts, la fermeture des sessions quand il change, le prénom noté sur une contribution, et les photos réenregistrées sans position GPS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 18:37:26 +02:00
IliesAllaliandClaude Opus 5.5 a289c128f4 Portraits du site : Pexels à la place de randomuser.me
Camille et Alex (hero, « Pour qui ») venaient de randomuser.me, sans licence établie pour un site public. Remplacés par deux portraits Pexels recadrés en 400 x 400 (Clay Elliot, Vitaly Gariev), sources dans CREDITS.md. Images d'aperçu refaites depuis le hero actuel, sur le fond de la DA.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 18:37:26 +02:00
IliesAllaliandClaude Opus 5.5 43d56a52e2 Vie privée : polices locales, YouTube et OpenStreetMap, mesure d'audience, accès par mot de passe
Pages française et anglaise alignées sur le code. Polices servies sans Google,
vidéos YouTube et cartes chargées seulement à l'ouverture, pas d'enregistrement
de session ni d'adresse d'arbre envoyée à PostHog, arbre entier et export GEDCOM
pour qui a le mot de passe, contributions anonymisées à la suppression du compte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 18:08:01 +02:00
IliesAllaliandClaude Opus 5.5 6f16b65e2a Site : provenance des photos du hero notée dans CREDITS.md
Unsplash pour les souvenirs, Pexels pour Lya, Marc et Jeanne. Les trois
portraits randomuser.me n'ont pas de licence établie pour un site public,
signalé dans le fichier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 18:05:07 +02:00
IliesAllaliandClaude Opus 5.5 fc55604987 Site : lien « retourner à l'arbre partagé » retiré (return_url non vérifié)
Le paramètre ?source=app-shared&return_url= affichait n'importe quelle adresse
dans un lien du site. L'app ne l'envoie plus, le bloc part.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:58:45 +02:00
IliesAllaliandClaude Opus 5.5 e1e623961d Mesure d'audience : l'adresse d'un arbre ne part plus chez PostHog
before_send réécrit /arbre/<slug> en /arbre/:slug dans toutes les propriétés
(URL, chemin, referrer, propriétés initiales de personne). Enregistrement de
session coupé explicitement, appel /flags coupé (aucun feature flag utilisé,
il envoyait les propriétés de personne sans passer par before_send).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:55:12 +02:00
IliesAllaliandClaude Opus 5.5 f40dbac133 Polices servies par l'app et le site, plus aucun appel à Google Fonts
Newsreader et DM Sans : fichiers woff2 identiques à ceux que servait Google Fonts
(mêmes axes, graisses et découpages), licence OFL à côté des fichiers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:40:02 +02:00
IliesAllaliandClaude Opus 5.5 2d8ac66372 Site en anglais : accueil, aide, vie privée, guides et modèles sous /en/
Accueil prérendu en deux langues, huit pages statiques traduites avec hreflang
des deux côtés, captures de l'aide refaites dans l'app anglaise, modèles PDF
générés en français et en anglais, sitemap. Test des liens internes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:01:16 +02:00
IliesAllaliandClaude Opus 5.5 9e810fd844 Famille arrivée par le lien : accueil, ajout guidé, mode d'emploi
Replays du 24/09 : personne ne trouvait comment ajouter. Pour qu'une
grand-mère s'en sorte seule depuis un lien :

- arbre ouvert zoomé sur la personne de départ quand il est trop grand
  pour être lisible en entier, sans fiche ouverte par-dessus
- carte d'accueil de deux phrases, une seule fois par arbre
- barre du bas en toutes lettres : Ajouter un souvenir, Ajouter une
  personne, Plus (dessin, mode d'emploi, compte)
- « Pour qui ? » : recherche par prénom avec portraits, puis les souvenirs
  de la personne ; panneau simplifié pour la famille
- une personne ajoutée part tout de suite à l'envoi (prénom, un mot)
- fiche ouverte sur Souvenirs avec le bouton, dates en toutes lettres
- bandeau d'envoi masqué tant qu'il n'y a rien à envoyer
- portraits de l'arbre perdus après un rechargement sans nouveau
  placement : horodatage stable et images rechargées à chaque données
- page parenthese.io/aide/ avec captures de l'arbre de démo, liée depuis
  l'accueil, le menu Plus et le message d'invitation

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 18:51:45 +02:00
IliesAllaliandClaude Opus 5.5 5fc0c08c1c Journal des visites, recherche qui mène à la personne, croix de retour à l'arbre
- Visites : chaque ouverture de l'arbre est notée (prénom facultatif demandé avec le mot de passe, appareil, compte), sans adresse IP, effacée après un an ; onglet Visites dans les paramètres, réservé aux administrateurs
- Recherche : un résultat choisi recentre l'arbre sur la personne, la liste se replie
- Écran de compte ouvert depuis l'arbre : croix pour y revenir
- Enfant presque sous l'union : trait direct au lieu d'un petit S
- Page vie privée : paragraphe sur les visites

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 18:44:07 +02:00
IliesAllaliandClaude Opus 5.5 52573cdc9f Landing : visuel du hero ramené à ~1,3 fois sa taille d'origine
Débordement limité à 80 px à droite, hauteur 480 à 560 px.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:29:08 +02:00
IliesAllaliandClaude Opus 5.5 98b3b39940 Arrivée du logo sur la landing, une fois par visite
Les parenthèses s'ouvrent, le rond se pose, le nom suit (700 ms). Le logo
de l'en-tête passe en SVG en ligne (tracés du logo validé, nom arrondi au
dixième). La décision « première page de la session » est prise dans le
<head> avant le premier affichage : pas de clignotement, HTML prérendu
inchangé. Rien si « réduire les animations » est activé.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:23:24 +02:00
IliesAllaliandClaude Opus 5.5 6d2f681307 Landing : visuel du hero agrandi sur ordinateur
Le canvas déborde sur la marge droite jusqu'au bord de l'écran (garde de 24 px)
et monte à 700 px de haut. Environ 1,7 fois plus grand en 1920 px, sans coupure
de 1024 à 1920 px ; mobile et tablette inchangés.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:21:36 +02:00
IliesAllaliandClaude Opus 5.5 7be0748042 Guides : FAQ cousinade, gratuité Geneanet et MyHeritage, typographie
Cousinade : quatre questions ajoutées (qui inviter, budget, repas, activités), title
recentré sur la recherche. Comparatif : ce qui est gratuit et payant chez Geneanet et
MyHeritage, d'après leurs pages tarifs officielles au 25/09/2026. Deux-points et
« galaxie » retirés du texte des anciens guides, espaces insécables avant ? ! ; et
dans les guillemets.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:21:36 +02:00
IliesAllaliandClaude Opus 5.5 afe4a6a6d1 Le rond qui attend : le symbole du logo devient l'indicateur de chargement
Pendant une attente, le rond se divise en trois points qui respirent,
puis se referme avec un léger rebond quand c'est prêt.

- App : écran de démarrage (BootLoader, visible seulement au-delà de 400 ms,
  au moins 900 ms pour ne pas clignoter), remplace « Chargement de l'arbre
  généalogique... ».
- App : les boutons en attente (Création…, Envoi…, Un instant…) montrent
  trois points à la place du libellé, largeur figée, texte gardé pour les
  lecteurs d'écran (PzBusy).
- Landing : chargement de la démo intégrée.
- Réduire les animations : points sur place, fondu seul.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:12:58 +02:00
IliesAllaliandClaude Opus 5.5 f356d1c932 SEO : pieds de page des guides unifiés, restes de Bradford retirés
Chaque page statique liste désormais tous les guides, y compris les deux nouveaux.
Retire la déclaration Bradford et la palette cosmos de Tailwind, l'alias @fonts
de Vite et les .ttf Bradford du frontend, plus utilisés nulle part.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 12:07:00 +02:00
IliesAllali 066f3d4935 Merge branch 'seo/4-comment-faire' into seo/integration 2026-09-25 12:02:33 +02:00
IliesAllali b93f651e8c Merge branch 'seo/3-modele-vierge' into seo/integration 2026-09-25 12:02:32 +02:00
IliesAllali af750c6509 Merge branch 'seo/2-guides-da' into seo/integration 2026-09-25 12:02:32 +02:00
IliesAllaliandClaude Opus 5.5 38d1bc4568 Page modèles d'arbre généalogique à remplir, 5 PDF A4 vierges
Nouvelle page /arbre-genealogique-a-remplir/ (point 3 de l'audit SEO) :
modèles 3 générations, 3 générations avec photos, 4 générations paysage,
5 générations en éventail et arbre dessiné, avec aperçus WebP, section
pour les remplir, renvoi vers la version en ligne et FAQ (JSON-LD).
Gabarits et script de génération Playwright dans landing/modeles/.
Entrée ajoutée au sitemap et au tableau GUIDES de la landing.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:49:11 +02:00
IliesAllaliandClaude Opus 5.5 5f1c3d41f0 Guide « comment faire un arbre généalogique » (audit SEO point 4)
Nouvelle page statique /comment-faire-un-arbre-genealogique/ : sept étapes,
section papier, logiciel ou en ligne, place de Parenthèse, FAQ reprenant
les questions Google, JSON-LD Article, HowTo et FAQPage. Balisage aligné
sur la nouvelle DA des guides (polices, logo, theme-color). Ajout au
sitemap et au tableau GUIDES de la landing.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:43:48 +02:00
IliesAllaliandClaude Opus 5.5 ffc2db759c Guides statiques : passage à la DA terracotta
Les 5 pages de landing/public reprennent les tokens, typos et boutons de la
landing (fond grège, encre, accent terracotta, Newsreader + DM Sans chargées
par Google Fonts). Logo du header remplacé par /logo.svg, theme-color à
#FBFAF7. Suppression des polices Bradford de landing/public/fonts, qui
n'étaient plus référencées que par guides.css.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:42:37 +02:00
IliesAllaliandClaude Opus 5.5 70af00e636 Landing prérendue à la compilation et textes orientés arbre généalogique
- Textes de la landing (pastille, lede, H2 des étapes, de la démo et des guides, Pour qui)
  et métadonnées og/twitter/JSON-LD sans « galaxie »
- npm run build fait le build client, un build SSR (src/entry-server.jsx, renderToString)
  puis scripts/prerender.mjs injecte le HTML dans dist/index.html ; hydrateRoot côté client
- Rendu serveur sans accès window : source et isMobile posés après montage
- noscript rend visibles les blocs data-reveal sans JavaScript
- App : robots.txt en Allow pour que la meta noindex soit lue

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:41:47 +02:00
IliesAllaliandClaude Opus 5.5 5b5636e1be Refonte de la direction artistique : accent terracotta, landing, app et démo
- Landing refaite : nouvelle palette claire, Newsreader et DM Sans, logo validé,
  sections (garanties, trois gestes, démo, pour qui, engagements, guides, bloc final).
  Illustration du hero conservée et recolorée, portraits alignés sur les âges.
- App : couleurs et typographie passées à la nouvelle DA, structure et fonctionnalités inchangées.
  Composants communs dans src/styles/pz.css.
- Refaits de zéro : fiche d'une personne (souvenirs, infos, liens, panneau mobile),
  connexion, création de compte, liste des arbres, accès par mot de passe, recherche,
  barre d'actions, menu du compte, zoom, et toutes les fenêtres (compte, création d'arbre,
  contributions, envoi, sortie d'édition, brouillon, ajout de personne, souvenirs, visionneuse,
  paramètres de l'arbre).
- Arbre : chaque personne garde sa forme de cadre tirée au hasard, cadre vertical pour une photo carrée.
- Démo : photos d'époque libres de droits hébergées dans public/demo (sources et licences
  dans sources.json et CREDITS.md), famille Dupont crédible, Isabelle née à Fort-de-France.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:21:04 +02:00