SPB Git

spb/groupe-ka Public

Groupe KA — site du holding + KA ID (compte unique & SSO des 7 plateformes). Next.js 16, SQLite, Google & Apple login.

TypeScript 93.9% CSS 6%

feat: ajout de la section Ka2, l'agent de découverte web du groupe

Nouvelle section #ka2 sur la page d'accueil (carte produit + carte rôle
dans l'écosystème), lien dans la nav, le ticker et le footer vers
www.ka2.bot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed 1 h ago (Aug 13, 2026) parent feadd29

Showing 2 changed files with +110 and −0

modified src/app/layout.tsx +3 −0
@@ -35,6 +35,7 @@ const NAV_ITEMS = [
35 35 { href: "/#chiffres", label: "Chiffres" },
36 36 { href: "/#produits", label: "Plateformes" },
37 37 { href: "/#socle", label: "Le socle" },
38 + { href: "/#ka2", label: "Ka2, le bot" },
38 39 { href: "/#mission", label: "Mission" },
39 40 { href: "/#contact", label: "Contact" },
40 41 ];
@@ -50,6 +51,7 @@ const TICKER_ITEMS = [
50 51 "23 700+ prix d'épicerie suivis chez 20 bannières",
51 52 "3 747 008 propriétés évaluées au Québec",
52 53 "393 867 plex · 1 733 744 portes",
54 + "Ka2 cartographie le web québécois — www.ka2.bot",
53 55 "Zéro boîte noire — tout est automatisé, rien n'est inventé",
54 56 ];
55 57
@@ -208,6 +210,7 @@ export default function RootLayout({
208 210 ["Auto·Ka", "https://www.auto-ka.com"],
209 211 ["Fabri·Ka", "https://www.fabri-ka.com"],
210 212 ["Food·Ka", "https://www.food-ka.com"],
213 + ["Ka2", "https://www.ka2.bot"],
211 214 ].map(([label, href]) => (
212 215 <li key={label}>
213 216 <a
modified src/app/page.tsx +107 −0
@@ -515,6 +515,113 @@ export default function Home() {
515 515 </div>
516 516 </Section>
517 517
518 + {/* ---------- Ka2 — l'agent de découverte ---------- */}
519 + <Section
520 + id="ka2"
521 + kicker="L'éclaireur du groupe · découverte web"
522 + title={
523 + <>
524 + Avant d&apos;agréger, <span className="hl">Ka2 découvre</span>
525 + </>
526 + }
527 + >
528 + <p className="mt-3 max-w-xl text-[14.5px] text-ink-2">
529 + Les connecteurs ·Ka lisent des sources connues. Mais qui trouve les
530 + sources ? Ka2, l&apos;agent de découverte web du groupe : un bot IA
531 + qui explore et cartographie le web québécois, entité par entité, pour
532 + alimenter tout l&apos;écosystème.
533 + </p>
534 + <div className="mt-7 grid items-stretch gap-6 lg:grid-cols-[minmax(0,1.15fr)_minmax(0,1fr)]">
535 + <article className="gk-card gk-card-hover p-5 sm:p-7">
536 + <div className="flex flex-wrap items-baseline justify-between gap-3">
537 + <span className="gk-mono text-[12px] font-bold text-green">
538 + BOT
539 + </span>
540 + <span className="klabel">www.ka2.bot</span>
541 + </div>
542 + <h3 className="gk-display mt-4 inline-flex items-baseline gap-[5px] text-[32px] font-bold tracking-[-0.04em] sm:text-[38px]">
543 + Ka
544 + <span
545 + className="inline-block -rotate-2 rounded-md px-[8px] pb-[3px]"
546 + style={{ background: "#141814", color: "#d9f26b" }}
547 + >
548 + 2
549 + </span>
550 + </h3>
551 + <p className="gk-display mt-3 text-[17px] font-bold uppercase tracking-[-0.01em]">
552 + Le web québécois, cartographié entité par entité.
553 + </p>
554 + <p className="mt-3 text-[13.5px] leading-relaxed text-ink-2">
555 + Ka2 est un bot IA de cartographie : il parcourt le web québécois,
556 + identifie les entités — entreprises, organisations, personnes,
557 + sites web — et les documente. Propulsé par Claude Haiku 4.5 avec
558 + Firecrawl et Scrapfly, il ne copie pas les pages : il les
559 + comprend, puis les classe.
560 + </p>
561 + <div className="mt-5 flex flex-wrap gap-2">
562 + <span className="stat-chip !text-[11px]">4 types d&apos;entités</span>
563 + <span className="stat-chip !text-[11px]">Propulsé par IA</span>
564 + <span className="stat-chip !text-[11px]">robots.txt respecté</span>
565 + </div>
566 + <ul className="mt-5 space-y-2 border-t-[1.5px] border-dashed border-[rgba(20,24,20,0.25)] pt-5">
567 + {[
568 + "Découverte et classement : entreprises, organisations, personnes, sites web",
569 + "Chaque page lue est comprise par un modèle d'IA, pas seulement copiée",
570 + "Budget quotidien et délais entre requêtes — un crawl qui ménage les sites",
571 + "Données publiques seulement, Loi 25 et LPRPDE comme plancher",
572 + ].map((f) => (
573 + <li key={f} className="flex gap-3 text-[13.5px] text-ink-2">
574 + <span
575 + aria-hidden="true"
576 + className="mt-[7px] h-[5px] w-[5px] flex-none rotate-45 border border-ink bg-lime"
577 + />
578 + {f}
579 + </li>
580 + ))}
581 + </ul>
582 + <a
583 + href="https://www.ka2.bot"
584 + target="_blank"
585 + rel="noopener noreferrer"
586 + className="btn btn-primary mt-6 w-full sm:w-auto"
587 + >
588 + Visiter www.ka2.bot ↗
589 + </a>
590 + </article>
591 + <div className="gk-card !bg-ink p-6 text-paper sm:p-7">
592 + <p className="kicker !text-lime">Le rôle de Ka2 dans l&apos;écosystème</p>
593 + <p className="gk-display mt-4 text-[clamp(24px,3.2vw,34px)] leading-[1.05] font-bold tracking-[-0.03em] uppercase">
594 + Ka2 découvre
595 + <br />
596 + <span className="text-lime">→ ·Ka agrège</span>
597 + <br />→ vous trouvez
598 + </p>
599 + <p className="mt-4 max-w-md text-[13.5px] text-[rgba(245,243,238,0.75)]">
600 + Ka2 est l&apos;éclaireur du groupe : il cartographie le terrain
601 + avant que les connecteurs ne s&apos;y branchent. Une nouvelle
602 + boutique québécoise, un nouveau gestionnaire immobilier, un
603 + concessionnaire qui ouvre — Ka2 les repère, et les plateformes
604 + ·Ka les intègrent.
605 + </p>
606 + <ul className="mt-5 space-y-2 border-t border-[rgba(245,243,238,0.15)] pt-5 text-[13px] text-[rgba(245,243,238,0.75)]">
607 + {[
608 + "Respecte systématiquement robots.txt",
609 + "Ne traite que des données publiques",
610 + "Zéro boîte noire — le fonctionnement est documenté sur ka2.bot",
611 + ].map((f) => (
612 + <li key={f} className="flex gap-3">
613 + <span
614 + aria-hidden="true"
615 + className="mt-[6px] h-[5px] w-[5px] flex-none rotate-45 bg-lime"
616 + />
617 + {f}
618 + </li>
619 + ))}
620 + </ul>
621 + </div>
622 + </div>
623 + </Section>
624 +
518 625 {/* ---------- Manifeste ---------- */}
519 626 <Section id="mission" kicker="Notre manifeste" title="Trois principes, aucune exception">
520 627 <div className="mt-7 grid gap-4 sm:grid-cols-3">
521 628