Skip to content

Commit 1dcc095

Browse files
gmoonclaude
andcommitted
Rewrite homepage copy with pain-first messaging, new sections, and email capture
Lead with audience pain points instead of generic feature descriptions. Add "Who it's for", "What makes it different", and email capture sections. Replace "See it live" CTA with "Star on GitHub" showing live star count. Retitle Projects to "Open Source" and sharpen Lattice project description. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8a8d11f commit 1dcc095

4 files changed

Lines changed: 320 additions & 21 deletions

File tree

src/components/Hero.tsx

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import { useState, useEffect } from 'react'
12
import { colors, fonts, gradient } from '@forkzero/ui'
2-
import { INSTALL_CMD, LATTICE_DASHBOARD_PATH } from '../constants'
3+
import { INSTALL_CMD, GITHUB_REPO_URL } from '../constants'
34

45
const keyframesStyle = `
56
@keyframes lattice-fade-slide-up {
@@ -109,7 +110,9 @@ const styles: Record<string, React.CSSProperties> = {
109110
boxShadow: '0 2px 8px rgba(0,0,0,0.15)',
110111
},
111112
ctaSecondary: {
112-
display: 'inline-block',
113+
display: 'inline-flex',
114+
alignItems: 'center',
115+
gap: '0.5rem',
113116
padding: '0.75rem 2rem',
114117
background: 'transparent',
115118
color: '#ffffff',
@@ -121,6 +124,10 @@ const styles: Record<string, React.CSSProperties> = {
121124
fontFamily: fonts.system,
122125
transition: 'transform 0.2s, border-color 0.2s',
123126
},
127+
starIcon: {
128+
width: '16px',
129+
height: '16px',
130+
},
124131
installHint: {
125132
display: 'inline-block',
126133
background: 'rgba(0,0,0,0.2)',
@@ -201,7 +208,33 @@ function HeroCurves() {
201208
)
202209
}
203210

211+
function useStarCount() {
212+
const [count, setCount] = useState<number | null>(null)
213+
useEffect(() => {
214+
fetch('https://api.github.com/repos/forkzero/lattice')
215+
.then((res) => res.json())
216+
.then((data: { stargazers_count?: number }) => {
217+
if (typeof data.stargazers_count === 'number') {
218+
setCount(data.stargazers_count)
219+
}
220+
})
221+
.catch(() => {
222+
/* ignore — button still works without count */
223+
})
224+
}, [])
225+
return count
226+
}
227+
228+
function StarIcon() {
229+
return (
230+
<svg style={styles.starIcon} viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
231+
<path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.75.75 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Z" />
232+
</svg>
233+
)
234+
}
235+
204236
export function Hero() {
237+
const starCount = useStarCount()
205238
return (
206239
<section style={styles.hero}>
207240
<style>{keyframesStyle}</style>
@@ -240,16 +273,18 @@ export function Hero() {
240273
</div>
241274
<h1 style={styles.title}>Structure the knowledge behind what you build</h1>
242275
<p style={styles.subtitle}>
243-
When you build with LLMs, research and reasoning vanish into chat logs. Lattice is a CLI that captures it —
244-
connecting sources, strategy, requirements, and code into a Git-native knowledge graph that any collaborator,
245-
human or agent, can pick up and build on.
276+
AI agents write code fast &mdash; but the research, reasoning, and requirements behind that code vanish into
277+
chat logs. Lattice is a CLI that captures it all: a Git-native knowledge graph where every requirement traces
278+
back to the research that motivated it, and any collaborator &mdash; human or agent &mdash; can pick up where
279+
the last one left off.
246280
</p>
247281
<div style={styles.ctaRow}>
248282
<a href="/getting-started" style={styles.ctaPrimary}>
249283
Get Started
250284
</a>
251-
<a href={LATTICE_DASHBOARD_PATH} style={styles.ctaSecondary}>
252-
See it live
285+
<a href={GITHUB_REPO_URL} style={styles.ctaSecondary} target="_blank" rel="noopener noreferrer">
286+
<StarIcon />
287+
Star on GitHub{starCount !== null ? ` \u00b7 ${starCount}` : ''}
253288
</a>
254289
</div>
255290
<span style={styles.installHint}>{INSTALL_CMD}</span>

src/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ export const LATTICE_DASHBOARD_URL = 'https://forkzero.ai' + LATTICE_DASHBOARD_P
99

1010
export const GITHUB_ORG_URL = 'https://github.com/forkzero'
1111
export const GITHUB_REPO_URL = 'https://github.com/forkzero/lattice'
12+
13+
export const SUBSCRIBE_API_URL = 'https://app.forkzero.ai/api/subscribe'

src/data/projects.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const projects: Project[] = [
1616
name: 'Lattice',
1717
tagline: 'Knowledge coordination protocol',
1818
description:
19-
'Connects research, strategy, requirements, and implementation into a traversable knowledge graph. Agents and humans trace any decision back to its source.',
19+
'The knowledge coordination protocol. Four layers — sources, theses, requirements, implementations — connected by version-bound edges with automatic drift detection. CLI, MCP server, and Claude Code integration built in.',
2020
status: 'Active',
2121
statusColor: '#10b981',
2222
tech: ['Rust', 'MCP', 'YAML'],

0 commit comments

Comments
 (0)