Arbor
arbre de famille partagé · par lien, imprimable
L’arbre de famille que toute la famille tient à jour, à partir d’un lien.
Un arbre généalogique que toute la famille tient à jour ensemble, fait pour un père qui gardait le sien dans un vieux logiciel et le réimprimait à chaque naissance ou séparation. Un lien partagé remplace la réimpression : les proches corrigent l’arbre depuis leur téléphone, chaque modification s’annule, et la version papier s’imprime avec un QR code vers l’arbre en ligne.
- TypeScript
- React
- Cloudflare Workers
- Durable Objects
- SQLite
- Playwright
- Couverture
- 46 %
- lignes exécutées par le cœur généalogique, le Worker et les écrans, lues le 2026-10-08
- Paquets maison
- 11 sur 11
- installés depuis npm
En bref
- Une personne crée la famille et partage un lien ; chaque proche peut ensuite ajouter quelqu’un, corriger une date, joindre une photo ou noter un mariage depuis son téléphone. Sans compte, sans mot de passe, rien à installer.
- De vraies familles, pas un arbre binaire : unions successives et leur fin, adoption et beaux-parents, demi-frères et sœurs, parents inconnus et dates approximatives comme « vers 1880 ».
- Chaque modification est une entrée du journal de la famille, signée par qui l’a faite : tout s’annule, une suppression part à la corbeille, et le gardien peut remettre l’arbre tel qu’il était à n’importe quel moment.
- L’arbre s’imprime en PDF vectoriel, sur une feuille ou réparti sur plusieurs, avec un QR code vers l’arbre en ligne : on ne le réimprime que si quelqu’un veut du papier.
- « Comment sommes-nous parents ? » entre deux personnes, en français simple : « cousin issu de germain », « grand-oncle par alliance ».
- Chaque famille est son propre Durable Object avec sa propre base SQLite : un lien de famille n’atteint jamais que ses propres données, et le tout tourne sur l’offre gratuite de Cloudflare.
Paquets maison
11 des 11 paquets maison, depuis npm, jusqu’aux réglages du compilateur et du linter.
- @adrienlcp/react-routerLe fournisseur de routeur que prend chaque app.0.1.1
- @adrienlcp/i18nTraduit, et sait dès la compilation ce que chaque message attend.0.3.0
- @adrienlcp/theme-preferenceGarde le thème choisi sans flash, jusqu’à la barre du téléphone.0.3.0
- @adrienlcp/browserCopie dans le presse-papiers même en HTTP simple, où l’API Clipboard n’existe pas.0.1.1
- @adrienlcp/reactLes utilitaires de contexte dont part chaque app React.0.3.0
- @adrienlcp/react-ariaL’anneau de focus et la composition de classes sur react-aria-components.0.1.0
- @adrienlcp/stylesLe reset et les styles partagés dont part chaque projet.0.5.0
- @adrienlcp/resultDit si quelque chose a marché, sans exception et sans null.0.1.0
- @adrienlcp/safe-storageÔte les exceptions de localStorage et renvoie un Result à la place.0.1.0
- @adrienlcp/tsconfigLes réglages du compilateur qu’étend chaque projet.0.1.0
- @adrienlcp/biome-configLes réglages du linter et du formateur qu’étend chaque projet.0.1.0