Un lecteur sérieux ouvre ton CV et ton site côte à côte. Si une date ou un intitulé ne concorde pas, c'est la première chose qu'il remarque.
Mon CV en PDF et mon site viennent d'un seul jeu de données : des fichiers TypeScript qui décrivent mes expériences et mes projets. Le site les affiche en React. Le CV est produit par un script qui lit les mêmes fichiers.
Le principe, simplifié :
// content/experience.ts : la seule source
export const experience = [
{ company: "…", start: "2025", end: null, delivered: ["…"] },
];
// scripts/build-cv.mjs : lit le même fichier, produit le HTML, puis le PDF
const experience = extractData("content/experience.ts", "experience");
Deux choix qui comptent.
Lire les données plutôt que compiler le TypeScript. Le script extrait le tableau par lecture. Ça évite de monter une chaîne de build juste pour fabriquer un PDF.
Imprimer depuis Chrome en ligne de commande. Le CV est un HTML mis en page pour une page A4, converti avec --print-to-pdf.
Au quotidien : je corrige une date à un seul endroit, je régénère, et le site comme le PDF sont à jour. Plus de version oubliée dans un coin.
Ça vaut pour un CV, mais l'idée vaut pour tout document qui répète une information : une seule source, plusieurs sorties.
Amine Affif, développeur full-stack à Paris. amineaffif.com
Top comments (0)