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
13 changes: 13 additions & 0 deletions marketing/differentiators-vs-claude-code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Codev vs Claude Code: Key Differentiators

1. **Multi-model**: We use Gemini + Codex as reviewers alongside Claude. Each catches different classes of issues — Codex finds security edge cases, Claude catches runtime semantics, Gemini catches architecture problems.

2. **Specs and plans are first-class citizens**: Every feature produces a specification and an implementation plan that are preserved as project artifacts. You always know WHY something was built and HOW it was designed.

3. **Plans are enforced**: You can't start Phase 2 until the acceptance criteria for Phase 1 are met. The Porch state machine makes the process deterministic — no skipping steps. Human gates require architect approval before implementation begins, so the AI can't run off and build the wrong thing. Testing is enforced as acceptance criteria, not optional — this is why codev produces 2.9x more test coverage consistently.

4. **Annotation over direct editing**: It's far more about annotating docs than directly editing code. Reviews, specs, and plans are documents that guide the work rather than the AI just hacking at files.

5. **Parallel builders**: Push parallelization to its limit by having one "Architect" AI that can direct 5+ builders working simultaneously in isolated worktrees.

6. **Whole lifecycle management**: From idea through specification, planning, implementation, review, PR, and deployment — codev manages the entire lifecycle, not just the coding step.
Binary file added marketing/logo-transparent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added marketing/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions marketing/real-results.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Real Results

## Head-to-Head: Codev vs Claude Code (R4 Comparison)

- **Overall quality score**: 7.0 vs 5.8
- **Test coverage**: 2.9x more test lines (0.79:1 vs 0.26:1 test-to-code ratio)
- **Fewer bugs**: Fewer consensus bugs, fewer High severity issues
- **Deployment readiness**: Codev produces Dockerfile, .dockerignore, deploy README. Claude Code produces none.
- **Architecture**: Clean three-layer separation vs single-flow mixing parsing and execution

## 14-Day Production Sprint

- **106 PRs merged** in 14 days (53/week)
- **85% fully autonomous** — builders completed without human intervention
- **24 pre-merge bug catches**, 4 security-critical
- **$1.59 per PR** ($168.64 total), 3.4x ROI
- **66% of bugfixes** ship in under 30 minutes

## Multi-Model Review Catches What Single-Model Misses

- **Codex**: Security edge cases
- **Claude**: Runtime semantics
- **Gemini**: Architecture problems
- Three independent reviewers with complementary blind spots
246 changes: 246 additions & 0 deletions marketing/slides-intro.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>codev — Demo Intro</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@300;400;600;700;900&display=swap');

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
font-family: 'Source Sans 3', sans-serif;
background: #1a1a1a;
color: #e4e4e7;
overflow: hidden;
}

.slide {
display: none;
width: 100vw;
height: 100vh;
padding: 80px 100px;
flex-direction: column;
justify-content: center;
}

.slide.active { display: flex; }

/* ─── Title logo (large, on title slide only) ─── */
.logo-title {
display: flex;
align-items: center;
gap: 24px;
margin-bottom: 64px;
}
.logo-title img { width: 88px; height: 88px; }
.logo-title span {
font-size: 52px;
font-weight: 300;
letter-spacing: 0.08em;
color: #e4e4e7;
}

/* ─── Footer logo (every slide, bottom-right) ─── */
.footer-logo {
position: fixed;
bottom: 32px;
right: 40px;
display: flex;
align-items: center;
gap: 10px;
}
.footer-logo img { width: 32px; height: 32px; opacity: 0.5; }
.footer-logo span {
font-size: 20px;
font-weight: 300;
letter-spacing: 0.08em;
color: #52525b;
}

