From 3b56daf87072ac202099f0bef394d9ac616d139d Mon Sep 17 00:00:00 2001
From: Bogdan Truta
Date: Thu, 1 Oct 2026 12:14:08 +0000
Subject: [PATCH] landing: replace the fake waitlist with real links; say what
the product does
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The waitlist wrote the visitor's email to their own localStorage and then
told them "We'll email you when closed beta opens up a spot". Nobody ever
received those addresses and there is no beta: LearnLoop is open source and
self-hosted. The hero now links to the repo, SELFHOSTING.md and the demo
video, and the pill says "Open source · MIT · self-hosted".
Copy that did not match the code:
- browser support for ChatGPT and Gemini: the extension only runs on claude.ai
- "Copilot CLI": the MCP wiring targets Copilot Chat in VS Code
- "every prompt that scores 9+/10 is auto-deduped into the wiki": library
promotion is mean >= 7, no dimension < 5, confirmed by a second score;
wiki learnings become durable after three mentions
- "below 7/10 LearnLoop rewrites the prompt": it holds the send and offers
Improve / send as-is / edit
- "mcp-server (4 tools)": there are five
- the VS Code "⌘⇧K scaffold" was specced but never built
- an unsourced "fewer than 25%" statistic
Also removes six components that were never rendered (Solution,
ScaffoldMock, MCPMock, SkillArcMini, TeamMetricsMini, WikiTreeMini); two of
them advertised the unbuilt scaffold and made-up team metrics. Footer and
nav link to GitHub and the licence.
Co-Authored-By: Claude Opus 5.5
---
apps/landing-page/components/footer.jsx | 8 +-
apps/landing-page/components/hero.jsx | 154 +++--------------
apps/landing-page/components/nav.jsx | 1 +
apps/landing-page/components/primitives.jsx | 4 +-
apps/landing-page/components/sections.jsx | 175 ++------------------
5 files changed, 46 insertions(+), 296 deletions(-)
diff --git a/apps/landing-page/components/footer.jsx b/apps/landing-page/components/footer.jsx
index 46ca3c0..a43cc46 100644
--- a/apps/landing-page/components/footer.jsx
+++ b/apps/landing-page/components/footer.jsx
@@ -6,7 +6,13 @@ function Footer() {
PoliHack v19 · BMW · AppDev with AI · "Applications that encourage AI adoption"
;
}
-Object.assign(window, { Logomark, Wordmark, SectionKicker, SectionTitle, Reveal, LiveDot, Orbs, Container });
+Object.assign(window, { REPO_URL, Logomark, Wordmark, SectionKicker, SectionTitle, Reveal, LiveDot, Orbs, Container });
diff --git a/apps/landing-page/components/sections.jsx b/apps/landing-page/components/sections.jsx
index ac378c4..1afb578 100644
--- a/apps/landing-page/components/sections.jsx
+++ b/apps/landing-page/components/sections.jsx
@@ -1,4 +1,4 @@
-// Problem · Solution · Features · Demo
+// Problem · Features · Demo
function Problem() {
return (
@@ -11,8 +11,8 @@ function Problem() {
It's that teams don't know how to use it together.
- Today, almost every developer uses AI individually — but fewer than 25% know how to integrate
- it into how their team actually works. The result: inconsistent prompts, lost context,
+ Most developers use AI on their own. What one person learns about prompting the
+ team's codebase rarely reaches anyone else. The result: inconsistent prompts, lost context,
and slow onboarding.
@@ -21,92 +21,34 @@ function Problem() {
);
}
-function Solution() {
- const pillars = [
- {
- n:'01',
- title:'Standardizes every prompt to your team',
- body:"A 5-dimension scorecard runs live under every textarea — goal, specificity, context, constraints, output. Below 7/10? It rewrites the prompt in your team's voice, with your team's conventions, before you hit send.",
- tone:'#2BC68A',
- },
- {
- n:'02',
- title:"Loads the knowledge base into the LLM's context",
- body:"Your repo's wiki — patterns, conventions, past decisions — is injected into the model's context automatically, scoped to the file you're working on. No more pasting links or re-explaining the codebase.",
- tone:'#3D8BFF',
- },
- {
- n:'03',
- title:"Auto-updates with every member's contribution",
- body:"Every prompt that scores 9+/10 is auto-deduped into the team wiki, then becomes context for the next person who asks something similar. The team's tribal knowledge compounds — without anyone writing docs.",
- tone:'#9C7AD9',
- },
- {
- n:'04',
- title:'Functional wherever you use AI',
- body:'Same coach, same context, same wiki — across Browser (Claude.ai · ChatGPT · Gemini), VS Code, and CLI / MCP (Claude Code · Copilot). The connective tissue across the surfaces your team already uses.',
- tone:'#E5A24F',
- },
- ];
-
- return (
-
-
-
-
- The solution
-
- LearnLoop — your team's prompts, standardized and shared.
-
-
-
-
- {pillars.map(p => (
-
-
-
{p.n}
-
-
-
- {p.title}
-
-
{p.body}
-
- ))}
-
-
-
- );
-}
-
function Features() {
const features = [
{
tag: 'capability 01',
title: "Standardizes every prompt to your team's voice",
- body: <>A live 5-dimension scorecard runs under every textarea — goal · specificity · context · constraints · output. Below 7/10, LearnLoop rewrites the prompt using your team's conventions, the file you're in, and patterns from past wins. The vague "fix the retry" becomes a precise spec the model can actually answer.>,
+ body: <>Every prompt is scored when you send it, on goal · specificity · context · constraints · output. Below 7/10 the send is held and you choose: Improve (a short Q&A that rewrites the prompt with your team's conventions), send as-is, or edit. Nothing is sent without you. The vague "fix the retry" becomes a spec the model can actually answer.>,
backed: 'apps/browser-ext + apps/vscode-ext · POST /score',
mock: ,
},
{
tag: 'capability 02',
title: "Loads your knowledge base into the LLM's context",
- body: <>Your repo's wiki — patterns, conventions, past decisions, hard-won bug fixes — is injected into the model's context automatically, scoped to the file you're editing. Stop pasting links into chat. Stop re-explaining your codebase. The model already knows.>,
+ body: <>Your repo's wiki — patterns, conventions, past decisions, hard-won bug fixes — goes into the model's context for the part of the codebase you're working in: the MCP server looks it up per file, and the browser extension prepends it for the wiki node you pick. Stop pasting links into chat and re-explaining your codebase.>,
backed: 'GET /examples · GET /wiki · apps/api',
mock: ,
},
{
tag: 'capability 03',
title: "Auto-updates with every member's contribution",
- body: <>Every prompt that scores 9+/10 is auto-deduped into the team wiki, then becomes context for the next person who asks something similar. Team tribal knowledge compounds — without anyone writing docs, holding meetings, or onboarding the new hire by hand.>,
+ body: <>Strong prompts join the team's prompt library (mean score ≥ 7, no dimension below 5, confirmed by a second independent score), and conventions people state are deduplicated into the wiki, becoming durable after three mentions. Both become context for the next person who works in the same place.>,
backed: 'wiki_save · POST /wiki/propose',
mock: ,
},
{
tag: 'everywhere',
title: 'Functional wherever you use AI',
- body: <>Same coach. Same context. Same wiki. Whether the dev is in Claude.ai brainstorming, VS Code shipping, or Claude Code / Copilot CLI automating — LearnLoop is the connective tissue across the surfaces your team already uses.>,
- backed: 'browser-ext · vscode-ext · mcp-server (4 tools)',
+ body: <>Same coach. Same context. Same wiki. Whether the dev is in Claude.ai brainstorming, VS Code shipping, or Claude Code / Copilot Chat automating — LearnLoop is the connective tissue across the surfaces your team already uses.>,
+ backed: 'browser-ext · vscode-ext · mcp-server (5 tools)',
mock: ,
},
];
@@ -174,9 +116,9 @@ function FeatureCard({ f, wide, stacked }) {
function SurfacesMock() {
const surfaces = [
- { name:'Browser', sub:'Claude.ai · ChatGPT · Gemini', tone:'#2BC68A' },
- { name:'VS Code', sub:'extension · ⌘⇧K scaffold', tone:'#3D8BFF' },
- { name:'CLI / MCP', sub:'Claude Code · Copilot', tone:'#9C7AD9' },
+ { name:'Browser', sub:'Claude.ai (Chrome)', tone:'#2BC68A' },
+ { name:'VS Code', sub:'sidebar score card', tone:'#3D8BFF' },
+ { name:'CLI / MCP', sub:'Claude Code · Copilot Chat', tone:'#9C7AD9' },
];
return (