Skip to content

Commit af0f54d

Browse files
committed
feat: stabilize homepage hero and revalidate lab zone content (v0.7.1)
- fix the homepage hero (h1/tagline/build block) that was randomly picked server-side across 3 variants on every request, forcing force-dynamic; replace it with one stable version aligned on the redesign's value proposition and drop force-dynamic, letting `/` render statically again - revalidate lab zone entries against the redesign plan's "demonstrable content only" rule: drop the paused seo generator experiment, move the unbuilt portfolio-assistant idea to the radar list, and flesh out openclaw and the internal boilerplates with real detail - add an editorial note to the november 2025 liflow article pointing to the may 2026 rewrite, since it described a superseded product concept with no in-page context - fix a stray "in progress" label contradicting liflow/infralens' "available" status elsewhere on the site - close out phase 1 of the portfolio redesign roadmap
1 parent 512e138 commit af0f54d

8 files changed

Lines changed: 66 additions & 110 deletions

File tree

CHANGELOG.md

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

3+
## [0.7.1] — 2026-08-07
4+
5+
### Contenu
6+
7+
- **Homepage** (`app/page.tsx`, `src/components/hero-text.tsx`) — le H1, la tagline et le bloc "Ce que je construis" étaient tirés aléatoirement côté serveur parmi 3 variantes à chaque requête (`force-dynamic`). Fixés sur une seule version stable, alignée sur la proposition de valeur du plan de refonte (développeur TypeScript, applications web et outils métier, mention des apps mobiles Expo/React Native) ; `force-dynamic` retiré, `/` repasse en rendu statique.
8+
- **Lab Zone** (`app/lab/page.tsx`) — 5 → 3 expériences : "Génération de pages SEO locales" (en pause, sans preuve exploitable) retirée ; "Assistant portfolio IA" déplacé de carte Expérience vers la liste "Sur le radar" (simple idée, pas de prototype). OpenClaw et les 2 boilerplates internes étoffés (fonctionnement réel d'OpenClaw détaillé ; stack réutilisée sur plusieurs projets clients/produits mentionnée), sans exposer repo ni chiffres internes.
9+
- **`content/posts/creer-application-saas-retour-experience-liflow.ts`** — note éditoriale ajoutée : l'article (nov. 2025) décrit une version antérieure de Liflow (partage par capsules), périmée depuis le pivot de mai 2026 vers la timeline de souvenirs familiaux ; lien ajouté vers l'article à jour.
10+
11+
### Corrections
12+
13+
- **`app/blog/[slug]/page.tsx`** — "Mes projets en cours" contredisait le statut "Disponible" affiché partout ailleurs pour Liflow/InfraLens ; corrigé en "Mes projets".
14+
15+
### Outillage
16+
17+
- **`docs/roadmap.md`** — Phase 1 (correction du contenu et cohérence produit) du plan de refonte marquée terminée ; les 4 décisions humaines bloquantes tranchées (SEO District → intégré, InfraLens → rewrite sous `randy-code.dev/tools/infralens`, retrait `infralens.dev` à court terme, séquencement conservé tel quel côté master plan).
18+
319
## [0.7.0] — 2026-08-07
420

521
### Outillage

app/blog/[slug]/page.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,7 @@ export default async function BlogPostPage({ params }: Props) {
112112
background: "oklch(0.13 0.012 252)",
113113
}}
114114
>
115-
<p className="mb-4 text-sm font-semibold text-white">
116-
Mes projets en cours
117-
</p>
115+
<p className="mb-4 text-sm font-semibold text-white">Mes projets</p>
118116
<div className="flex flex-wrap gap-3">
119117
<a
120118
href="https://liflow.app"

