SPB Git forge

spb/groupe-ka

Public

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

81commits 1branches 0releases
89.2 MBsize
maindefault branch
22 days agolast push
TypeScript 70.4% HTML 18.4% JavaScript 4% Python 3.8% CSS 3.4%

Onglet Investisseurs : page /investisseurs + 6 documents corporatifs PDF (plan d affaires, concept, etats financiers previsionnels 2026-2029, infrastructure MacLustr, cout de developpement Claude Code, scenarios d expansion) — liens nav + footer

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed 1 mo ago (Aug 23, 2026) parent 736bf09

8 changed files +155 −0

added public/investisseurs/concept-ka-agregateur.pdf +0 −0

Binary file not shown.

added public/investisseurs/cout-developpement-claude-code.pdf +0 −0

Binary file not shown.

added public/investisseurs/etats-financiers-previsionnels-2026-2029.pdf +0 −0

Binary file not shown.

added public/investisseurs/expansion-scenarios-cout.pdf +0 −0

Binary file not shown.

added public/investisseurs/infrastructure-maclustr.pdf +0 −0

Binary file not shown.

added public/investisseurs/plan-affaires.pdf +0 −0

Binary file not shown.

added src/app/investisseurs/page.tsx +150 −0
@@ -0,0 +1,150 @@
1 +// Auteur : Simon-Pierre Boucher — contact@spboucher.ai
2 +// /investisseurs — Investor information : les documents corporatifs du
3 +// Groupe KA en libre accès (plan d'affaires, concept, états financiers
4 +// prévisionnels, infrastructure, coûts mesurés, scénarios d'expansion).
5 +// La transparence, jusqu'aux chiffres — comme partout ailleurs sur le site.
6 +import type { Metadata } from "next";
7 +
8 +export const metadata: Metadata = {
9 + title: "Investisseurs — Investor information",
10 + description:
11 + "Les documents corporatifs du Groupe KA en libre accès : plan d'affaires, concept ·Ka & agrégation, états financiers prévisionnels 2026–2029, infrastructure MacLustr, coût de développement mesuré et scénarios d'expansion.",
12 +};
13 +
14 +type Doc = {
15 + title: string;
16 + subtitle: string;
17 + date: string;
18 + pages: string;
19 + size: string;
20 + href: string;
21 + note: string;
22 + tone: "lime" | "paper";
23 +};
24 +
25 +const DOCS: Doc[] = [
26 + {
27 + title: "Plan d'affaires",
28 + subtitle: "Le document maître",
29 + date: "2026-08-23",
30 + pages: "10 pages",
31 + size: "1,0 Mo",
32 + href: "/investisseurs/plan-affaires.pdf",
33 + note: "Mission, les 13 plateformes, marché et concurrence, modèle de revenus, avantage concurrentiel, feuille de route Québec 2026 · Canada 2027 · Amérique du Nord 2028 · Monde 2030, risques et synthèse financière.",
34 + tone: "lime",
35 + },
36 + {
37 + title: "Le concept ·Ka & l'agrégateur",
38 + subtitle: "La philosophie du groupe",
39 + date: "2026-08-23",
40 + pages: "7 pages",
41 + size: "0,7 Mo",
42 + href: "/investisseurs/concept-ka-agregateur.pdf",
43 + note: "Un suffixe, une promesse : gratuit, neutre, exhaustif, à jour. Les trois lois de l'agrégation, l'anatomie du pipeline de données, le socle commun (ka-ui, KA ID, KA Agent, KA Scores) et l'éthique.",
44 + tone: "paper",
45 + },
46 + {
47 + title: "États financiers prévisionnels 2026–2029",
48 + subtitle: "Non audités · dollars canadiens",
49 + date: "2026-08-23",
50 + pages: "8 pages",
51 + size: "0,8 Mo",
52 + href: "/investisseurs/etats-financiers-previsionnels-2026-2029.pdf",
53 + note: "État des résultats, produits par flux, charges par poste (dont abonnements contractuels), rentabilité — seuil atteint en 2027, marge nette ~50 % en 2029 —, trésorerie autofinancée et notes.",
54 + tone: "paper",
55 + },
56 + {
57 + title: "Infrastructure — la grappe MacLustr",
58 + subtitle: "L'actif matériel du groupe",
59 + date: "2026-08-23",
60 + pages: "8 pages",
61 + size: "1,0 Mo",
62 + href: "/investisseurs/infrastructure-maclustr.pdf",
63 + note: "20 nœuds Apple Silicon (284 cœurs, 768 Go RAM) détenus en propre, inventaire valorisé, architecture réseau, déploiement des 13 plateformes et pile d'automatisation (Claude Code sur 5 nœuds).",
64 + tone: "paper",
65 + },
66 + {
67 + title: "Coût de développement — Claude Code",
68 + subtitle: "Le réalisé, mesuré",
69 + date: "2026-08-23",
70 + pages: "7 pages",
71 + size: "0,9 Mo",
72 + href: "/investisseurs/cout-developpement-claude-code.pdf",
73 + note: "13 plateformes et 315 000 lignes de code construites en 18 jours pour 8 650 $ US (équivalent API) : coût par site, par langage, par lieu d'exécution — la preuve économique du modèle.",
74 + tone: "paper",
75 + },
76 + {
77 + title: "Expansion — scénarios de coût",
78 + subtitle: "Du Québec au monde",
79 + date: "2026-08-23",
80 + pages: "6 pages",
81 + size: "0,7 Mo",
82 + href: "/investisseurs/expansion-scenarios-cout.pdf",
83 + note: "Extrapolation calibrée sur le coût québécois : Canada ≈ 23 k$, Amérique du Nord ≈ 100 k$, monde ≈ 210 k$ — le coût par habitant couvert divisé par 8 à l'échelle mondiale.",
84 + tone: "paper",
85 + },
86 +];
87 +
88 +function PdfIcon({ className }: { className?: string }) {
89 + return (
90 + <svg viewBox="0 0 24 24" className={className} aria-hidden="true" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round">
91 + <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
92 + <path d="M14 2v6h6" />
93 + <path d="M9 15h6M9 18h4" />
94 + </svg>
95 + );
96 +}
97 +
98 +export default function InvestisseursPage() {
99 + return (
100 + <main className="mx-auto max-w-6xl px-4 py-12 sm:px-6">
101 + <p className="kicker">Investor information · La transparence, jusqu&apos;aux chiffres</p>
102 + <h1 className="gk-display mt-3 text-[clamp(28px,4.5vw,44px)] leading-[1.02] font-bold tracking-[-0.035em] uppercase">
103 + Investis<span className="hl">seurs</span>
104 + </h1>
105 + <p className="mt-4 max-w-2xl text-[14.5px] text-ink-2">
106 + Le Groupe KA publie ses documents corporatifs comme il publie ses
107 + données : en entier. Plan d&apos;affaires, concept, prévisions
108 + financières, infrastructure, coûts réellement mesurés et scénarios
109 + d&apos;expansion — six documents PDF, produits en août 2026, en libre
110 + accès. Aucune ronde de financement n&apos;est en cours : le plan est
111 + autofinancé.
112 + </p>
113 +
114 + <div className="mt-10 grid gap-6 md:grid-cols-2">
115 + {DOCS.map((d) => (
116 + <article key={d.href} className="gk-card gk-card-hover flex flex-col p-6">
117 + <div className="flex items-start justify-between gap-3">
118 + <span className="flex h-12 w-12 items-center justify-center rounded-xl border-[1.5px] border-ink bg-ink text-lime">
119 + <PdfIcon className="h-6 w-6" />
120 + </span>
121 + <span className="gk-mono text-[10px] font-bold tracking-[0.08em] text-ink-3 uppercase">
122 + {d.pages} · {d.size}
123 + </span>
124 + </div>
125 + <h2 className="gk-display mt-3 text-[19px] leading-tight font-bold">{d.title}</h2>
126 + <p className="gk-mono mt-1 text-[11px] font-bold tracking-[0.08em] text-green uppercase">
127 + {d.subtitle} · {d.date}
128 + </p>
129 + <p className="mt-3 flex-1 text-[13px] text-ink-2">{d.note}</p>
130 + <a
131 + href={d.href}
132 + target="_blank"
133 + rel="noopener"
134 + className="gk-display mt-5 inline-block rounded-full border-[1.5px] border-ink bg-ink px-5 py-[10px] text-center text-[14px] font-bold text-lime transition-colors hover:bg-green-deep"
135 + >
136 + Consulter le PDF ↓
137 + </a>
138 + </article>
139 + ))}
140 + </div>
141 +
142 + <p className="gk-mono mt-10 text-[11px] leading-relaxed text-ink-3">
143 + Les prévisions sont préparées par la direction et non auditées ; les
144 + coûts de développement sont mesurés à partir des journaux de sessions.
145 + Questions d&apos;affaires et partenariats : contact@groupe-ka.com.
146 + Documents produits avec Claude Code sur l&apos;infrastructure du groupe.
147 + </p>
148 + </main>
149 + );
150 +}
modified src/app/layout.tsx +5 −0
@@ -120,6 +120,7 @@ const NAV_ITEMS = [
120 120 { href: "/#bots", label: "Bots" },
121 121 { href: "/stats", label: "Stats" },
122 122 { href: "/rapports", label: "Rapports" },
123 + { href: "/investisseurs", label: "Investisseurs" },
123 124 { href: "/telecharger", label: "Télécharger" },
124 125 { href: "/status", label: "Statut" },
125 126 { href: "/#contact", label: "Contact" },
@@ -404,6 +405,10 @@ export default async function RootLayout({
404 405 Rapports quotidiens
405 406 </a>{" "}
406 407 ·{" "}
408 + <a href="/investisseurs" className="underline-offset-4 hover:text-lime hover:underline">
409 + Investisseurs
410 + </a>{" "}
411 + ·{" "}
407 412 <a href="/status" className="underline-offset-4 hover:text-lime hover:underline">
408 413 État des services
409 414 </a>{" "}
410 415