Skip to content

Commit 4bfc158

Browse files
committed
feat: link articles to their project case studies (v0.7.9)
- point each article's "mes projets" footer CTA at /projects/liflow and /projects/infralens instead of the external liflow.app/infralens.dev links — those case study pages already carry the external product links, so nothing is lost, just one more relevant internal hop - partial phase 10 (articles): rss feed and the ssrf article are explicitly deferred until after a pause, not part of this commit
1 parent 4638ec1 commit 4bfc158

4 files changed

Lines changed: 23 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## [0.7.9] — 2026-08-08
4+
5+
### Contenu
6+
7+
- **Liens articles → études de cas** (`app/articles/[slug]/page.tsx`) — le bloc "Mes projets" en pied de chaque article pointait directement vers `liflow.app`/`infralens.dev` en externe ; pointe maintenant vers `/projects/liflow` et `/projects/infralens` en interne. Les études de cas gardent déjà les liens produit externes, rien n'est perdu.
8+
39
## [0.7.8] — 2026-08-08
410

511
### Contenu

app/articles/[slug]/page.tsx

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { formatDate, getPost, posts } from "@/lib/blog";
22
import { buildArticleSchema } from "@/lib/json-ld";
3-
import { ArrowLeft, Clock, ExternalLink } from "lucide-react";
3+
import { ArrowLeft, Clock } from "lucide-react";
44
import type { Metadata } from "next";
55
import Image from "next/image";
66
import Link from "next/link";
@@ -132,32 +132,28 @@ export default async function BlogPostPage({ params }: Props) {
132132
>
133133
<p className="mb-4 text-sm font-semibold text-white">Mes projets</p>
134134
<div className="flex flex-wrap gap-3">
135-
<a
136-
href="https://liflow.app"
137-
target="_blank"
138-
rel="noopener noreferrer"
135+
<Link
136+
href="/projects/liflow"
139137
className="inline-flex items-center gap-1.5 rounded-lg px-4 py-2 text-sm font-medium transition-opacity hover:opacity-80"
140138
style={{
141139
backgroundColor: "#ffffff0d",
142140
color: "#ffffff",
143141
border: "1px solid #ffffff18",
144142
}}
145143
>
146-
Découvrir Liflow <ExternalLink size={12} />
147-
</a>
148-
<a
149-
href="https://infralens.dev"
150-
target="_blank"
151-
rel="noopener noreferrer"
144+
Découvrir Liflow →
145+
</Link>
146+
<Link
147+
href="/projects/infralens"
152148
className="inline-flex items-center gap-1.5 rounded-lg px-4 py-2 text-sm font-medium transition-opacity hover:opacity-80"
153149
style={{
154150
backgroundColor: "#ffffff0d",
155151
color: "#ffffff",
156152
border: "1px solid #ffffff18",
157153
}}
158154
>
159-
Découvrir InfraLens <ExternalLink size={12} />
160-
</a>
155+
Découvrir InfraLens
156+
</Link>
161157
</div>
162158
</div>
163159
</div>

docs/roadmap.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Ces écarts réels remplacent les hypothèses génériques du master plan pour p
4242
| 7 | Espace Outils | InfraLens = 1er outil utilisable | Créer `/tools`, `/tools/infralens`, décider sous-domaine vs rewrite (**décision humaine**, section 9.2) | **B6 — Intégration InfraLens** (signature "by Randy Code") | Phase 2, 6 |
4343
| 8 | Amélioration propre InfraLens | Renforcer avant/pendant migration | Hors dépôt `randy-code` (dépôt InfraLens séparé, règle 3.6) — SSRF, rate limiting distribué, etc. à traiter côté InfraLens | — | Phase 7 |
4444
| 9 | À propos, Background, stack | Profil cohérent et crédible | ✅ **Terminée (2026-08-08)** : fusion `/background` déjà faite en Phase 2, méthode et CTA déjà présents. Écart réel restant traité : stack technique passée d'une liste plate de 21 technos à 4 niveaux hiérarchisés (Principal/Backend et données/Produit et infrastructure/Expérimentations, section 10.2 du master plan) — même 21 technos, aucune ajoutée ni retirée. | — | Phase 2 |
45-
| 10 | Articles et contenu technique | Knowledge Base = preuve d'expertise | 7 articles déjà présents dans `content/posts/` — travail de structuration/mise en avant, pas de création ex nihilo | — | Phase 2 |
45+
| 10 | Articles et contenu technique | Knowledge Base = preuve d'expertise | 🔶 **En cours (2026-08-08)** : liens internes vers `/projects/liflow` et `/projects/infralens` ajoutés en pied de chaque article (remplacent les liens externes directs). Reste : flux RSS, article SSRF (reportés après pause, cf. section 5). | — | Phase 2 |
4646
| 11 | SEO technique et migrations | Finaliser indexation | Ajouter le champ `openGraph` explicite (absent de `app/layout.tsx`), redirections `/apps`, `/background`, `/blog` | **B5 — Logo Randy Code** (favicon, OG) | Phases 1-10 |
4747
| 12 | Accessibilité, performance, QA finale | Valider la qualité production | Corriger le `color-contrast` Lighthouse, ajouter une analyse de bundle (absente sous Turbopack Next 16), re-vérifier les CVE `sharp`/`postcss` | **B7 — QA branding** | Phases 1-11 |
4848
| 13 | Mise en ligne et suivi | Déployer avec stratégie mesurable | Décision domaine `infralens.dev` à prendre avec données réelles (section 9.3) | — | Phase 12 |
@@ -64,4 +64,9 @@ Rappelées pour mémoire, à ne pas anticiper : refonte InfraLens (dépôt sépa
6464

6565
## 5. Prochaine étape
6666

67-
Phases 5, 6 et 9 terminées. La Phase 7 (Espace Outils / rewrite InfraLens) est explicitement repoussée — Randy veut finir le reste du portfolio avant de toucher à l'intégration InfraLens (2026-08-08). Reste réaliste à court terme : **Phase 10 — Articles** (les 7 articles existants à mieux relier/structurer, RSS éventuel) ou **Phase 11 — SEO technique** (champ `openGraph` explicite manquant sur `app/layout.tsx`, données structurées `SoftwareApplication` pour Liflow/InfraLens). À confirmer avec Randy avant de choisir.
67+
Phases 5, 6, 9 terminées ; Phase 10 en cours (liens projets faits, RSS et article SSRF explicitement reportés après une pause). La Phase 7 (Espace Outils / rewrite InfraLens) reste repoussée — Randy veut finir le reste du portfolio d'abord (2026-08-08).
68+
69+
**Phase 10 — reste à faire (après la pause, confirmé par Randy le 2026-08-08)** :
70+
71+
1. Flux RSS (`app/rss.xml/route.ts`, premier route handler du projet — mécanique, sans invention de contenu).
72+
2. Article "Sécuriser un analyseur d'URL contre le SSRF" (recommandation section 11.2/19) — vérifier les vraies protections SSRF dans le code InfraLens (accès déjà confirmé) avant d'écrire, ne pas se fier uniquement à ce qui est déjà publié.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "randy-code",
3-
"version": "0.7.8",
3+
"version": "0.7.9",
44
"private": true,
55
"packageManager": "pnpm@10.7.0",
66
"scripts": {

0 commit comments

Comments
 (0)