/* ─── Typography ─── */
h1 {
font-size: 80px;
font-weight: 900;
line-height: 1.05;
margin-bottom: 40px;
color: #fafafa;
}
h1 .accent { color: #818cf8; }

h2 {
font-size: 64px;
font-weight: 700;
line-height: 1.1;
margin-bottom: 48px;
color: #fafafa;
}
h2 .accent { color: #818cf8; }

.subtitle {
font-size: 36px;
font-weight: 300;
color: #a1a1aa;
line-height: 1.5;
max-width: 960px;
}

.byline {
font-size: 28px;
font-weight: 400;
color: #71717a;
margin-top: 64px;
}
.byline strong { color: #e4e4e7; font-weight: 600; }

/* ─── Bullet lists ─── */
.bullets {
list-style: none;
display: flex;
flex-direction: column;
gap: 40px;
}
.bullets li {
font-size: 36px;
font-weight: 400;
line-height: 1.4;
color: #d4d4d8;
padding-left: 40px;
position: relative;
}
.bullets li::before {
content: '';
position: absolute;
left: 0;
top: 16px;
width: 14px;
height: 14px;
border-radius: 50%;
background: #818cf8;
}
.bullets li strong { color: #fafafa; }

/* ─── Stat callout ─── */
.stat {
font-size: 80px;
font-weight: 700;
color: #818cf8;
line-height: 1;
margin-bottom: 10px;
}
.stat-label {
font-size: 26px;
color: #71717a;
font-weight: 400;
}

.stats-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 48px;
margin-top: 56px;
}

/* ─── Navigation ─── */
.slide-counter {
position: fixed;
bottom: 32px;
left: 40px;
font-size: 14px;
color: #333;
letter-spacing: 0.04em;
}
</style>
</head>
<body>

<!-- ═══════════════════════════════════════════
SLIDE 1: Title
═══════════════════════════════════════════ -->
<div class="slide active" id="slide-1">
<div class="logo-title">
<img src="logo-transparent.png" alt="codev">
<span>codev</span>
</div>

<h1>Productive Human-AI Co-development<br>on Large Codebases: <span class="accent">Demo</span></h1>

<p class="byline"><strong>Waleed Kadous</strong></p>
</div>

<!-- ═══════════════════════════════════════════
SLIDE 2: The Problem
═══════════════════════════════════════════ -->
<div class="slide" id="slide-2">
<h2>Vibe coding is not <span class="accent">production</span> coding</h2>

<ul class="bullets">
<li>We've all seen the demos — "build me an app" in minutes</li>
<li><strong>Production is different</strong> — tests, review, deployment, docs, maintenance</li>
<li>Real codebases are 10K-100K+ lines. Context windows run out.</li>
<li><strong>Codev</strong> is a Human-AI development OS built for this reality</li>
</ul>
</div>

<!-- ═══════════════════════════════════════════
SLIDE 3: Results
═══════════════════════════════════════════ -->
<div class="slide" id="slide-3">
<h2>We used Codev to build <span class="accent">Codev</span></h2>

<p class="subtitle" style="margin-bottom: 40px;">~80K lines of TypeScript. 289 source files. 14 days.</p>

<ul class="bullets">
<li><strong>106 PRs merged in 14 days</strong> — 85% fully autonomous</li>
<li><strong>20 bugs caught before merge</strong> — including 1 security-critical</li>
<li><strong>26 features shipped</strong> — from session management to workspace orchestration</li>
<li>Throughput of <strong>3-4 elite engineers</strong> (vs LinearB 2026 benchmarks, 8.1M PRs)</li>
<li>With everything you'd expect: <strong>testing, PRs, architecture overview, design docs</strong></li>
</ul>
</div>

<!-- ═══════════════════════════════════════════
SLIDE 4: Let me show you
═══════════════════════════════════════════ -->
<div class="slide" id="slide-4">
<div class="logo-title">
<img src="logo-transparent.png" alt="codev">
<span>codev</span>
</div>

<h1>Let me show you</h1>
</div>

<!-- ═══════════════════════════════════════════ -->
<div class="footer-logo">
<img src="logo-transparent.png" alt="codev">
<span>codev</span>
</div>
<div class="slide-counter">1 / 4</div>

<script>
const slides = document.querySelectorAll('.slide');
const counter = document.querySelector('.slide-counter');
let current = 0;

function show(i) {
slides[current].classList.remove('active');
current = Math.max(0, Math.min(i, slides.length - 1));
slides[current].classList.add('active');
counter.textContent = `${current + 1} / ${slides.length}`;
}

document.addEventListener('keydown', e => {
if (e.key === 'ArrowRight' || e.key === ' ') show(current + 1);
if (e.key === 'ArrowLeft') show(current - 1);
});

document.addEventListener('click', e => {
if (e.clientX > window.innerWidth / 2) show(current + 1);
else show(current - 1);
});
</script>

</body>
</html>
31 changes: 31 additions & 0 deletions marketing/why-pay-attention.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Why You Should Pay Attention

## When Starting a New Project

We ran the same feature spec through Claude Code and Codev four times. Codev produces far fewer bugs, higher quality code, and manages the whole lifecycle — tests, deployment artifacts, and PRs.

| Dimension | Claude Code | Codev | Delta |
|-----------|:----------:|:-----:|:-----:|
| **Bugs** | 6.7 | 7.3 | +0.7 |
| **Code Quality** | 7.0 | 7.7 | +0.7 |
| **Maintainability** | 7.3 | 7.3 | 0.0 |
| **Tests** | 5.0 | 6.7 | +1.7 |
| **Extensibility** | 5.7 | 6.3 | +0.7 |
| **NL Interface** | 6.3 | 6.7 | +0.3 |
| **Deployment** | 2.7 | 6.7 | +4.0 |
| **Overall** | **5.8** | **7.0** | **+1.2** |

Scored by three independent AI reviewers (Claude, Codex, Gemini). Full methodology in the R4 comparison report.

**No free lunch**: Codev took ~56 minutes vs ~15 minutes for Claude Code, and cost 3-5x more ($14-19 vs $4-7) due to multi-model review overhead. The question is whether the quality delta is worth it for your project.

## When Maintaining Large Codebases

We used Codev to build Codev — an ~80K-line TypeScript codebase across 289 source files.

- **106 PRs merged in 14 days** — 85% completed fully autonomously, no human intervention
- **20 bugs caught before merge** by multi-model review, including 1 security-critical
- **Extensive architectural documentation**, including an accessible `arch.md` that stays current as the codebase evolves
- **Allowed us to ship 26 features in two weeks** — from custom session management to full workspace orchestration
- **Equivalent throughput of 3-4 elite engineers** at $1.59 per PR ($168.64 total for the sprint)
- But with everything you'd expect of production grade: testing, PRs, clear docs, and multi-model code review on every change
10 changes: 4 additions & 6 deletions packages/codev/dashboard/__tests__/analytics.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@ function makeStats(overrides: Partial<AnalyticsResponse> = {}): AnalyticsRespons
timeRange: '7d',
activity: {
prsMerged: 12,
avgTimeToMergeHours: 3.5,
medianTimeToMergeHours: 3.5,
issuesClosed: 6,
avgTimeToCloseBugsHours: 1.2,
activeBuilders: 2,
medianTimeToCloseBugsHours: 1.2,
projectsByProtocol: {
spir: { count: 3, avgWallClockHours: 48.2 },
bugfix: { count: 2, avgWallClockHours: 1.5 },
Expand Down Expand Up @@ -240,10 +239,9 @@ describe('AnalyticsView', () => {
const stats = makeStats({
activity: {
prsMerged: 3,
avgTimeToMergeHours: null,
medianTimeToMergeHours: null,
issuesClosed: 0,
avgTimeToCloseBugsHours: null,
activeBuilders: 0,
medianTimeToCloseBugsHours: null,
projectsByProtocol: {},
},
});
Expand Down
5 changes: 2 additions & 3 deletions packages/codev/dashboard/src/components/AnalyticsView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,8 @@ function ActivitySection({ activity, errors }: { activity: AnalyticsResponse['ac
<MetricGrid>
<Metric label="PRs Merged" value={String(activity.prsMerged)} />
<Metric label="Issues Closed" value={String(activity.issuesClosed)} />
<Metric label="Avg Time to Merge" value={fmt(activity.avgTimeToMergeHours, 1, 'h')} />
<Metric label="Avg Time to Close Bugs" value={fmt(activity.avgTimeToCloseBugsHours, 1, 'h')} />
<Metric label="Active Builders" value={String(activity.activeBuilders)} />
<Metric label="Median Time to Merge" value={fmt(activity.medianTimeToMergeHours, 1, 'h')} />
<Metric label="Median Time to Close Bugs" value={fmt(activity.medianTimeToCloseBugsHours, 1, 'h')} />
</MetricGrid>
</Section>
);
Expand Down
5 changes: 2 additions & 3 deletions packages/codev/dashboard/src/lib/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,9 @@ export interface AnalyticsResponse {
timeRange: '24h' | '7d' | '30d' | 'all';
activity: {
prsMerged: number;
avgTimeToMergeHours: number | null;
medianTimeToMergeHours: number | null;
issuesClosed: number;
avgTimeToCloseBugsHours: number | null;
activeBuilders: number;
medianTimeToCloseBugsHours: number | null;
projectsByProtocol: Record<string, ProtocolStats>;
};
consultation: {
Expand Down
Loading