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
+143 -13
View File
@@ -30,7 +30,7 @@ fn marketplace() -> String {
</svg>
</div>
<h3 class=\"display-md marketplace-card-title\">Plugins that know you</h3>
<p class=\"marketplace-card-body\">Every plugin in the Marketplace has access to your memory graph - with your permission. A legal plugin knows your deal history. A coding plugin knows your architecture decisions. An email plugin knows your relationships and communication style. The context travels with you.</p>
<p class=\"marketplace-card-body\">Every plugin in the Marketplace has access to your memory - with your permission. A legal plugin knows your deal history. A coding plugin knows your architecture decisions. An email plugin knows your relationships and communication style. The context travels with you.</p>
</div>
<div class=\"marketplace-card card-dark\" style=\"transition-delay:120ms\">
@@ -56,18 +56,41 @@ fn marketplace() -> String {
</div>
<div class=\"marketplace-categories reveal\" style=\"transition-delay:320ms\">
<p class=\"label\" style=\"margin-bottom:1.5rem;color:var(--navy-65)\">Planned on launch</p>
<div class=\"marketplace-tags\">
<span class=\"marketplace-tag\">IDE (VS Code, Cursor)</span>
<span class=\"marketplace-tag\">Slack &amp; Teams</span>
<span class=\"marketplace-tag\">GitHub</span>
<span class=\"marketplace-tag\">Linear</span>
<span class=\"marketplace-tag\">Notion</span>
<span class=\"marketplace-tag\">Legal research</span>
<span class=\"marketplace-tag\">Financial analysis</span>
<span class=\"marketplace-tag\">Healthcare</span>
<span class=\"marketplace-tag\">More by launch</span>
<div style=\"margin-bottom:2rem\">
<p class=\"label\" style=\"margin-bottom:1rem;color:var(--navy-65)\">Connectors - day one</p>
<div class=\"marketplace-tags\">
<span class=\"marketplace-tag\">Gmail</span>
<span class=\"marketplace-tag\">Slack</span>
<span class=\"marketplace-tag\">Google Calendar</span>
<span class=\"marketplace-tag\">Google Drive</span>
<span class=\"marketplace-tag\">Notion</span>
<span class=\"marketplace-tag\">GitHub</span>
<span class=\"marketplace-tag\">Linear</span>
<span class=\"marketplace-tag\">More connectors at launch</span>
</div>
</div>
<div style=\"margin-bottom:2rem\">
<p class=\"label\" style=\"margin-bottom:1rem;color:var(--navy-65)\">Following launch</p>
<div class=\"marketplace-tags\">
<span class=\"marketplace-tag\">Process packets</span>
<span class=\"marketplace-tag\">Knowledge packets</span>
</div>
</div>
<div>
<p class=\"label\" style=\"margin-bottom:1rem;color:var(--navy-65)\">Imprints - starting with</p>
<div class=\"marketplace-tags\">
<span class=\"marketplace-tag\">CEO</span>
<span class=\"marketplace-tag\">CTO</span>
<span class=\"marketplace-tag\">CFO</span>
<span class=\"marketplace-tag\">CMO</span>
<span class=\"marketplace-tag\">COO</span>
<span class=\"marketplace-tag\">More C-suite</span>
</div>
</div>
</div>
<div class=\"marketplace-cta reveal\" style=\"transition-delay:400ms\">
@@ -76,11 +99,79 @@ fn marketplace() -> String {
<p style=\"font-family:var(--body);font-weight:500;font-size:1rem;color:var(--t1);margin-bottom:0.5rem\">Building something?</p>
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.6\">The developer program opens before the Marketplace does. If you&#39;re interested in building a plugin, get in touch early - early developers shape the API.</p>
</div>
<a href=\"mailto:developers@neurontechnologies.ai\" class=\"btn-ghost\" style=\"white-space:nowrap;flex-shrink:0\">Developer interest &rarr;</a>
<button onclick=\"document.getElementById('developer-interest').style.display='block';document.getElementById('developer-interest').scrollIntoView({behavior:'smooth',block:'start'});this.style.display='none';\" class=\"btn-ghost\" style=\"white-space:nowrap;flex-shrink:0\">Developer interest &rarr;</button>
</div>
</div>
</div>
<!-- Developer interest form — hidden until button click -->
<div id=\"developer-interest\" class=\"container\" style=\"display:none;margin-top:4rem;padding-top:4rem;border-top:1px solid rgba(0,82,160,.10)\">
<div style=\"max-width:42rem\">
<p class=\"label\" style=\"margin-bottom:0.75rem;color:var(--navy-85)\">Developer Program</p>
<h3 style=\"font-family:var(--display);font-size:1.75rem;font-weight:400;color:var(--t1);letter-spacing:-0.01em;margin-bottom:1rem;line-height:1.2\">Get early access</h3>
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9rem;color:var(--t2);line-height:1.75;margin-bottom:2.5rem\">The developer program opens before the Marketplace does. Early developers shape the plugin API. Tell me what you want to build.</p>
<form id=\"dev-form\" class=\"dev-form-grid\">
<div class=\"dev-field\">
<label for=\"dev-name\" class=\"dev-label\">Name</label>
<input id=\"dev-name\" type=\"text\" required placeholder=\"Your name\" class=\"dev-input\">
</div>
<div class=\"dev-field\">
<label for=\"dev-email\" class=\"dev-label\">Email</label>
<input id=\"dev-email\" type=\"email\" required placeholder=\"you@example.com\" class=\"dev-input\">
</div>
<div class=\"dev-field dev-field-full\">
<label for=\"dev-idea\" class=\"dev-label\">What do you want to build?</label>
<textarea id=\"dev-idea\" required rows=\"5\" placeholder=\"Tell me about the plugin or integration you have in mind...\" class=\"dev-input dev-textarea\"></textarea>
</div>
<div class=\"dev-field-full\">
<button type=\"submit\" class=\"btn-primary\">Send interest &rarr;</button>
<p id=\"dev-msg\" style=\"font-family:var(--body);font-size:0.8rem;color:var(--t3);margin-top:0.75rem;display:none\"></p>
</div>
</form>
</div>
</div>
<script>
(function() {
var form = document.getElementById('dev-form');
if (!form) return;
form.addEventListener('submit', async function(e) {
e.preventDefault();
var msg = document.getElementById('dev-msg');
var btn = form.querySelector('button[type=submit]');
btn.disabled = true;
btn.textContent = 'Sending...';
try {
var r = await fetch('/api/developer-interest', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: document.getElementById('dev-name').value,
email: document.getElementById('dev-email').value,
idea: document.getElementById('dev-idea').value
})
});
msg.style.display = 'block';
if (r.ok) {
msg.textContent = 'Got it. Will review it personally and reach out.';
msg.style.color = 'var(--navy)';
form.reset();
} else {
msg.textContent = 'Something went wrong. Email developers@neurontechnologies.ai directly.';
msg.style.color = '#c44';
}
} catch(err) {
msg.style.display = 'block';
msg.textContent = 'Connection error. Email developers@neurontechnologies.ai directly.';
msg.style.color = '#c44';
}
btn.disabled = false;
btn.textContent = 'Send interest →';
});
})();
</script>
</section>
<style>
@@ -137,6 +228,45 @@ fn marketplace() -> String {
background: rgba(0,82,160,.02);
}
@media (max-width: 640px) { .marketplace-cta-inner { flex-direction: column; align-items: flex-start; } }
/* Developer interest form */
.dev-form-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.25rem;
}
@media (max-width: 600px) { .dev-form-grid { grid-template-columns: 1fr; } }
.dev-field { display: flex; flex-direction: column; gap: 0.5rem; }
.dev-field-full { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 0.5rem; }
.dev-label {
font-family: var(--body);
font-size: 0.6875rem;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--t3);
}
.dev-input {
font-family: var(--body);
font-size: 0.9rem;
font-weight: 300;
color: var(--t1);
background: #fff;
border: 1px solid rgba(0,0,0,.15);
padding: 0.75rem 1rem;
outline: none;
transition: border-color 0.2s, box-shadow 0.2s;
width: 100%;
box-sizing: border-box;
border-radius: 0;
-webkit-appearance: none;
}
.dev-input::placeholder { color: var(--t3); font-weight: 300; }
.dev-input:focus {
border-color: var(--navy);
box-shadow: 0 0 0 3px rgba(0,82,160,.08);
}
.dev-textarea { resize: vertical; min-height: 120px; }
</style>
"
}