Comment ajouter le support bilingue FR/EN à un blog PHP sans CMS : routing .htaccess, hreflang, toggle langue avec drapeaux SVG, posts.json restructuré — zéro bibliothèque i18n.
Retour d'expérience sur le SEO de CitoyenNote, une SPA Vue.js 3 + Vite : meta tags dynamiques avec @unhead/vue, Open Graph, sitemap Symfony, JSON-LD Schema.org. Du constat choc à la correction complète.
Différences clés entre Vue 2 et Vue 3 (réactif Proxy, tree-shaking, TypeScript), et comparaison honnête entre Composition API et Options API — points forts, points faibles, et quand choisir quoi.
Pourquoi j'ai choisi PicoCSS pour un projet Symfony avec un design institutionnel précis. Bootstrap surcharge trop, Tailwind demande trop. PicoCSS laisse le contrôle.
Port PostgreSQL en conflit, permissions Docker group qui ne prennent pas, services qui ne démarrent pas. Setup complet d'un stack Symfony 7 + PostgreSQL + Redis sous WSL2.
Comment calculer automatiquement des articles similaires depuis un fichier JSON en PHP pur — scoring par tags et catégorie, zéro dépendance, zéro requête SQL.
Tracker les visites d'un portfolio PHP sans Google Analytics, sans cookies, sans BDD et sans bandeau RGPD. IP anonymisée, log fichier protégé, dashboard maison — les choix de sécurité qui rendent ça légal.
Comment forcer le navigateur à recharger un fichier JSON après une mise à jour, sans toucher à la config serveur ni activer mod_headers. Une ligne de PHP suffit.
Ajouter une pagination à un blog qui charge ses articles en JS depuis un JSON. Contrainte : aucun élément caché dans le DOM, aucun framework. 30 lignes suffisent.
Comment implémenter un système de commentaires en PHP pur avec stockage JSON, anti-spam honeypot, rate limiting et CSRF — sans aucune dépendance externe.