Skip to content

Commit 7629d5f

Browse files
committed
docs: add landing page for GitHub Pages
1 parent a14057d commit 7629d5f

1 file changed

Lines changed: 334 additions & 0 deletions

File tree

docs/index.html

Lines changed: 334 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,334 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>DevsContext - Synthesized context for AI coding agents</title>
7+
<meta name="description" content="MCP server that gives AI coding agents synthesized engineering context from Jira, meetings, and docs.">
8+
<style>
9+
:root {
10+
--bg: #0d1117;
11+
--bg-secondary: #161b22;
12+
--text: #e6edf3;
13+
--text-muted: #8b949e;
14+
--accent: #58a6ff;
15+
--green: #3fb950;
16+
--border: #30363d;
17+
}
18+
19+
* {
20+
margin: 0;
21+
padding: 0;
22+
box-sizing: border-box;
23+
}
24+
25+
body {
26+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
27+
background: var(--bg);
28+
color: var(--text);
29+
line-height: 1.6;
30+
}
31+
32+
.container {
33+
max-width: 900px;
34+
margin: 0 auto;
35+
padding: 0 24px;
36+
}
37+
38+
/* Header */
39+
header {
40+
padding: 24px 0;
41+
border-bottom: 1px solid var(--border);
42+
}
43+
44+
.logo {
45+
font-size: 1.5rem;
46+
font-weight: 600;
47+
color: var(--text);
48+
text-decoration: none;
49+
}
50+
51+
/* Hero */
52+
.hero {
53+
padding: 80px 0 60px;
54+
text-align: center;
55+
}
56+
57+
.hero h1 {
58+
font-size: 2.5rem;
59+
font-weight: 600;
60+
margin-bottom: 16px;
61+
line-height: 1.2;
62+
}
63+
64+
.hero .tagline {
65+
font-size: 1.25rem;
66+
color: var(--text-muted);
67+
max-width: 600px;
68+
margin: 0 auto;
69+
}
70+
71+
/* Before/After */
72+
.comparison {
73+
padding: 60px 0;
74+
}
75+
76+
.comparison h2 {
77+
text-align: center;
78+
font-size: 1.5rem;
79+
margin-bottom: 40px;
80+
}
81+
82+
.comparison-grid {
83+
display: grid;
84+
grid-template-columns: 1fr 1fr;
85+
gap: 24px;
86+
}
87+
88+
@media (max-width: 700px) {
89+
.comparison-grid {
90+
grid-template-columns: 1fr;
91+
}
92+
}
93+
94+
.comparison-card {
95+
background: var(--bg-secondary);
96+
border: 1px solid var(--border);
97+
border-radius: 8px;
98+
padding: 24px;
99+
}
100+
101+
.comparison-card h3 {
102+
font-size: 0.875rem;
103+
text-transform: uppercase;
104+
letter-spacing: 0.5px;
105+
color: var(--text-muted);
106+
margin-bottom: 16px;
107+
}
108+
109+
.comparison-card.after h3 {
110+
color: var(--green);
111+
}
112+
113+
.comparison-card p {
114+
color: var(--text-muted);
115+
font-size: 0.95rem;
116+
}
117+
118+
.comparison-card.after p {
119+
color: var(--text);
120+
}
121+
122+
/* Output Example */
123+
.example {
124+
padding: 60px 0;
125+
}
126+
127+
.example h2 {
128+
text-align: center;
129+
font-size: 1.5rem;
130+
margin-bottom: 12px;
131+
}
132+
133+
.example .subtitle {
134+
text-align: center;
135+
color: var(--text-muted);
136+
margin-bottom: 32px;
137+
}
138+
139+
pre {
140+
background: var(--bg-secondary);
141+
border: 1px solid var(--border);
142+
border-radius: 8px;
143+
padding: 24px;
144+
overflow-x: auto;
145+
font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
146+
font-size: 0.85rem;
147+
line-height: 1.5;
148+
}
149+
150+
pre code {
151+
color: var(--text);
152+
}
153+
154+
.code-comment { color: var(--text-muted); }
155+
.code-heading { color: var(--accent); font-weight: 600; }
156+
.code-source { color: var(--text-muted); font-style: italic; }
157+
158+
/* Quick Start */
159+
.quickstart {
160+
padding: 60px 0;
161+
text-align: center;
162+
}
163+
164+
.quickstart h2 {
165+
font-size: 1.5rem;
166+
margin-bottom: 32px;
167+
}
168+
169+
.quickstart pre {
170+
text-align: left;
171+
max-width: 500px;
172+
margin: 0 auto;
173+
}
174+
175+
.quickstart .command {
176+
color: var(--green);
177+
}
178+
179+
/* CTA */
180+
.cta {
181+
padding: 60px 0;
182+
text-align: center;
183+
border-top: 1px solid var(--border);
184+
}
185+
186+
.cta a {
187+
display: inline-block;
188+
background: var(--accent);
189+
color: var(--bg);
190+
padding: 12px 32px;
191+
border-radius: 6px;
192+
text-decoration: none;
193+
font-weight: 600;
194+
font-size: 1rem;
195+
}
196+
197+
.cta a:hover {
198+
opacity: 0.9;
199+
}
200+
201+
.cta p {
202+
margin-top: 24px;
203+
color: var(--text-muted);
204+
font-size: 0.95rem;
205+
}
206+
207+
/* Footer */
208+
footer {
209+
padding: 40px 0;
210+
text-align: center;
211+
color: var(--text-muted);
212+
font-size: 0.875rem;
213+
border-top: 1px solid var(--border);
214+
}
215+
216+
footer a {
217+
color: var(--accent);
218+
text-decoration: none;
219+
}
220+
</style>
221+
</head>
222+
<body>
223+
<header>
224+
<div class="container">
225+
<a href="/" class="logo">DevsContext</a>
226+
</div>
227+
</header>
228+
229+
<main>
230+
<section class="hero">
231+
<div class="container">
232+
<h1>Your AI coding agent is missing context.</h1>
233+
<p class="tagline">
234+
DevsContext fetches from Jira, meeting transcripts, and your docs,
235+
then synthesizes it into one context block your AI actually understands.
236+
</p>
237+
</div>
238+
</section>
239+
240+
<section class="comparison">
241+
<div class="container">
242+
<h2>Before vs After</h2>
243+
<div class="comparison-grid">
244+
<div class="comparison-card before">
245+
<h3>Without DevsContext</h3>
246+
<p>
247+
You: "Work on PROJ-123"<br><br>
248+
Claude: Opens Jira MCP, sees ticket title. Guesses the implementation.
249+
Doesn't know about last week's architecture decision. Uses wrong error handling pattern.
250+
You spend 30 minutes correcting.
251+
</p>
252+
</div>
253+
<div class="comparison-card after">
254+
<h3>With DevsContext</h3>
255+
<p>
256+
You: "Work on PROJ-123"<br><br>
257+
Claude: Gets requirements, acceptance criteria, the decision from sprint planning
258+
about which queue to use, the architecture doc showing where to add code,
259+
and your team's error handling standards. Writes it right the first time.
260+
</p>
261+
</div>
262+
</div>
263+
</div>
264+
</section>
265+
266+
<section class="example">
267+
<div class="container">
268+
<h2>What Claude Code sees</h2>
269+
<p class="subtitle">One synthesized context block with everything it needs</p>
270+
<pre><code><span class="code-heading">## Task: PROJ-123 — Add retry logic to payment webhook handler</span>
271+
272+
<span class="code-heading">### Requirements</span>
273+
1. Implement exponential backoff for failed webhook deliveries
274+
2. Max 5 retry attempts over 24 hours
275+
3. Dead-letter queue for permanently failed webhooks
276+
277+
Acceptance criteria: <span class="code-source">[Jira PROJ-123]</span>
278+
- [ ] Webhooks retry with backoff (1min, 5min, 30min, 2hr, 12hr)
279+
- [ ] Failed webhooks move to DLQ after 5 attempts
280+
- [ ] Dashboard shows retry metrics
281+
282+
<span class="code-heading">### Key Decisions</span>
283+
<strong>Use SQS with visibility timeout</strong> for retry scheduling, not cron.
284+
Decided by @sarah in March 15 sprint planning. Rationale: SQS handles
285+
timing natively, reduces operational overhead. <span class="code-source">[Meeting: Sprint 23 Planning]</span>
286+
287+
<span class="code-heading">### Architecture Context</span>
288+
Webhook flow: PaymentController → WebhookService.dispatch() → SQS queue
289+
→ WebhookWorker.process() → external endpoint.
290+
291+
Add retry logic in WebhookWorker.process() at:
292+
src/workers/webhook_worker.ts:45-80 <span class="code-source">[Architecture: payments-service.md]</span>
293+
294+
<span class="code-heading">### Coding Standards</span>
295+
- Use Result&lt;T, WebhookError&gt; pattern, don't throw exceptions
296+
- Retry delays: use calculateBackoff() helper from src/utils/retry.ts
297+
- Tests: mock SQS with @aws-sdk/client-sqs-mock <span class="code-source">[Standards: typescript.md]</span></code></pre>
298+
</div>
299+
</section>
300+
301+
<section class="quickstart">
302+
<div class="container">
303+
<h2>Quick Start</h2>
304+
<pre><code><span class="command">pip install devscontext</span>
305+
306+
<span class="command">devscontext init</span>
307+
<span class="code-comment"># Configure Jira, Fireflies, local docs</span>
308+
309+
<span class="command">claude mcp add devscontext -- devscontext serve</span>
310+
<span class="code-comment"># Connect to Claude Code</span>
311+
312+
<span class="code-comment"># Then in Claude Code:</span>
313+
> work on PROJ-123</code></pre>
314+
</div>
315+
</section>
316+
317+
<section class="cta">
318+
<div class="container">
319+
<a href="https://github.com/Pro0f/devscontext">View on GitHub</a>
320+
<p>Open source. MIT licensed. Built for developers.</p>
321+
</div>
322+
</section>
323+
</main>
324+
325+
<footer>
326+
<div class="container">
327+
<p>
328+
<a href="https://github.com/Pro0f/devscontext">GitHub</a> ·
329+
MIT License
330+
</p>
331+
</div>
332+
</footer>
333+
</body>
334+
</html>

0 commit comments

Comments
 (0)