Skip to content
Merged
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
6 changes: 3 additions & 3 deletions e2e/loading-performance.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ test('a stalled Jam recorder cannot delay the real application', async ({ page,

await jamRequest;
await expect(page.getByRole('heading', { name: /Prep Faster/ })).toBeVisible({ timeout: 2_000 });
await expect(page.getByText('DebateLab by Programcode is the official')).toHaveCount(0);
await expect(page.getByText('DebateLab by Pi-Stack is the official')).toHaveCount(0);
});

test('public routes keep the real UI after refresh', async ({ page }) => {
Expand All @@ -22,7 +22,7 @@ test('public routes keep the real UI after refresh', async ({ page }) => {
await page.goto(path);
await page.reload();
await expect(page.getByRole(path === '/' ? 'heading' : 'button', { name: label })).toBeVisible();
await expect(page.getByText('DebateLab by Programcode is the official')).toHaveCount(0);
await expect(page.getByText('DebateLab by Pi-Stack is the official')).toHaveCount(0);
}
});

Expand All @@ -38,7 +38,7 @@ test('authenticated routes keep the shell and current page after refresh', async
await page.reload();
await expect(page.locator('header')).toBeVisible();
await expect(page.getByRole('heading', { name: heading, exact: true })).toBeVisible();
await expect(page.getByText('DebateLab by Programcode is the official')).toHaveCount(0);
await expect(page.getByText('DebateLab by Pi-Stack is the official')).toHaveCount(0);
}
});

Expand Down
14 changes: 7 additions & 7 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<meta name="jam:team" content="b79917fc-80c6-4de1-9047-c98fa5db0aff" />
<link rel="stylesheet" href="/src/index.css" />
<script src="/src/bootstrap.ts" type="module"></script>
<title>DebateLab by Programcode | AI Debate Prep, Cases & Rebuttals</title>
<meta name="title" content="DebateLab by Programcode | AI Debate Prep, Cases & Rebuttals" />
<meta name="description" content="DebateLab by Programcode helps students and competitive debaters practice with AI opponents, case generation, rebuttal drills, evidence leads, coaching, timers, and argument flowcharts." />
<title>DebateLab by Pi-Stack | AI Debate Prep, Cases & Rebuttals</title>
<meta name="title" content="DebateLab by Pi-Stack | AI Debate Prep, Cases & Rebuttals" />
<meta name="description" content="DebateLab by Pi-Stack helps students and competitive debaters practice with AI opponents, case generation, rebuttal drills, evidence leads, coaching, timers, and argument flowcharts." />
<meta name="keywords" content="DebateLab, debate lab, AI debate practice, debate practice platform, debate drills, rebuttal practice, argumentation training, debate coach, debate preparation" />
<meta name="author" content="DebateLab" />
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
Expand All @@ -20,11 +20,11 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://debate.pi-stack.org/" />
<meta property="og:site_name" content="DebateLab" />
<meta property="og:title" content="DebateLab by Programcode | AI Debate Prep, Cases & Rebuttals" />
<meta property="og:title" content="DebateLab by Pi-Stack | AI Debate Prep, Cases & Rebuttals" />
<meta property="og:description" content="Practice debate with AI opponents, case generation, rebuttal drills, evidence leads, coaching, timers, and argument flowcharts built for competitive debaters." />
<meta property="og:image" content="https://debate.pi-stack.org/hero-visual.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="DebateLab by Programcode | AI Debate Prep" />
<meta name="twitter:title" content="DebateLab by Pi-Stack | AI Debate Prep" />
<meta name="twitter:description" content="Practice debate with AI opponents, case generation, rebuttal drills, evidence leads, coaching, timers, and argument flowcharts." />
<meta name="twitter:image" content="https://debate.pi-stack.org/hero-visual.png" />
<script type="application/ld+json">
Expand Down Expand Up @@ -157,8 +157,8 @@
</div>
<noscript>
<main style="max-width: 1080px; margin: 0 auto; padding: 48px 20px; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.6; color: #0f172a; background: #ffffff;">
<h1 style="font-size: clamp(2.25rem, 6vw, 4.5rem); line-height: 1; letter-spacing: -0.06em; margin: 0 0 18px;">DebateLab by Programcode</h1>
<p style="font-size: 1.18rem; max-width: 760px; color: #334155;">DebateLab by Programcode is the official DebateLab AI debate prep platform at debate.pi-stack.org. It helps students and competitive debaters practice with AI opponents, generate debate cases, train rebuttals, find evidence leads, build argument flowcharts, and time practice speeches.</p>
<h1 style="font-size: clamp(2.25rem, 6vw, 4.5rem); line-height: 1; letter-spacing: -0.06em; margin: 0 0 18px;">DebateLab by Pi-Stack</h1>
<p style="font-size: 1.18rem; max-width: 760px; color: #334155;">DebateLab by Pi-Stack is the official DebateLab AI debate prep platform at debate.pi-stack.org. It helps students and competitive debaters practice with AI opponents, generate debate cases, train rebuttals, find evidence leads, build argument flowcharts, and time practice speeches.</p>
<nav aria-label="DebateLab public guides" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 28px;">
<a href="/debatelab">DebateLab by Programcode</a>
<a href="/debatelab-by-programcode">DebateLab official brand page</a>
Expand Down
Loading