v1.0 - launch: full nav on gallery, chat widget auto-open, comparison logos, checkout fixes

This commit is contained in:
Will Anderson
2026-05-01 18:13:06 -05:00
parent ff1f9577db
commit 00f2323c98
41 changed files with 4740 additions and 434 deletions
+41 -13
View File
@@ -19,21 +19,41 @@ fn comparison() -> String {
</p>
</div>
<div class=\"comparison-table reveal\" style=\"transition-delay:200ms;overflow-x:auto\">
<table style=\"width:100%;border-collapse:collapse;font-family:var(--body);font-size:0.875rem\">
<div class=\"comparison-table reveal\" style=\"transition-delay:200ms;overflow-x:auto;-webkit-overflow-scrolling:touch\">
<table style=\"width:100%;min-width:560px;border-collapse:collapse;font-family:var(--body);font-size:0.875rem\">
<thead>
<tr style=\"border-bottom:2px solid rgba(0,82,160,.20)\">
<th style=\"text-align:left;padding:1rem 1.5rem 1rem 0;font-weight:500;letter-spacing:0.08em;color:var(--t3);font-size:0.75rem;text-transform:uppercase;width:28%\">Feature</th>
<th style=\"text-align:center;padding:1rem 1rem;font-weight:600;color:var(--navy);font-size:0.875rem;width:18%\">
<div style=\"display:inline-flex;flex-direction:column;align-items:center;gap:0.25rem\">
<span style=\"font-size:1.1rem\">&#9679;</span>
<th style=\"text-align:center;padding:0.75rem 1rem;font-weight:600;color:var(--navy);font-size:0.875rem;width:18%\">
<div style=\"display:inline-flex;flex-direction:column;align-items:center;gap:0.35rem\">
<img src=\"/assets/neuron-icon.png\" alt=\"Neuron\" style=\"width:28px;height:28px\">
Neuron
</div>
</th>
<th style=\"text-align:center;padding:1rem 1rem;font-weight:400;color:var(--t3);font-size:0.875rem;width:13.5%\">ChatGPT</th>
<th style=\"text-align:center;padding:1rem 1rem;font-weight:400;color:var(--t3);font-size:0.875rem;width:13.5%\">Claude</th>
<th style=\"text-align:center;padding:1rem 1rem;font-weight:400;color:var(--t3);font-size:0.875rem;width:13.5%\">Gemini</th>
<th style=\"text-align:center;padding:1rem 1rem;font-weight:400;color:var(--t3);font-size:0.875rem;width:13.5%\">Copilot</th>
<th style=\"text-align:center;padding:0.75rem 1rem;font-weight:400;color:var(--t3);font-size:0.8rem;width:13.5%\">
<div style=\"display:flex;flex-direction:column;align-items:center;gap:0.35rem\">
<img src=\"https://cdn.simpleicons.org/openai/000000\" alt=\"ChatGPT\" style=\"width:24px;height:24px\">
ChatGPT
</div>
</th>
<th style=\"text-align:center;padding:0.75rem 1rem;font-weight:400;color:var(--t3);font-size:0.8rem;width:13.5%\">
<div style=\"display:flex;flex-direction:column;align-items:center;gap:0.35rem\">
<img src=\"https://cdn.simpleicons.org/anthropic/000000\" alt=\"Claude\" style=\"width:24px;height:24px\">
Claude
</div>
</th>
<th style=\"text-align:center;padding:0.75rem 1rem;font-weight:400;color:var(--t3);font-size:0.8rem;width:13.5%\">
<div style=\"display:flex;flex-direction:column;align-items:center;gap:0.35rem\">
<img src=\"https://cdn.simpleicons.org/googlegemini\" alt=\"Gemini\" style=\"width:24px;height:24px\">
Gemini
</div>
</th>
<th style=\"text-align:center;padding:0.75rem 1rem;font-weight:400;color:var(--t3);font-size:0.8rem;width:13.5%\">
<div style=\"display:flex;flex-direction:column;align-items:center;gap:0.35rem\">
<img src=\"https://cdn.simpleicons.org/microsoftcopilot/0078D4\" alt=\"Copilot\" style=\"width:24px;height:24px\">
Copilot
</div>
</th>
</tr>
</thead>
<tbody>
@@ -63,7 +83,7 @@ fn comparison() -> String {
</tr>
<tr style=\"border-bottom:1px solid rgba(0,0,0,.06);background:rgba(0,82,160,.02)\">
<td style=\"padding:1rem 1.5rem 1rem 0;color:var(--t1);font-weight:500\">Works offline</td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">Local inference via Ollama</span></td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#D4A017\">&#9679;</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">Coming soon</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
@@ -71,7 +91,7 @@ fn comparison() -> String {
</tr>
<tr style=\"border-bottom:1px solid rgba(0,0,0,.06)\">
<td style=\"padding:1rem 1.5rem 1rem 0;color:var(--t1);font-weight:500\">Bring your own API keys</td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">OpenAI, Anthropic, Groq...</span></td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">OpenAI, Anthropic, Grok...</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
@@ -85,6 +105,14 @@ fn comparison() -> String {
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#C44\">&#10005;</span></td>
</tr>
<tr style=\"border-bottom:1px solid rgba(0,0,0,.06)\">
<td style=\"padding:1rem 1.5rem 1rem 0;color:var(--t1);font-weight:500\">Images &amp; video generation</td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#D4A017\">&#9679;</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">Coming soon</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span></td>
</tr>
<tr style=\"border-bottom:1px solid rgba(0,0,0,.06)\">
<td style=\"padding:1rem 1.5rem 1rem 0;color:var(--t1);font-weight:500\">You own your outputs</td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#008040;font-weight:700;font-size:1.1rem\">&#10003;</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">No platform claim, ever</span></td>
@@ -95,7 +123,7 @@ fn comparison() -> String {
</tr>
<tr style=\"border-bottom:1px solid rgba(0,0,0,.06);background:rgba(0,82,160,.02)\">
<td style=\"padding:1rem 1.5rem 1rem 0;color:var(--t1);font-weight:500\">Price (with inference)</td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#008040;font-weight:700;font-size:1rem\">$19/mo</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">or $199 lifetime</span></td>
<td style=\"text-align:center;padding:1rem\"><span style=\"color:#008040;font-weight:700;font-size:1rem\">$19/mo</span><br><span style=\"font-size:0.7rem;color:var(--t3);font-weight:400\">or $199 founding (first 1,000)</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"font-weight:500;color:var(--t2)\">$20/mo</span><br><span style=\"font-size:0.7rem\">forgets you</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"font-weight:500;color:var(--t2)\">$20/mo</span><br><span style=\"font-size:0.7rem\">no memory</span></td>
<td style=\"text-align:center;padding:1rem;color:var(--t3)\"><span style=\"font-weight:500;color:var(--t2)\">Free&#8211;$20</span><br><span style=\"font-size:0.7rem\">no memory</span></td>
@@ -125,7 +153,7 @@ fn comparison() -> String {
</div>
</div>
<div class=\"reveal\" style=\"transition-delay:400ms;margin-top:4rem;padding:2.5rem 3rem;background:var(--card);border:1px solid rgba(0,82,160,.12);border-left:3px solid var(--navy)\">
<div class=\"reveal\" style=\"transition-delay:400ms;margin-top:4rem;padding:clamp(1.5rem,4vw,2.5rem) clamp(1.25rem,4vw,3rem);background:var(--card);border:1px solid rgba(0,82,160,.12);border-left:3px solid var(--navy)\">
<p style=\"font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">
The others are impressive. Some of them are extraordinary at what they do. But they are all built on the same assumption: <em>your context lives in their cloud, session to session, at their discretion.</em>
</p>