Skip to content

Commit 8d1019e

Browse files
doscoclaude
andcommitted
website: valid content model for hero command chip (span -> div) [skip-release]
A <pre> is flow content and cannot live inside <span>; rendering and the copy-code handler are unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 985a922 commit 8d1019e

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

website/content/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "GraphJin"
33
description: "GraphJin gives AI agents one governed graph across your databases, files, APIs, and source code — GraphQL and MCP in, one optimized, policy-checked operation out."
44
---
55

6-
<section class="home-hero"><div class="home-hero-copy"><p class="home-section-label">v3 · Apache 2.0</p><h1>Ask anything about the systems you run. <span class="h1-accent">Get an answer that shows its work.</span></h1><p class="home-lede">Most teams hand-wire a brittle tool for every question an agent might ask. GraphJin auto-learns your databases, files, APIs, and source code into one governed graph — and ships the agent that works it.</p><p class="home-sublede">Under the hood: a compiler, not a framework. Agents ask in a small graph query language models get right on the first try — each request compiles into one optimized, policy-checked operation. Bring Claude or Codex over MCP, or use the <a href="#agent">built-in agent</a>.</p><div class="home-actions"><a class="button-primary" href="#quickstart">Run the 2-minute demo</a><a class="button-secondary" href="#ai-queries">Watch an agent answer</a><span class="hero-cmd" data-code-block><pre><code>graphjin serve --demo</code></pre><button class="copy-code-button" type="button" data-copy-code>Copy</button></span></div><p class="home-trust">Single Go binary · 12+ engines · Apache 2.0 · in production since 2019</p></div><div class="home-hero-demo"><div class="ai-window ai-window-hero"><div class="window-chrome"><span></span><span></span><span></span><i aria-hidden="true">✣</i><strong>GraphJin Agent · localhost:8083/agent</strong></div><div class="ai-conversation"><div class="chat-user">Who should get the next open cardiology slot?</div><div class="assistant-row"><div class="assistant-avatar" aria-hidden="true">✣</div><div class="chat-assistant"><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>query_catalog</span></div><code>discover -> providers · appointments · waitlist</code></div><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>execute_graphql</span></div><code>1 optimized query · waitlist by priority</code></div><p class="done-line"><span aria-hidden="true">✓</span> Evidence checked · 2 reads · 1 execution</p><p class="assistant-copy">Rosa Alvarez — high priority, waiting 4 days for Dr. Alice Chen's next opening.</p></div></div></div></div></div><div class="home-hero-diffs" aria-label="What makes GraphJin different"><article><h3><a href="#proof">Answers it can't fake</a></h3><p>A ledger in Go records what actually ran. Unbacked claims flip <code>answered</code> to <code>blocked</code> — the fake answer never leaves the server.</p></article><article><h3><a href="#how">One optimized operation</a></h3><p>No glue code, no N+1. Policy is compiled into the query itself, not bolted on around it.</p></article><article><h3><a href="#security-model">Your permissions, never your keys</a></h3><p>The agent runs as the caller. RBAC and row-level security apply to every request it makes.</p></article></div></section>
6+
<section class="home-hero"><div class="home-hero-copy"><p class="home-section-label">v3 · Apache 2.0</p><h1>Ask anything about the systems you run. <span class="h1-accent">Get an answer that shows its work.</span></h1><p class="home-lede">Most teams hand-wire a brittle tool for every question an agent might ask. GraphJin auto-learns your databases, files, APIs, and source code into one governed graph — and ships the agent that works it.</p><p class="home-sublede">Under the hood: a compiler, not a framework. Agents ask in a small graph query language models get right on the first try — each request compiles into one optimized, policy-checked operation. Bring Claude or Codex over MCP, or use the <a href="#agent">built-in agent</a>.</p><div class="home-actions"><a class="button-primary" href="#quickstart">Run the 2-minute demo</a><a class="button-secondary" href="#ai-queries">Watch an agent answer</a><div class="hero-cmd" data-code-block><pre><code>graphjin serve --demo</code></pre><button class="copy-code-button" type="button" data-copy-code>Copy</button></div></div><p class="home-trust">Single Go binary · 12+ engines · Apache 2.0 · in production since 2019</p></div><div class="home-hero-demo"><div class="ai-window ai-window-hero"><div class="window-chrome"><span></span><span></span><span></span><i aria-hidden="true">✣</i><strong>GraphJin Agent · localhost:8083/agent</strong></div><div class="ai-conversation"><div class="chat-user">Who should get the next open cardiology slot?</div><div class="assistant-row"><div class="assistant-avatar" aria-hidden="true">✣</div><div class="chat-assistant"><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>query_catalog</span></div><code>discover -> providers · appointments · waitlist</code></div><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>execute_graphql</span></div><code>1 optimized query · waitlist by priority</code></div><p class="done-line"><span aria-hidden="true">✓</span> Evidence checked · 2 reads · 1 execution</p><p class="assistant-copy">Rosa Alvarez — high priority, waiting 4 days for Dr. Alice Chen's next opening.</p></div></div></div></div></div><div class="home-hero-diffs" aria-label="What makes GraphJin different"><article><h3><a href="#proof">Answers it can't fake</a></h3><p>A ledger in Go records what actually ran. Unbacked claims flip <code>answered</code> to <code>blocked</code> — the fake answer never leaves the server.</p></article><article><h3><a href="#how">One optimized operation</a></h3><p>No glue code, no N+1. Policy is compiled into the query itself, not bolted on around it.</p></article><article><h3><a href="#security-model">Your permissions, never your keys</a></h3><p>The agent runs as the caller. RBAC and row-level security apply to every request it makes.</p></article></div></section>
77

88
<section id="ai-queries" class="home-section ai-query-section"><div class="home-section-heading centered"><p class="home-section-label">See it work</p><h2>Ask in plain English. Get real data back.</h2><p>The hero window is the short version — here is the full loop, tool call by tool call. Claude Desktop, Codex, or any MCP client talks to GraphJin: the agent discovers the shape, validates its query, and GraphJin compiles it into one optimized database query — then answers with rows it can reason over.</p></div><div class="ai-stage"><div class="ai-window"><div class="window-chrome"><span></span><span></span><span></span><i aria-hidden="true">✣</i><strong>Claude Desktop</strong></div><div class="ai-conversation"><div class="chat-user">who's the top customer?</div><div class="assistant-row"><div class="assistant-avatar" aria-hidden="true">✣</div><div class="chat-assistant"><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>query_catalog</span></div><code>discover -> customers · purchases · products (2 relationships)</code></div><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>validate_where_clause</span></div><code>validate -> filters ok on customers, purchases · order_by total_spent</code></div><div class="tool-call"><div class="tool-call-header"><span class="tool-caret" aria-hidden="true">⌄</span><span>execute_graphql</span></div><code>{ customers { id full_name email purchases { quantity product { price } } } }</code></div><details class="gen-sql"><summary><span aria-hidden="true">SQL</span> one optimized query, no N+1, no resolvers</summary>{{< hl sql >}}SELECT json_agg(__sj.json) AS customers
99
FROM customers AS c

0 commit comments

Comments
 (0)