app/lab/page.tsx

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,23 @@ const experiments = [
1414
status: "Usage quotidien",
1515
statusColor: "#10b981",
1616
tags: ["OpenClaw", "Automation", "Assistant IA"],
17-
desc: "OpenClaw automatise mes tâches répétitives au quotidien : gestion des mails, prise de rendez-vous et rappels partagés, listes. Au-delà de l'automatisation, il fait aussi office d'assistant IA au jour le jour.",
17+
desc: "OpenClaw lit et trie mes mails automatiquement à heure fixe, gère un calendrier partagé, envoie des rappels et tient des listes. Deux fois par jour, il relit l'historique de nos conversations pour mettre sa mémoire à jour tout seul — au-delà de l'automatisation, c'est un assistant IA à part entière dans mon quotidien.",
1818
},
1919
{
2020
id: "02",
2121
title: "Boilerplate SaaS — Convex",
2222
status: "En cours",
2323
statusColor: "#f59e0b",
2424
tags: ["Convex", "TanStack Start", "SaaS Boilerplate"],
25-
desc: "Starter interne pour lancer un SaaS rapidement : Convex remplace Prisma/PostgreSQL pour la base de données et le temps réel, avec auth, facturation, uploads et analytics déjà câblés.",
25+
desc: "Starter interne pour lancer un SaaS rapidement, réutilisé sur mes projets clients et produits : Convex remplace Prisma/PostgreSQL pour la base de données et le temps réel, avec auth, facturation, uploads et analytics déjà câblés.",
2626
},
2727
{
2828
id: "03",
2929
title: "Boilerplate mobile — Expo & Convex",
3030
status: "En cours",
3131
statusColor: "#f59e0b",
3232
tags: ["Expo", "React Native", "Convex", "Better Auth"],
33-
desc: "Deuxième starter interne, pensé mobile : React Native (Expo) sur le même socle Convex/Better Auth que le boilerplate web, pour lancer une app aussi vite qu'un SaaS.",
34-
},
35-
{
36-
id: "04",
37-
title: "Génération de pages SEO locales",
38-
status: "En pause",
39-
statusColor: "#94a3b8",
40-
tags: ["LLM", "Next.js", "ISR"],
41-
desc: "Pipeline pour générer automatiquement des pages SEO locales à partir d'une base de données de villes et de métiers. En pause — reprendra avec le site vitrine automobile quand ce projet redémarrera.",
42-
},
43-
{
44-
id: "05",
45-
title: "Assistant portfolio IA",
46-
status: "En réflexion",
47-
statusColor: "#94a3b8",
48-
tags: ["Claude API", "Next.js", "Streaming"],
49-
desc: 'Un assistant intégré qui permet de naviguer dans le portfolio en langage naturel. "Montre-moi les projets SEO", "C\'est quoi Liflow".',
33+
desc: "Deuxième starter interne, pensé mobile et réutilisé sur les mêmes projets : React Native (Expo) sur le même socle Convex/Better Auth que le boilerplate web, pour lancer une app aussi vite qu'un SaaS.",
5034
},
5135
];
5236

@@ -121,6 +105,7 @@ export default function LabPage() {
121105
"CLI pour scaffolding Next.js",
122106
"Dashboard analytics léger",
123107
"Générateur de contrats freelance",
108+
"Assistant portfolio IA (langage naturel)",
124109
].map((idea) => (
125110
<span
126111
key={idea}

app/page.tsx

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,13 @@
1-
import { HeroText, SeoBlock, heroVariants } from "@/components/hero-text";
1+
import { HeroText, SeoBlock } from "@/components/hero-text";
22
import { WorldMap } from "@/components/map/world-map";
3-
import { cache } from "react";
4-
5-
export const dynamic = "force-dynamic";
6-
7-
const getVariantIndex = cache(() =>
8-
Math.floor(Math.random() * heroVariants.length),
9-
);
103

114
export default function Home() {
12-
const variantIndex = getVariantIndex();
13-
145
return (
156
<main className="flex min-h-screen flex-col px-6 pt-12 pb-16">
167
<div className="mx-auto flex w-full max-w-6xl flex-1 flex-col">
17-
<HeroText variantIndex={variantIndex} />
8+
<HeroText />
189
<WorldMap />
19-
<SeoBlock variantIndex={variantIndex} />
10+
<SeoBlock />
2011
</div>
2112
</main>
2213
);

content/posts/creer-application-saas-retour-experience-liflow.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const post: PostData = {
99
tags: ["SaaS", "développement web", "retour d'expérience"],
1010
coverImage: "/blog/creer-application-saas-retour-experience-liflow.jpg",
1111
content: `
12+
<p><em>Note : cet article date de novembre 2025 et décrit une version antérieure de Liflow, centrée sur le partage par capsules. Le produit a depuis été entièrement repensé — voir <a href="/blog/liflow-refonte-souvenirs-familiaux">l'article de mai 2026</a> pour la version actuelle, recentrée sur la timeline de souvenirs familiaux.</em></p>
1213
<p>Liflow est né d'un besoin très concret : j'avais envie d'un outil de partage simple, clair, et réellement utile au quotidien.</p>
1314
<p>Pour collaborer avec mes proches ou quelques personnes, je me retrouvais sans cesse à jongler avec plusieurs outils : WhatsApp pour discuter, Discord pour certains groupes, Google Drive pour les fichiers, parfois un calendrier à côté… Tout était dispersé, difficile à retrouver, et rarement pensé comme un ensemble cohérent.</p>
1415
<p>J'avais envie de tout regrouper au même endroit, sans bruit inutile.</p>

0 commit comments

Comments
 (0)