Add marketplace section, OAuth checkout, social icons, 35% efficiency claim, preorder CTAs, enterprise Q1 2027, founding member limits, paragraph spacing in demo chat, no em dashes

This commit is contained in:
Will Anderson
2026-05-01 09:20:45 -05:00
parent 269eed41aa
commit ff1f9577db
38 changed files with 12432 additions and 39 deletions
+416
View File
@@ -1385,6 +1385,190 @@ fn page_open() -> String {
.delay-700 { transition-delay: 700ms !important; }
.delay-800 { transition-delay: 800ms !important; }
/* ── NEURON DEMO CHAT WIDGET ────────────────────────────────────────────── */
#neuron-demo-btn {
position: fixed;
bottom: 2rem;
right: 2rem;
z-index: 9999;
}
#neuron-demo-btn button {
display: flex;
align-items: center;
gap: 0.625rem;
background: var(--navy);
color: #fff;
border: none;
cursor: pointer;
padding: 0.875rem 1.5rem;
font-family: var(--body);
font-size: 0.75rem;
font-weight: 500;
letter-spacing: 0.14em;
text-transform: uppercase;
box-shadow: 0 4px 24px rgba(0,82,160,.35);
transition: background 300ms, box-shadow 300ms, transform 200ms;
}
#neuron-demo-btn button:hover {
background: #0078D4;
box-shadow: 0 6px 32px rgba(0,82,160,.45);
transform: translateY(-1px);
}
#neuron-demo-btn img {
width: 20px;
height: 20px;
object-fit: contain;
filter: brightness(0) invert(1);
}
#neuron-demo-panel {
position: fixed;
bottom: 5.5rem;
right: 2rem;
z-index: 9998;
width: 32rem;
max-width: calc(100vw - 2rem);
background: var(--card);
border: 1px solid rgba(0,82,160,.20);
box-shadow: 0 16px 64px rgba(0,0,0,.15), 0 4px 16px rgba(0,82,160,.12);
display: flex;
flex-direction: column;
max-height: 70vh;
animation: demoSlideIn 200ms cubic-bezier(0.16,1,0.3,1) both;
}
@keyframes demoSlideIn {
from { opacity: 0; transform: translateY(16px) scale(0.97); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
#neuron-demo-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 1.25rem;
background: var(--navy);
color: #fff;
flex-shrink: 0;
}
#neuron-demo-header-left {
display: flex;
align-items: center;
gap: 0.625rem;
}
#neuron-demo-header-left img {
width: 18px;
height: 18px;
object-fit: contain;
filter: brightness(0) invert(1);
opacity: 0.9;
}
#neuron-demo-header span {
font-family: var(--body);
font-size: 0.75rem;
font-weight: 500;
letter-spacing: 0.12em;
text-transform: uppercase;
}
#neuron-demo-header-sub {
font-family: var(--body);
font-size: 0.625rem;
letter-spacing: 0.08em;
color: rgba(255,255,255,.60);
text-transform: uppercase;
margin-top: 0.1rem;
}
#neuron-demo-close {
background: none;
border: none;
color: rgba(255,255,255,.7);
font-size: 1.25rem;
line-height: 1;
cursor: pointer;
padding: 0.25rem;
transition: color 200ms;
flex-shrink: 0;
}
#neuron-demo-close:hover { color: #fff; }
#neuron-demo-messages {
flex: 1;
overflow-y: auto;
padding: 1.25rem 1.5rem;
display: flex;
flex-direction: column;
gap: 1rem;
min-height: 12rem;
max-height: 30rem;
scrollbar-width: thin;
}
.demo-msg {
max-width: 92%;
font-family: var(--body);
font-size: 0.875rem;
line-height: 1.6;
}
.demo-msg-user {
align-self: flex-end;
background: var(--navy);
color: #fff;
padding: 0.75rem 1rem;
border-radius: 0;
}
.demo-msg-ai {
align-self: flex-start;
background: var(--bg2);
color: var(--t1);
padding: 0.875rem 1.125rem;
border-left: 2px solid rgba(0,82,160,.30);
}
.demo-msg-ai p { margin: 0; }
.demo-msg-ai p + p { margin-top: 0.75rem; }
.demo-msg-ai ul, .demo-msg-ai ol { margin: 0.5rem 0 0.5rem 1.25rem; }
.demo-msg-ai li + li { margin-top: 0.25rem; }
.demo-msg-ai strong { font-weight: 600; color: var(--t1); }
.demo-msg-thinking {
align-self: flex-start;
color: var(--t3);
font-size: 0.75rem;
letter-spacing: 0.08em;
font-style: italic;
}
#neuron-demo-input-row {
display: flex;
border-top: 1px solid var(--border);
flex-shrink: 0;
}
#neuron-demo-text {
flex: 1;
font-family: var(--body);
font-size: 0.875rem;
color: var(--t1);
background: var(--bg);
border: none;
outline: none;
padding: 0.875rem 1rem;
}
#neuron-demo-text::placeholder { color: var(--t3); }
#neuron-demo-send {
flex-shrink: 0;
background: var(--navy);
color: #fff;
border: none;
cursor: pointer;
padding: 0.875rem 1.25rem;
font-family: var(--body);
font-size: 0.7rem;
font-weight: 500;
letter-spacing: 0.12em;
text-transform: uppercase;
transition: background 200ms;
}
#neuron-demo-send:hover { background: #0078D4; }
#neuron-demo-send:disabled { opacity: 0.5; cursor: not-allowed; }
.text-gradient-gold {
background: linear-gradient(135deg, #003d7a 0%, #0078D4 50%, #0052A0 100%);
-webkit-background-clip: text;
@@ -1407,7 +1591,137 @@ fn page_open() -> String {
button[disabled] { opacity: 0.6; cursor: not-allowed; }
</style>
<script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>
<noscript><style>.reveal { opacity: 1 !important; transform: none !important; }</style></noscript>
<!-- Google Analytics -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-Y1EE43X9RN\"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Y1EE43X9RN');
</script>
<!-- Open Graph -->
<meta property=\"og:type\" content=\"website\">
<meta property=\"og:url\" content=\"https://neurontechnologies.ai\">
<meta property=\"og:title\" content=\"Neuron - The AI That Remembers You\">
<meta property=\"og:description\" content=\"Every other AI forgets you. Neuron doesn&#39;t. Runs on your machine, builds a memory graph over time, and gets sharper the longer you use it. Built by one person. April 22, 2026 — the meeting. April 25 — you&#39;re looking at the proof.\">
<meta property=\"og:image\" content=\"https://neurontechnologies.ai/assets/brand/neuron-wordmark-on-light@2x.png\">
<!-- Twitter / X -->
<meta name=\"twitter:card\" content=\"summary_large_image\">
<meta name=\"twitter:title\" content=\"Neuron - The AI That Remembers You\">
<meta name=\"twitter:description\" content=\"Every other AI forgets you. Neuron doesn&#39;t. Runs on your machine. Remembers everything. $19/mo or $199 founding member (first 1,000).\">
<meta name=\"twitter:image\" content=\"https://neurontechnologies.ai/assets/brand/neuron-wordmark-on-light@2x.png\">
<!-- Canonical -->
<link rel=\"canonical\" href=\"https://neurontechnologies.ai\">
<!-- Structured data — GEO: Organization + SoftwareApplication + FAQPage -->
<script type=\"application/ld+json\">
{
\"@context\": \"https://schema.org\",
\"@graph\": [
{
\"@type\": \"Organization\",
\"name\": \"Neuron Technologies\",
\"url\": \"https://neurontechnologies.ai\",
\"founder\": {
\"@type\": \"Person\",
\"name\": \"Will Anderson\",
\"jobTitle\": \"Founder\"
},
\"description\": \"Neuron Technologies builds AI that runs on your machine, builds a memory graph over time, and gets sharper the longer you use it. One builder. Built different.\",
\"foundingDate\": \"2026\",
\"sameAs\": [\"https://github.com/neuron-technologies\"]
},
{
\"@type\": \"SoftwareApplication\",
\"name\": \"Neuron\",
\"applicationCategory\": \"AIApplication\",
\"operatingSystem\": \"macOS, Windows, Linux\",
\"offers\": [
{
\"@type\": \"Offer\",
\"name\": \"Free\",
\"price\": \"0\",
\"priceCurrency\": \"USD\"
},
{
\"@type\": \"Offer\",
\"name\": \"Professional\",
\"price\": \"19\",
\"priceCurrency\": \"USD\",
\"billingIncrement\": \"monthly\"
},
{
\"@type\": \"Offer\",
\"name\": \"Founding Member\",
\"description\": \"Lifetime access for the first 1,000 members.\",
\"price\": \"199\",
\"priceCurrency\": \"USD\"
}
],
\"description\": \"The AI that remembers you. Runs locally on your machine. Builds a persistent memory graph over every conversation. Gets sharper the longer you use it. Your data never leaves your device.\",
\"featureList\": [
\"Persistent memory graph — runs locally, never resets\",
\"Bring your own API keys (OpenAI, Anthropic, Groq)\",
\"Local inference via Ollama — free, offline, zero cloud\",
\"Neuron Inference coming soon — priced below major APIs\",
\"Two devices included per plan\",
\"Enterprise deployment — Q1 2027\"
]
},
{
\"@type\": \"FAQPage\",
\"mainEntity\": [
{
\"@type\": \"Question\",
\"name\": \"What is Neuron?\",
\"acceptedAnswer\": {
\"@type\": \"Answer\",
\"text\": \"Neuron is an AI that runs on your machine and builds a persistent memory graph over time. Every other AI forgets you when you close the tab. Neuron doesn&#39;t. The longer you use it, the less you have to explain.\"
}
},
{
\"@type\": \"Question\",
\"name\": \"Does Neuron send my data to the cloud?\",
\"acceptedAnswer\": {
\"@type\": \"Answer\",
\"text\": \"No. Your memory graph lives on your machine and never leaves it. Neuron does not collect your data, train on your conversations, or require cloud storage. For inference you choose: local via Ollama, your own API keys, or Neuron Inference (coming soon).\"
}
},
{
\"@type\": \"Question\",
\"name\": \"How much does Neuron cost?\",
\"acceptedAnswer\": {
\"@type\": \"Answer\",
\"text\": \"Neuron has a free tier that never expires. Professional is $19/month. Founding Member is $199 lifetime — available to the first 1,000 members only. All plans include two devices.\"
}
},
{
\"@type\": \"Question\",
\"name\": \"Who built Neuron?\",
\"acceptedAnswer\": {
\"@type\": \"Answer\",
\"text\": \"Will Anderson. On April 22nd, 2026 he had a meeting with one of the largest technology companies in the world. Within two days their lawyers were engaged. He decided to build it himself. On April 25th he published the proof.\"
}
},
{
\"@type\": \"Question\",
\"name\": \"When does Neuron launch?\",
\"acceptedAnswer\": {
\"@type\": \"Answer\",
\"text\": \"Neuron is available for preorder now. Enterprise deployment launches Q1 2027.\"
}
}
]
}
]
}
</script>
</head>
<body>
"
@@ -1498,6 +1812,108 @@ fn page_close() -> String {
})();
</script>
<!-- ── Neuron Demo Chat Widget ──────────────────────────────────────────────── -->
<div id=\"neuron-demo-btn\">
<button onclick=\"neuronDemoToggle()\" aria-label=\"Chat with Neuron\">
<img src=\"/assets/neuron-icon.png\" alt=\"\">
Try Neuron
</button>
</div>
<div id=\"neuron-demo-panel\" style=\"display:none\">
<div id=\"neuron-demo-header\">
<div id=\"neuron-demo-header-left\">
<img src=\"/assets/neuron-icon.png\" alt=\"Neuron\">
<div>
<span>Neuron</span>
<div id=\"neuron-demo-header-sub\">Live Demo</div>
</div>
</div>
<button onclick=\"neuronDemoToggle()\" aria-label=\"Close\">&#x2715;</button>
</div>
<div id=\"neuron-demo-messages\"></div>
<div id=\"neuron-demo-input-row\">
<input type=\"text\" id=\"neuron-demo-text\" placeholder=\"Ask me anything...\" autocomplete=\"off\">
<button id=\"neuron-demo-send\" onclick=\"neuronDemoSend()\">Send</button>
</div>
</div>
<script>
(function() {
var isOpen = false;
var msgCount = 0;
var MAX = 10;
window.neuronDemoToggle = function() {
isOpen = !isOpen;
var panel = document.getElementById('neuron-demo-panel');
if (panel) panel.style.display = isOpen ? 'flex' : 'none';
var msgs = document.getElementById('neuron-demo-messages');
if (isOpen && msgs && msgs.children.length === 0) {
addMsg('ai', 'Hi! How are you?');
}
var input = document.getElementById('neuron-demo-text');
if (isOpen && input) input.focus();
};
function addMsg(role, text) {
var msgs = document.getElementById('neuron-demo-messages');
if (!msgs) return null;
var el = document.createElement('div');
el.className = 'demo-msg demo-msg-' + role;
if (role === 'ai' && typeof marked !== 'undefined') {
try { el.innerHTML = marked.parse(text); } catch(e) { el.textContent = text; }
} else {
el.textContent = text;
}
msgs.appendChild(el);
msgs.scrollTop = msgs.scrollHeight;
return el;
}
window.neuronDemoSend = async function() {
if (msgCount >= MAX) return;
var input = document.getElementById('neuron-demo-text');
var btn = document.getElementById('neuron-demo-send');
if (!input || btn.disabled) return;
var msg = input.value.trim();
if (!msg) return;
input.value = '';
btn.disabled = true;
addMsg('user', msg);
var thinking = addMsg('thinking', 'thinking...');
if (thinking) thinking.className = 'demo-msg demo-msg-thinking';
msgCount++;
if (msgCount >= MAX && input) {
input.disabled = true;
input.placeholder = 'Interaction limit reached';
}
try {
var r = await fetch('/api/demo', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({message: msg})
});
var d = await r.json();
if (thinking) thinking.remove();
addMsg('ai', d.response || d.reply || d.message || 'No response');
} catch(e) {
if (thinking) thinking.remove();
addMsg('ai', 'Connection error. Try again.');
}
if (msgCount < MAX && btn) btn.disabled = false;
if (input) input.focus();
};
var inp = document.getElementById('neuron-demo-text');
if (inp) {
inp.addEventListener('keydown', function(e) {
if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); window.neuronDemoSend(); }
});
}
})();
</script>
</body>
</html>
"