Skip to content

Commit 2e29699

Browse files
btraversclaude
andcommitted
Sync landing layout from updated Claude Design
Pull the latest Btravstack.dc.html refinements: - widen the philosophy section max-width 1080 -> 1180px - give project-card blurbs a min-height so cards are equal height - pin each card's install command to the bottom (margin-top:auto) so the code blocks and repo/docs footers align across cards Content, links and the live star counts are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 2a5cce4 commit 2e29699

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ <h1 style="margin:26px 0 0;font-family:var(--sans);font-weight:800;letter-spacin
7272
</div>
7373
</section>
7474

75-
<section id="philosophy" style="max-width:1080px;margin:0 auto;padding:34px 28px 8px">
75+
<section id="philosophy" style="max-width:1180px;margin:0 auto;padding:34px 28px 8px">
7676
<p style="margin:0;font-family:var(--mono);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent)">Why btravstack</p>
7777
<h2 style="margin:14px 0 0;font-weight:800;letter-spacing:-1px;line-height:1.08;font-size:clamp(28px,4vw,40px);max-width:680px">Building blocks for the TypeScript backend.</h2>
7878
<p style="margin:16px 0 0;max-width:640px;font-size:16.5px;line-height:1.65;color:var(--muted)">Each package is small, focused and does one thing well — but they share a worldview: your interfaces are contracts, failure is part of the type, and the compiler should catch what tests can't.</p>
@@ -114,13 +114,13 @@ <h2 style="margin:14px 0 30px;font-weight:800;letter-spacing:-1px;font-size:clam
114114
</div>
115115
<h3 style="margin:18px 0 0;font-weight:800;font-size:23px;letter-spacing:-0.6px;color:var(--text)">amqp-contract</h3>
116116
<code style="display:inline-block;margin:7px 0 0;font-family:var(--mono);font-size:13px;color:var(--accent)">@amqp-contract/contract</code>
117-
<p style="margin:14px 0 0;font-size:14.5px;line-height:1.6;color:var(--muted)">Type-safe contracts for AMQP &amp; RabbitMQ. Define your exchanges, queues and messages once — get types and runtime validation on both ends.</p>
117+
<p style="margin:14px 0 0;min-height:92px;font-size:14.5px;line-height:1.6;color:var(--muted)">Type-safe contracts for AMQP &amp; RabbitMQ. Define your exchanges, queues and messages once — get types and runtime validation on both ends.</p>
118118
<ul style="list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:9px">
119119
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>End-to-end type safety</span></li>
120120
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Reliable retry with Dead Letter Queues</span></li>
121121
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>AsyncAPI 3.0 generation</span></li>
122122
</ul>
123-
<div class="codeblk" data-copy="pnpm add @amqp-contract/contract" title="Click to copy" style="margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12.5px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text)">
123+
<div class="codeblk" data-copy="pnpm add @amqp-contract/contract" title="Click to copy" style="margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12.5px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text)">
124124
<span style="min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap"><span style="color:var(--accent);user-select:none">$ </span>pnpm add @amqp-contract/contract</span>
125125
<svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="flex:none;opacity:0.6"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5" stroke="currentColor" stroke-width="1.4"></rect><path d="M3.5 10.5h-1A1.5 1.5 0 0 1 1 9V2.5A1.5 1.5 0 0 1 2.5 1H9a1.5 1.5 0 0 1 1.5 1.5v1" stroke="currentColor" stroke-width="1.4"></path></svg>
126126
</div>
@@ -145,13 +145,13 @@ <h3 style="margin:18px 0 0;font-weight:800;font-size:23px;letter-spacing:-0.6px;
145145
</div>
146146
<h3 style="margin:18px 0 0;font-weight:800;font-size:23px;letter-spacing:-0.6px;color:var(--text)">temporal-contract</h3>
147147
<code style="display:inline-block;margin:7px 0 0;font-family:var(--mono);font-size:13px;color:var(--accent)">@temporal-contract/contract</code>
148-
<p style="margin:14px 0 0;font-size:14.5px;line-height:1.6;color:var(--muted)">Type-safe contracts for Temporal.io. End-to-end types and automatic validation across workflows, activities and clients.</p>
148+
<p style="margin:14px 0 0;min-height:92px;font-size:14.5px;line-height:1.6;color:var(--muted)">Type-safe contracts for Temporal.io. End-to-end types and automatic validation across workflows, activities and clients.</p>
149149
<ul style="list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:9px">
150150
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Zod validation at every boundary</span></li>
151151
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Compile-time implementation checks</span></li>
152152
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Result / Future error handling</span></li>
153153
</ul>
154-
<div class="codeblk" data-copy="pnpm add @temporal-contract/contract" title="Click to copy" style="margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12.5px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text)">
154+
<div class="codeblk" data-copy="pnpm add @temporal-contract/contract" title="Click to copy" style="margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12.5px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text)">
155155
<span style="min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap"><span style="color:var(--accent);user-select:none">$ </span>pnpm add @temporal-contract/contract</span>
156156
<svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="flex:none;opacity:0.6"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5" stroke="currentColor" stroke-width="1.4"></rect><path d="M3.5 10.5h-1A1.5 1.5 0 0 1 1 9V2.5A1.5 1.5 0 0 1 2.5 1H9a1.5 1.5 0 0 1 1.5 1.5v1" stroke="currentColor" stroke-width="1.4"></path></svg>
157157
</div>
@@ -176,13 +176,13 @@ <h3 style="margin:18px 0 0;font-weight:800;font-size:23px;letter-spacing:-0.6px;
176176
</div>
177177
<h3 style="margin:18px 0 0;font-weight:800;font-size:23px;letter-spacing:-0.6px;color:var(--text)">unthrown</h3>
178178
<code style="display:inline-block;margin:7px 0 0;font-family:var(--mono);font-size:13px;color:var(--accent)">unthrown</code>
179-
<p style="margin:14px 0 0;font-size:14.5px;line-height:1.6;color:var(--muted)">Explicit errors as values — with a separate defect channel for the unexpected. Only a true defect ever throws, and only at unwrap.</p>
179+
<p style="margin:14px 0 0;min-height:92px;font-size:14.5px;line-height:1.6;color:var(--muted)">Explicit errors as values — with a separate defect channel for the unexpected. Only a true defect ever throws, and only at unwrap.</p>
180180
<ul style="list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:9px">
181181
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Errors as values, typed in E</span></li>
182182
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>A separate defect channel</span></li>
183183
<li style="display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;color:var(--text)"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="margin-top:2px;flex:none"><path d="M2.5 8.5l3 3 8-8" stroke="#46B86C" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>Zero runtime dependencies</span></li>
184184
</ul>
185-
<div class="codeblk" data-copy="pnpm add unthrown" title="Click to copy" style="margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12.5px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text)">
185+
<div class="codeblk" data-copy="pnpm add unthrown" title="Click to copy" style="margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12.5px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:11px;padding:11px 13px;color:var(--text)">
186186
<span style="min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap"><span style="color:var(--accent);user-select:none">$ </span>pnpm add unthrown</span>
187187
<svg width="15" height="15" viewBox="0 0 16 16" fill="none" style="flex:none;opacity:0.6"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5" stroke="currentColor" stroke-width="1.4"></rect><path d="M3.5 10.5h-1A1.5 1.5 0 0 1 1 9V2.5A1.5 1.5 0 0 1 2.5 1H9a1.5 1.5 0 0 1 1.5 1.5v1" stroke="currentColor" stroke-width="1.4"></path></svg>
188188
</div>

0 commit comments

Comments
 (0)