Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .jules/spider.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
## 2024-05-19 - Typechecking JSON-LD Date Properties
**Learning:** When passing potentially null date fields (like `publishedAt`, `updatedAt`) from Payload CMS to jsonLd generator functions, using the fields directly can cause strict TypeScript compilation failures since the schemas explicitly expect `string | undefined` and not `null`.
**Action:** Always use the logical OR operator with `undefined` (e.g., `datePublished: post.publishedAt || undefined`) when passing date properties to JSON-LD generator functions to satisfy strict type requirements and prevent build regressions.
## 2024-06-10 - Replace meaningless <button> wrappers with semantic <Link> tags
**Learning:** In sections with Call to Actions (CTAs) acting as navigation but using `<button>` wrappers without explicit `href` or `onClick` (such as in `KineticBlades.tsx`), search engine crawlers are unable to follow the pseudo-links, severely impacting indexability of the deeper content like `/solutions`.
**Action:** Always use semantic `<Link>` components with an explicit `href` instead of `<button>` tags for interactive elements that trigger navigation, in order to maximize crawlability.
6 changes: 4 additions & 2 deletions src/components/expertise/KineticBlades.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import React, { useRef, useState } from 'react'
import { Plant, Bed, UsersThree, ArrowRight } from '@phosphor-icons/react/dist/ssr'
import clsx from 'clsx'
import Link from 'next/link'
import gsap from 'gsap'
import { useGSAP } from '@gsap/react'

Expand Down Expand Up @@ -247,10 +248,11 @@ export function KineticBlades() {
</div>

{/* CTA */}
<button className="group mt-8 flex items-center gap-2 font-mono text-xs font-bold uppercase tracking-widest text-white transition-colors hover:text-[#FFAA00]">
{/* SEO: Using Next.js <Link> with href instead of meaningless <button> improves crawlability for search engines */}
<Link href="/solutions" className="group mt-8 flex items-center gap-2 font-mono text-xs font-bold uppercase tracking-widest text-white transition-colors hover:text-[#FFAA00]">
Découvrir la solution
<ArrowRight className="transition-transform group-hover:translate-x-1" />
</button>
</Link>
</div>
</div>

Expand Down