TL;DR : si vous avez déjà voulu votre écriture en police, les outils connus passent par un site où l’on téléverse sa page. Celui-ci fait le même travail sur votre machine, en une commande, et rend des fichiers web prêts à poser. Espacez bien vos lettres, c’est tout ce qu’il demande.
Fabriquer une police à partir de son écriture n’est pas neuf : on remplit un gabarit, on le scanne, on l’envoie à un service, on récupère un fichier. Le point faible est au milieu de la phrase : on envoie. Sa page part chez quelqu’un d’autre, souvent avec un compte à créer.
draw-your-font supprime cette étape. Licence MIT, Node.js 18 et rien d’autre : ni FontForge, ni ImageMagick, ni potrace à installer à côté. On photographie ses lettres, on lance une commande, on obtient un TTF, un WOFF, un WOFF2 et le CSS @font-face qui va avec.
npx draw-your-font template -o gabarit.pdf --charset minimal
npx draw-your-font make photo.jpg --chars "ABCabc" --name "Mon écriture"
La première commande sort un gabarit A4 à imprimer. La seconde part d’une photo libre, en lui disant dans quel ordre les lettres ont été écrites.
Ce que ça donne chez nous
Nous l’avons fait tourner sur une page de 52 lettres, majuscules et minuscules. La chaîne complète a pris deux secondes : seuillage, détection des lettres, vectorisation, calcul des métriques, écriture des trois formats. Le TTF pèse 21 Ko, le WOFF2 12,6 Ko.
Le résultat n’était pourtant pas bon du premier coup, et le programme l’a dit lui-même : « 51 taches trouvées pour 52 caractères ». La planche de contact montre pourquoi.

Notre W et notre X se touchaient. L’outil détecte des taches d’encre connexes : deux lettres qui se frôlent n’en font qu’une. Et comme il étiquette dans l’ordre où on lui a donné les caractères, tout l’alphabet s’est décalé d’un cran à partir de là. Le texte d’aperçu était illisible.
C’est réparable sans refaire la photo : le mode segment sort les vignettes numérotées, on écrit un fichier qui dit quelle tache porte quelle lettre, et on relance la construction :
npx draw-your-font build -d work --labels work/labels.json --formats ttf,woff,woff2,css

Une seconde et demie plus tard, la police est juste. Il manque le X, forcément, puisqu’il était collé au W : sur une vraie page, on espace, ou on utilise le gabarit imprimé qui impose une case par lettre.
La compétence Claude Code
Le projet publie aussi une compétence pour Claude Code, installable par npx skills add danilo-znamerovszkij/draw-your-font. Son intérêt est exactement là où nous avons trébuché : c’est le modèle qui regarde les vignettes et écrit les étiquettes, au lieu de vous faire compter des numéros. On peut ensuite demander des retouches en conversation, « le g est raté » ou « arrondis davantage ».
Agréable, et facultatif : la ligne de commande seule fait le travail, et la compétence ne fait pas sortir la photo de la machine non plus.
Ce qu’on en pense
L’intérêt n’est pas la prouesse technique, c’est le déplacement : un service en ligne devient un fichier qu’on lance chez soi, même résultat, sans compte. Le WOFF2 tombe directement dans une feuille de style, le TTF s’installe comme n’importe quelle police.
Deux réserves honnêtes. La qualité dépend entièrement de la page de départ : lettres séparées, encre franche, lumière régulière. Et une police tirée d’un seul exemplaire par lettre reste raide, puisque votre vrai « e » change de forme à chaque fois que vous l’écrivez.
Une précision sur notre essai : il portait sur la chaîne de traitement, avec une page d’alphabet produite sur ordinateur, pas sur une écriture au stylo. Les temps et le comportement de la détection sont réels ; la fidélité à une main humaine reste à voir sur une vraie page.