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
11 changes: 9 additions & 2 deletions .claude/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,15 @@
{
"name": "site",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev", "--", "--port", "5180", "--strictPort"],
"port": 5180
"runtimeArgs": ["run", "dev", "--", "--port", "5001", "--strictPort", "--host", "127.0.0.1"],
"port": 5001,
"autoPort": false
},
{
"name": "site-webdev",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev", "--", "--port", "5183", "--strictPort", "--host", "127.0.0.1"],
"port": 5183
}
]
}
10 changes: 5 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" sizes="any" />
<title>DevAsign — Multimodal, Goal-Aware AI Code Review</title>
<title>DevAsign - Review the goal. Audit the merge. Fund the fix.</title>
<!-- Google Fonts - Geist Mono + Inter + JetBrains Mono -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
Expand All @@ -28,18 +28,18 @@

<!-- Open Graph -->
<meta property="og:site_name" content="DevAsign" />
<meta property="og:title" content="Code review, against the goal — not just the diff." />
<meta property="og:title" content="DevAsign | Review the goal. Audit the merge. Fund the fix." />
<meta property="og:description"
content="Multimodal, goal-aware review for the era of AI-generated PRs." />
content="DevAsign reviews pull requests & audits your entire codebase for what an attacker can actually reach, then suggests a fix or helps you create a bounty (in USDC) for the fixes you'll never get to." />
<meta property="og:image" content="https://devasign.com/devasign-preview.webp" />
<meta property="og:url" content="https://devasign.com" />
<meta property="og:type" content="website" />

<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Code review, against the goal — not just the diff." />
<meta name="twitter:title" content="DevAsign | Review the goal. Audit the merge. Fund the fix." />
<meta name="twitter:description"
content="Multimodal, goal-aware review for the era of AI-generated PRs." />
content="DevAsign reviews pull requests & audits your entire codebase for what an attacker can actually reach, then suggests a fix or helps you create a bounty (in USDC) for the fixes you'll never get to." />
<meta name="twitter:image" content="https://devasign.com/devasign-preview.webp" />

<!-- Wistia Player Embed Scripts & Styles -->
Expand Down
Binary file modified public/devasign-preview.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 12 additions & 12 deletions src/components/MeetDevAsignSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -209,11 +209,11 @@ export function MeetDevAsignSection() {

{/* ── Accent: the agent's voice ── */}
<article className="da-bento-tile accent t-voice">
<span className="tile-kicker">IN ITS OWN WORDS</span>
<blockquote>
The ticket asked for a per-org filter. Your diff filters by <code>userId</code> only.”
</blockquote>
<p>Every comment names the requirement it is measuring against — so the feedback is arguable, not oracular.</p>
{/* <span className="tile-kicker">IN ITS OWN WORDS</span> */}
<h5>
...the ticket asked for a per-org filter. Your diff filters by <code>userId</code> only.”
</h5>
<p>Every comment names the requirement it is measuring against — so the feedback is arguable, not vague.</p>
</article>

{/* ── Chapter 02 ── */}
Expand All @@ -222,16 +222,16 @@ export function MeetDevAsignSection() {
<span className="tile-tag">CHAPTER 02</span>
<h3>Audit the house, not the doorway</h3>
<p>
Every merge wakes a second agent that ignores your diff entirely. It walks the whole repo&apos;s security surface — routes, tenant scoping, infra, secrets, deps — and never files what it can&apos;t prove.
Every merge wakes a second agent that walks the whole repo&apos;s security surface — routes, tenant scoping, infra, secrets, deps — and never files what it can&apos;t prove.
</p>
</div>
<div className="tile-illo"><AuditIllo /></div>
</article>

{/* ── Accent: severity model ── */}
<article className="da-bento-tile accent t-blast">
<span className="tile-kicker">SEVERITY MODEL</span>
<h4>Ranked by blast radius, not likelihood.</h4>
{/* <span className="tile-kicker">SEVERITY MODEL</span> */}
<h5>Ranked by blast radius, not likelihood.</h5>
<p>A bug that leaks one tenant to another ends every enterprise contract at once. Priority follows the damage, not the odds.</p>
<ul className="tile-matrix">
<li><span className="s crit">CRITICAL</span><span className="act block">block</span></li>
Expand All @@ -243,15 +243,15 @@ export function MeetDevAsignSection() {

{/* ── Accent: the merge gate ── */}
<article className="da-bento-tile accent t-gate">
<span className="tile-kicker">MERGE GATE</span>
{/* <span className="tile-kicker">MERGE GATE</span> */}
<div className="tile-check fail"><span className="mark">✗</span> devasign/security — blocked</div>
<div className="tile-check pass"><span className="mark">✓</span> devasign/security — passed</div>
<p>Mark the check required and an unresolved critical stops the queue — <strong>yours included</strong>.</p>
</article>

{/* ── Accent: settlement ── */}
<article className="da-bento-tile accent t-settle">
<span className="tile-kicker">SETTLEMENT</span>
{/* <span className="tile-kicker">SETTLEMENT</span> */}
<div className="tile-stat">~4s</div>
<p>USDC on Stellar. Sub-cent network fee. No invoice, no wire, no thirty-day net — the same speed to Lisbon and to Lagos.</p>
</article>
Expand All @@ -260,9 +260,9 @@ export function MeetDevAsignSection() {
<article className="da-bento-tile chapter t-fund">
<div className="tile-copy">
<span className="tile-tag">CHAPTER 03</span>
<h3>Put money on the ones you can&apos;t get to</h3>
<h3>Put a bounty on the ones you can&apos;t get to</h3>
<p>
You won&apos;t fix all of them. File one as a GitHub issue in a click, then fund it USDC locked in escrow a stranger can verify before they clone. Fix accepted, paid in seconds.
You won&apos;t fix all of them. Create a GitHub issue in a click, then fund it <strong>USDC locked in escrow</strong> — a dev can verify before they apply. Once a fix is accepted and merged, the bounty is paid in seconds.
</p>
</div>
<div className="tile-illo"><EscrowIllo /></div>
Expand Down
8 changes: 4 additions & 4 deletions src/components/SEO.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ interface SEOProps {
}

export const SEO = ({
title = "DevAsign — Multimodal, Goal-Aware AI Code Review",
title = "DevAsign - Review the goal. Audit the merge. Fund the fix.",
description = "The AI code reviewer that reads the ticket first. DevAsign ingests your tickets, screenshots, Figma, and Loom — then reviews every PR against what was actually asked. Catch what compiles, passes tests, and still ships the wrong thing.",
ogTitle = "Code review, against the goal — not just the diff.",
ogDescription = "Multimodal, goal-aware review for the era of AI-generated PRs.",
ogTitle = "DevAsign | Review the goal. Audit the merge. Fund the fix.",
ogDescription = "DevAsign reviews pull requests & audits your entire codebase for what an attacker can actually reach, then suggests a fix or helps you create a bounty (in USDC) for the fixes you'll never get to.",
canonical,
image = "/link-preview.webp", // Using existing image as default or fallback
image = "/devasign-preview.webp", // Default social/link-preview image
type = "website",
breadcrumbs
}: SEOProps) => {
Expand Down