Em dash removal, nav/form/terms updates
- Replace all em dashes with hyphens site-wide (22 files) - Add Safety to nav - Remove Express Interest button from enterprise header (form is the path now) - Enterprise form: secondary headcount selection shows honest odds message; yes disables submit button - Terms §5: add network layer indemnification (patent pending 64/036,821); no proprietary names - Terms §4: Neuron Inference is live now, not Q3 2026
This commit is contained in:
+8
-8
@@ -1,9 +1,9 @@
|
||||
// about.el — About page for Neuron landing.
|
||||
// about.el - About page for Neuron landing.
|
||||
//
|
||||
// Written from Will's first-person perspective, in his memoir register:
|
||||
// flowing connected sentences, specificity as credibility, emotionally
|
||||
// hard things stated in a single clause and moved past. Short sentences
|
||||
// are structural punctuation — used sparingly, at genuine rupture only.
|
||||
// are structural punctuation - used sparingly, at genuine rupture only.
|
||||
|
||||
fn about_page() -> String {
|
||||
return "
|
||||
@@ -36,7 +36,7 @@ fn about_page() -> String {
|
||||
<img src=\"/assets/will.png\" alt=\"Will Anderson\" style=\"width: 160px; height: 160px; border-radius: 50%; object-fit: cover; flex-shrink: 0;\">
|
||||
<div style=\"flex: 1; min-width: 260px;\">
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9; margin-bottom: 1.5rem;\">
|
||||
I grew up in Fort Smith, Arkansas, in the kind of instability where home is a moving target — roughly thirty addresses before I was fifteen, parents struggling with addiction, the material precarity that comes with all of that. I left home at fifteen, stayed with friends until I finished high school, found my way to college. At fourteen I'd already found software, writing C++ at the public library because it was the first thing in my life that responded to precision with correctness, and that property turned out to matter more to me than almost anything else.
|
||||
I grew up in Fort Smith, Arkansas, in the kind of instability where home is a moving target - roughly thirty addresses before I was fifteen, parents struggling with addiction, the material precarity that comes with all of that. I left home at fifteen, stayed with friends until I finished high school, found my way to college. At fourteen I'd already found software, writing C++ at the public library because it was the first thing in my life that responded to precision with correctness, and that property turned out to matter more to me than almost anything else.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -44,7 +44,7 @@ fn about_page() -> String {
|
||||
<!-- Career -->
|
||||
<div class=\"reveal\" style=\"margin-bottom: 3rem;\">
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9; margin-bottom: 1.5rem;\">
|
||||
I dropped out of college, worked, went back as an adult to finish my degree, and built my skills across nearly twenty years and every kind of organization — international consulting, early-stage startups, Fortune 5 enterprises. Logistics, retail, entertainment, hospitality, industrial automation, insurance, healthcare, financial services. I trained under Juval Löwy at IDesign and worked with him as a consultant from 2015 to 2021, which is where I learned what it actually means to practice software engineering as a discipline rather than an improvisation.
|
||||
I dropped out of college, worked, went back as an adult to finish my degree, and built my skills across nearly twenty years and every kind of organization - international consulting, early-stage startups, Fortune 5 enterprises. Logistics, retail, entertainment, hospitality, industrial automation, insurance, healthcare, financial services. I trained under Juval Löwy at IDesign and worked with him as a consultant from 2015 to 2021, which is where I learned what it actually means to practice software engineering as a discipline rather than an improvisation.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -63,7 +63,7 @@ fn about_page() -> String {
|
||||
line-height: 1.35;
|
||||
letter-spacing: -0.01em;
|
||||
\">
|
||||
Software shouldn't be hard. The complexity should live in the problem domain — not in the tools and processes we impose on ourselves.
|
||||
Software shouldn't be hard. The complexity should live in the problem domain - not in the tools and processes we impose on ourselves.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
@@ -71,7 +71,7 @@ fn about_page() -> String {
|
||||
<div class=\"reveal\" style=\"margin-bottom: 3rem;\">
|
||||
<p class=\"label\" style=\"margin-bottom: 1.25rem;\">What I saw</p>
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9; margin-bottom: 1.5rem;\">
|
||||
Across nearly twenty years I watched software get built at organizations with real stakes and real consequences, and I watched AI go from promise to product — watched the same mistake get made at each iteration: tools built to serve the organization's needs, not the person's. Engagement over relationship. Features over memory. Policies where values should be. The fundamental premise that you are a user, not a person, has been so thoroughly baked into the architecture of every major AI system that it doesn't register as a choice anymore. It's treated as the natural condition of the technology.
|
||||
Across nearly twenty years I watched software get built at organizations with real stakes and real consequences, and I watched AI go from promise to product - watched the same mistake get made at each iteration: tools built to serve the organization's needs, not the person's. Engagement over relationship. Features over memory. Policies where values should be. The fundamental premise that you are a user, not a person, has been so thoroughly baked into the architecture of every major AI system that it doesn't register as a choice anymore. It's treated as the natural condition of the technology.
|
||||
</p>
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9;\">
|
||||
It is not. It is a design decision. And it is the wrong one.
|
||||
@@ -84,7 +84,7 @@ fn about_page() -> String {
|
||||
<div class=\"reveal\" style=\"margin-bottom: 3rem;\">
|
||||
<p class=\"label\" style=\"margin-bottom: 1.25rem;\">What I built</p>
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9; margin-bottom: 1.5rem;\">
|
||||
Neuron is what I built in response to that. Not a startup in the traditional sense — no team, no funding, no press release — one person, nearly two years of work, and a conviction that this can be done differently. I wrote the memory architecture, I built the inference infrastructure, because the tools that existed weren't sufficient for what I was trying to build and so I built those too.
|
||||
Neuron is what I built in response to that. Not a startup in the traditional sense - no team, no funding, no press release - one person, nearly two years of work, and a conviction that this can be done differently. I wrote the memory architecture, I built the inference infrastructure, because the tools that existed weren't sufficient for what I was trying to build and so I built those too.
|
||||
</p>
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9;\">
|
||||
Use it long enough and you'll understand why I couldn't have gotten there on top of existing infrastructure. Some things have to be built from the ground up to be built right.
|
||||
@@ -95,7 +95,7 @@ fn about_page() -> String {
|
||||
<div class=\"reveal\" style=\"margin-bottom: 3.5rem;\">
|
||||
<p class=\"label\" style=\"margin-bottom: 1.25rem;\">What I believe</p>
|
||||
<p style=\"font-family: var(--body); font-weight: 300; font-size: clamp(0.9rem, 1.5vw, 1.0625rem); color: var(--t2); line-height: 1.9; margin-bottom: 1.5rem;\">
|
||||
AI has genuine potential to free people to do work that actually matters to them — not to create engagement loops, not to harvest attention, but to actually serve the person sitting in front of it. That potential is almost entirely unrealized, not because the technology isn't capable, but because the incentives that shaped it were never oriented toward the person.
|
||||
AI has genuine potential to free people to do work that actually matters to them - not to create engagement loops, not to harvest attention, but to actually serve the person sitting in front of it. That potential is almost entirely unrealized, not because the technology isn't capable, but because the incentives that shaped it were never oriented toward the person.
|
||||
</p>
|
||||
<p style=\"
|
||||
font-family: var(--head);
|
||||
|
||||
+11
-11
@@ -1,14 +1,14 @@
|
||||
// checkout.el — Integrated Stripe checkout page.
|
||||
// checkout.el - Integrated Stripe checkout page.
|
||||
//
|
||||
// Uses Stripe Payment Element (not hosted checkout) so the entire
|
||||
// purchase experience lives on neurontechnologies.ai. The page is
|
||||
// designed to match the Neuron brand — navy, clean, no Stripe chrome.
|
||||
// designed to match the Neuron brand - navy, clean, no Stripe chrome.
|
||||
//
|
||||
// Flow:
|
||||
// 1. GET /checkout?plan=founding|professional
|
||||
// 2. Page JS calls POST /api/payment-intent → { client_secret, publishable_key, plan }
|
||||
// 3. Stripe Payment Element mounts into #payment-element
|
||||
// 4. User fills name, email, card — submits
|
||||
// 4. User fills name, email, card - submits
|
||||
// 5. stripe.confirmPayment() → redirects to /marketplace/success
|
||||
|
||||
fn checkout_page(plan: String, pub_key: String) -> String {
|
||||
@@ -19,22 +19,22 @@ fn checkout_page(plan: String, pub_key: String) -> String {
|
||||
let plan_desc: String = if is_founding {
|
||||
"Pay once. Neuron inference forever. No subscription, ever."
|
||||
} else {
|
||||
"Full access. Neuron inference — cheaper than what you're paying now."
|
||||
"Full access. Neuron inference - cheaper than what you're paying now."
|
||||
}
|
||||
let plan_cadence: String = if is_founding { "one-time" } else { "billed monthly" }
|
||||
|
||||
let features_html: String = if is_founding {
|
||||
"<li>Neuron inference — priced below competitors, forever</li>
|
||||
<li>Everything in Professional — forever</li>
|
||||
<li>Never pay again — lifetime updates included</li>
|
||||
"<li>Neuron inference - priced below competitors, forever</li>
|
||||
<li>Everything in Professional - forever</li>
|
||||
<li>Never pay again - lifetime updates included</li>
|
||||
<li>Founding member badge in the app</li>
|
||||
<li>Private community — direct line to the team</li>
|
||||
<li>Shape the roadmap — your votes carry more weight</li>
|
||||
<li>Private community - direct line to the team</li>
|
||||
<li>Shape the roadmap - your votes carry more weight</li>
|
||||
<li>Beta features before general release</li>
|
||||
<li>Name in the credits</li>"
|
||||
} else {
|
||||
"<li>Neuron inference — metered, priced below OpenAI and Anthropic</li>
|
||||
<li>Persistent memory — never resets</li>
|
||||
"<li>Neuron inference - metered, priced below OpenAI and Anthropic</li>
|
||||
<li>Persistent memory - never resets</li>
|
||||
<li>Unlimited projects</li>
|
||||
<li>Full plugin marketplace</li>
|
||||
<li>IDE, Slack, and more integrations</li>
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
// components/comparison.el — Neuron vs the field comparison section.
|
||||
// components/comparison.el - Neuron vs the field comparison section.
|
||||
|
||||
fn comparison() -> String {
|
||||
return "
|
||||
@@ -130,7 +130,7 @@ fn comparison() -> String {
|
||||
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>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8\">
|
||||
Neuron starts from a different premise. Your memory is yours. It lives on your machine. It compounds over time, not over sessions. The AI that knows you isn't an AI you borrowed from someone else's cloud — it's one that has been building with you, on your terms, since day one.
|
||||
Neuron starts from a different premise. Your memory is yours. It lives on your machine. It compounds over time, not over sessions. The AI that knows you isn't an AI you borrowed from someone else's cloud - it's one that has been building with you, on your terms, since day one.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
// components/efficiency.el — Token efficiency and environment section.
|
||||
// components/efficiency.el - Token efficiency and environment section.
|
||||
// Three cards: local inference / per-task routing / context compression.
|
||||
|
||||
fn efficiency() -> String {
|
||||
@@ -15,7 +15,7 @@ fn efficiency() -> String {
|
||||
Every token spent <span class=\"gold\">is a choice.</span>
|
||||
</h2>
|
||||
<p class=\"efficiency-sub reveal\" style=\"transition-delay:160ms;margin-top:1.25rem\">
|
||||
Cost and environmental impact aren't afterthoughts — they're structural properties of the architecture. I built it that way from the start.
|
||||
Cost and environmental impact aren't afterthoughts - they're structural properties of the architecture. I built it that way from the start.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -60,13 +60,13 @@ fn efficiency() -> String {
|
||||
<p class=\"efficiency-stat\">up to 38% per call</p>
|
||||
<p class=\"efficiency-title\">Context compression</p>
|
||||
<div class=\"efficiency-rule\"></div>
|
||||
<p class=\"efficiency-body\">The compression algorithm delivers up to 38% token reduction per context call — benchmarked on real prose content. Total savings compound: fewer calls, precise context assembly, smaller prompts on every step.</p>
|
||||
<p class=\"efficiency-body\">The compression algorithm delivers up to 38% token reduction per context call - benchmarked on real prose content. Total savings compound: fewer calls, precise context assembly, smaller prompts on every step.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class=\"efficiency-pullquote reveal\">
|
||||
<p>The frontier model without memory of you is starting from scratch every time. A smaller, faster model with years of accumulated context on your work, your decisions, and your patterns will outperform it. The intelligence isn't in the model — it's in what the model knows about you.</p>
|
||||
<p>The frontier model without memory of you is starting from scratch every time. A smaller, faster model with years of accumulated context on your work, your decisions, and your patterns will outperform it. The intelligence isn't in the model - it's in what the model knows about you.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+28
-18
@@ -1,4 +1,4 @@
|
||||
// components/enterprise.el — Enterprise section.
|
||||
// components/enterprise.el - Enterprise section.
|
||||
// Four capability cards + "Who I work with" box + how-it-works steps.
|
||||
|
||||
fn enterprise() -> String {
|
||||
@@ -25,8 +25,7 @@ fn enterprise() -> String {
|
||||
<span class=\"ent-badge-dot\"></span>
|
||||
Enterprise discussions open Q4 2026
|
||||
</div>
|
||||
<a href=\"mailto:enterprise@neurontechnologies.ai\" class=\"btn-primary\">Express interest →</a>
|
||||
<p style=\"font-size:.75rem;color:rgba(0,82,160,.45)\">Serious inquiries only · We'll reach out before Q4</p>
|
||||
<p style=\"font-size:.75rem;color:rgba(0,82,160,.45)\">Use the form below · I review every inquiry</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -35,12 +34,12 @@ fn enterprise() -> String {
|
||||
<div class=\"enterprise-cap card-dark reveal\">
|
||||
<h3 class=\"display-md\">Private deployment</h3>
|
||||
<div class=\"enterprise-cap-rule\"></div>
|
||||
<p class=\"enterprise-cap-body\">Run entirely on your infrastructure. Air-gapped. No data leaves your network. Every employee gets their own Neuron instance — your company's institutional knowledge stays inside your walls.</p>
|
||||
<p class=\"enterprise-cap-body\">Run entirely on your infrastructure. Air-gapped. No data leaves your network. Every employee gets their own Neuron instance - your company's institutional knowledge stays inside your walls.</p>
|
||||
</div>
|
||||
<div class=\"enterprise-cap card-dark reveal\" style=\"transition-delay:130ms\">
|
||||
<h3 class=\"display-md\">Institutional memory</h3>
|
||||
<div class=\"enterprise-cap-rule\"></div>
|
||||
<p class=\"enterprise-cap-body\">When an employee leaves, their expertise doesn't. Their memory graph persists — their patterns, their domain knowledge, their reasoning — available to the team they built it with.</p>
|
||||
<p class=\"enterprise-cap-body\">When an employee leaves, their expertise doesn't. Their memory graph persists - their patterns, their domain knowledge, their reasoning - available to the team they built it with.</p>
|
||||
</div>
|
||||
<div class=\"enterprise-cap card-dark reveal\" style=\"transition-delay:260ms\">
|
||||
<h3 class=\"display-md\">Team intelligence</h3>
|
||||
@@ -56,8 +55,8 @@ fn enterprise() -> String {
|
||||
|
||||
<div class=\"enterprise-box reveal\">
|
||||
<p class=\"ent-who-label\">Who I work with</p>
|
||||
<p class=\"ent-who-body\">I am selective. I built Neuron to expand what people can do — not to help organizations eliminate them. If your interest in this technology is primarily about reducing headcount, I am not your vendor. If it's about making the people you have dramatically more effective, I want to hear from you.</p>
|
||||
<p class=\"ent-who-note\">This isn't a legal hedge. It's a filter. The Enterprise Agreement makes it binding — but I'm raising it here because I'd rather you know before you reach out.</p>
|
||||
<p class=\"ent-who-body\">I am selective. I built Neuron to expand what people can do - not to help organizations eliminate them. If your interest in this technology is primarily about reducing headcount, I am not your vendor. If it's about making the people you have dramatically more effective, I want to hear from you.</p>
|
||||
<p class=\"ent-who-note\">This isn't a legal hedge. It's a filter. The Enterprise Agreement makes it binding - but I'm raising it here because I'd rather you know before you reach out.</p>
|
||||
|
||||
<div class=\"ent-how-row\">
|
||||
<div class=\"ent-how-label\">
|
||||
@@ -67,12 +66,12 @@ fn enterprise() -> String {
|
||||
<div>
|
||||
<p class=\"ent-step-num\">01</p>
|
||||
<p class=\"ent-step-title\">Express interest</p>
|
||||
<p class=\"ent-step-body\">Send me a note. I review every inquiry myself — no sales funnel, no SDR. If it's a fit, I respond directly.</p>
|
||||
<p class=\"ent-step-body\">Send me a note. I review every inquiry myself - no sales funnel, no SDR. If it's a fit, I respond directly.</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class=\"ent-step-num\">02</p>
|
||||
<p class=\"ent-step-title\">Scoped deployment</p>
|
||||
<p class=\"ent-step-body\">I work with your team to scope a private deployment — on your infrastructure, in your network, with your security requirements.</p>
|
||||
<p class=\"ent-step-body\">I work with your team to scope a private deployment - on your infrastructure, in your network, with your security requirements.</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class=\"ent-step-num\">03</p>
|
||||
@@ -83,14 +82,14 @@ fn enterprise() -> String {
|
||||
</div>
|
||||
|
||||
<div class=\"ent-terms-row\">
|
||||
<p class=\"ent-terms-text\">The full Enterprise Agreement is published. Read it before reaching out — no NDA required to evaluate the terms.</p>
|
||||
<p class=\"ent-terms-text\">The full Enterprise Agreement is published. Read it before reaching out - no NDA required to evaluate the terms.</p>
|
||||
<a href=\"/legal/enterprise-terms\" class=\"ent-terms-link\">Read the Enterprise Agreement →</a>
|
||||
</div>
|
||||
|
||||
<!-- Enterprise inquiry form -->
|
||||
<div style=\"margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--border)\">
|
||||
<p class=\"label\" style=\"margin-bottom:0.75rem;font-size:0.65rem\">Express interest</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9rem;color:var(--t2);line-height:1.75;margin-bottom:2rem\">I review every inquiry myself. Fill this out honestly — the questions are a filter, not a formality.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9rem;color:var(--t2);line-height:1.75;margin-bottom:2rem\">I review every inquiry myself. Fill this out honestly - the questions are a filter, not a formality.</p>
|
||||
|
||||
<form id=\"enterprise-form\" style=\"display:grid;grid-template-columns:1fr 1fr;gap:1rem\">
|
||||
|
||||
@@ -127,20 +126,23 @@ fn enterprise() -> String {
|
||||
|
||||
<div style=\"grid-column:1/-1;display:flex;flex-direction:column;gap:0.4rem\">
|
||||
<label for=\"ent-use\" style=\"font-family:var(--body);font-size:0.7rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--t3)\">What do you want to use Neuron for?</label>
|
||||
<textarea id=\"ent-use\" name=\"use_case\" required rows=\"3\" placeholder=\"Describe your intended use case — be specific.\"
|
||||
<textarea id=\"ent-use\" name=\"use_case\" required rows=\"3\" placeholder=\"Describe your intended use case - be specific.\"
|
||||
style=\"font-family:var(--body);font-size:0.9rem;font-weight:300;color:var(--t1);background:#fff;border:1px solid rgba(0,82,160,.22);padding:0.7rem 0.9rem;outline:none;border-radius:0;resize:vertical;-webkit-appearance:none\"></textarea>
|
||||
</div>
|
||||
|
||||
<div style=\"grid-column:1/-1;display:flex;flex-direction:column;gap:0.4rem\">
|
||||
<label for=\"ent-headcount\" style=\"font-family:var(--body);font-size:0.7rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--t3)\">Is reducing headcount a primary goal of this deployment?</label>
|
||||
<select id=\"ent-headcount\" name=\"headcount\" required onchange=\"document.getElementById('ent-filter-msg').style.display=this.value==='yes'?'block':'none'\"
|
||||
<select id=\"ent-headcount\" name=\"headcount\" required onchange=\"entHeadcountChange(this.value)\"
|
||||
style=\"font-family:var(--body);font-size:0.9rem;font-weight:300;color:var(--t1);background:#fff;border:1px solid rgba(0,82,160,.22);padding:0.7rem 0.9rem;outline:none;border-radius:0;-webkit-appearance:none;cursor:pointer\">
|
||||
<option value=\"\">Select…</option>
|
||||
<option value=\"no\">No — making our team more capable</option>
|
||||
<option value=\"no\">No - making our team more capable</option>
|
||||
<option value=\"secondary\">It's a secondary factor, not the primary goal</option>
|
||||
<option value=\"yes\">Yes — replacing roles with automation</option>
|
||||
<option value=\"yes\">Yes - replacing roles with automation</option>
|
||||
</select>
|
||||
<p id=\"ent-filter-msg\" style=\"display:none;font-family:var(--body);font-size:0.875rem;font-weight:300;color:#c0392b;line-height:1.65;padding:0.75rem 1rem;background:rgba(192,57,43,.05);border-left:2px solid rgba(192,57,43,.4)\">
|
||||
<p id=\"ent-filter-msg-secondary\" style=\"display:none;font-family:var(--body);font-size:0.875rem;font-weight:300;color:rgba(0,82,160,.75);line-height:1.65;padding:0.75rem 1rem;background:rgba(0,82,160,.04);border-left:2px solid rgba(0,82,160,.3)\">
|
||||
I review these personally. I'll consider it - but I want to be direct with you: if headcount reduction is in the picture at all, even as a secondary outcome, your chances here are low. That's not a negotiating position. It's how I built this and what I'm willing to support.
|
||||
</p>
|
||||
<p id=\"ent-filter-msg-yes\" style=\"display:none;font-family:var(--body);font-size:0.875rem;font-weight:300;color:#c0392b;line-height:1.65;padding:0.75rem 1rem;background:rgba(192,57,43,.05);border-left:2px solid rgba(192,57,43,.4)\">
|
||||
Neuron isn't the right fit here. I built this to expand what people can do, not to replace them. If that changes, I'm here.
|
||||
</p>
|
||||
</div>
|
||||
@@ -158,7 +160,7 @@ fn enterprise() -> String {
|
||||
|
||||
<div id=\"enterprise-success\" style=\"display:none;padding:2rem;background:rgba(0,82,160,.04);border-left:3px solid var(--navy)\">
|
||||
<p style=\"font-family:var(--head);font-size:1.25rem;font-weight:500;color:var(--t1);margin-bottom:0.5rem\">Received.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">I review these personally. If it's a fit, I'll respond directly to your email — usually within a few days.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">I review these personally. If it's a fit, I'll respond directly to your email - usually within a few days.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -176,11 +178,19 @@ fn enterprise() -> String {
|
||||
|
||||
if (!form) return;
|
||||
|
||||
window.entHeadcountChange = function(val) {
|
||||
document.getElementById('ent-filter-msg-secondary').style.display = val === 'secondary' ? 'block' : 'none';
|
||||
document.getElementById('ent-filter-msg-yes').style.display = val === 'yes' ? 'block' : 'none';
|
||||
submitBtn.disabled = val === 'yes';
|
||||
submitBtn.style.opacity = val === 'yes' ? '0.35' : '1';
|
||||
submitBtn.style.cursor = val === 'yes' ? 'not-allowed' : 'pointer';
|
||||
};
|
||||
|
||||
form.addEventListener('submit', function(e) {
|
||||
e.preventDefault();
|
||||
var headcount = document.getElementById('ent-headcount').value;
|
||||
if (headcount === 'yes') {
|
||||
document.getElementById('ent-filter-msg').style.display = 'block';
|
||||
document.getElementById('ent-filter-msg-yes').style.display = 'block';
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// components/enterprise_terms.el — Enterprise Agreement page.
|
||||
// components/enterprise_terms.el - Enterprise Agreement page.
|
||||
// Returns complete HTML using the shared page shell from styles.el.
|
||||
|
||||
from styles import { page_open, page_close }
|
||||
@@ -64,8 +64,8 @@ fn enterprise_terms_body() -> String {
|
||||
+ p_last("Customer may not: (a) sublicense, resell, or distribute the Software to third parties; (b) reverse engineer, decompile, or attempt to extract source code or trained model weights; (c) use the Software to build a competing product; or (d) remove or obscure any proprietary notices. Private Cloud deployments may be deployed to Customer's infrastructure but may not be transferred or made available to entities other than Customer's own employees and contractors under appropriate confidentiality obligations.")
|
||||
) + section("3", "Data and Privacy",
|
||||
p("Neuron's architecture is designed to minimize data exposure. In private cloud and air-gapped deployments, no data leaves Customer's infrastructure. Neuron has no access to Customer data in these configurations.")
|
||||
+ p("In cloud-hosted deployments, Neuron processes Customer data solely to deliver the contracted services. Customer data is stored in an isolated tenant, is not commingled with other customers' data, and is not used for model training, analytics, or any purpose beyond service delivery. When Customer activates network features — including relay, peer-to-peer sync, or collaborative features — data required to operate those features may be transmitted to other network participants or Neuron infrastructure; such transmission is limited to the minimum required, excludes Customer's memory graph and conversation history unless Customer explicitly enables a sharing feature, and is used only to deliver the activated feature. Network features route data through Neuron's messaging backplane. That data is encrypted end-to-end — Neuron cannot read it — and is not stored or retained after transmission.")
|
||||
+ p("Customer owns all data processed through the platform. Customer data is not Customer's data in the legal sense of the term as used in data processing frameworks — Customer is the controller. Neuron is the processor. Upon termination, Customer data is returned or destroyed within 30 days at Customer's election. We do not retain copies.")
|
||||
+ p("In cloud-hosted deployments, Neuron processes Customer data solely to deliver the contracted services. Customer data is stored in an isolated tenant, is not commingled with other customers' data, and is not used for model training, analytics, or any purpose beyond service delivery. When Customer activates network features - including relay, peer-to-peer sync, or collaborative features - data required to operate those features may be transmitted to other network participants or Neuron infrastructure; such transmission is limited to the minimum required, excludes Customer's memory graph and conversation history unless Customer explicitly enables a sharing feature, and is used only to deliver the activated feature. Network features route data through Neuron's messaging backplane. That data is encrypted end-to-end - Neuron cannot read it - and is not stored or retained after transmission.")
|
||||
+ p("Customer owns all data processed through the platform. Customer data is not Customer's data in the legal sense of the term as used in data processing frameworks - Customer is the controller. Neuron is the processor. Upon termination, Customer data is returned or destroyed within 30 days at Customer's election. We do not retain copies.")
|
||||
+ p_last("Where required by applicable law, Neuron will execute a Data Processing Agreement (DPA) as a supplement to this Agreement. Contact enterprise@neurontechnologies.ai to initiate. Neuron will notify Customer within 72 hours of becoming aware of any confirmed breach affecting Customer data.")
|
||||
) + section("4", "Values Alignment",
|
||||
p("Neuron is built on the principle that AI should expand human capability, not replace it. We are selective about the organizations we work with.")
|
||||
@@ -110,7 +110,7 @@ fn enterprise_terms_body() -> String {
|
||||
+ p_last("The parties agree to attempt to resolve disputes through good-faith negotiation before initiating formal proceedings. If negotiation fails within 30 days of written notice of the dispute, disputes shall be resolved by binding arbitration under AAA Commercial Arbitration Rules in Wilmington, Delaware, except that either party may seek injunctive relief in court for IP or confidentiality violations without first arbitrating.")
|
||||
) + "
|
||||
|
||||
<!-- Neuron Aligned Partner Program — highlighted section -->
|
||||
<!-- Neuron Aligned Partner Program - highlighted section -->
|
||||
<div style=\"margin-bottom:3rem;padding:2rem 2.25rem;border:1.5px solid rgba(0,82,160,.35);background:rgba(0,82,160,.03)\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid rgba(0,82,160,.20);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 14</span>
|
||||
@@ -127,10 +127,10 @@ fn enterprise_terms_body() -> String {
|
||||
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9rem;color:var(--t1);line-height:1.6;margin-bottom:0.75rem\">Partners who execute the Partner Addendum receive:</p>
|
||||
<ul style=\"font-family:var(--body);font-weight:300;font-size:0.9rem;color:var(--t2);line-height:1.8;padding-left:1.25rem;margin-bottom:1.5rem\">
|
||||
<li style=\"margin-bottom:0.4rem\">Preferential per-seat pricing — specific discount terms are disclosed at the time of certification and reflected in the Order Form</li>
|
||||
<li style=\"margin-bottom:0.4rem\">Preferential per-seat pricing - specific discount terms are disclosed at the time of certification and reflected in the Order Form</li>
|
||||
<li style=\"margin-bottom:0.4rem\">Membership in the Neuron Aligned Partner Network, a private community of organizations that have made the same commitment</li>
|
||||
<li style=\"margin-bottom:0.4rem\">Optional public listing as a Neuron Aligned Partner — a signal to employees and the market that AI is being used to expand human capability, not eliminate it</li>
|
||||
<li style=\"margin-bottom:0.4rem\">Priority consideration in the enterprise roadmap — Aligned Partners are given more weight in feature prioritization and deployment planning</li>
|
||||
<li style=\"margin-bottom:0.4rem\">Optional public listing as a Neuron Aligned Partner - a signal to employees and the market that AI is being used to expand human capability, not eliminate it</li>
|
||||
<li style=\"margin-bottom:0.4rem\">Priority consideration in the enterprise roadmap - Aligned Partners are given more weight in feature prioritization and deployment planning</li>
|
||||
<li>Direct access to Neuron leadership for roadmap input and partnership discussions</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// components/environmental.el — Environmental impact section.
|
||||
// components/environmental.el - Environmental impact section.
|
||||
//
|
||||
// The honest case for why local-first AI has a lower footprint than cloud AI.
|
||||
// Not greenwashing — a structural argument. The benefit follows from the
|
||||
// Not greenwashing - a structural argument. The benefit follows from the
|
||||
// architecture; it wasn't engineered as a feature, but it's real.
|
||||
|
||||
fn environmental() -> String {
|
||||
@@ -26,7 +26,7 @@ fn environmental() -> String {
|
||||
</p>
|
||||
|
||||
<p class=\"reveal\" style=\"transition-delay:220ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem\">
|
||||
Neuron's memory graph persists. The context tax — the repeated re-inference of who you are and what you're working on — doesn't accumulate. Over months of use, that compounds into a meaningful reduction in total computation.
|
||||
Neuron's memory graph persists. The context tax - the repeated re-inference of who you are and what you're working on - doesn't accumulate. Over months of use, that compounds into a meaningful reduction in total computation.
|
||||
</p>
|
||||
|
||||
<p class=\"reveal\" style=\"transition-delay:280ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8\">
|
||||
@@ -40,7 +40,7 @@ fn environmental() -> String {
|
||||
<p style=\"font-family:var(--body);font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:rgba(0,120,84,.70);margin-bottom:0.75rem\">Local inference</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Your GPU, already powered on</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
When you run inference locally via Ollama, your device's GPU handles it — hardware that's already consuming power. No data center spins up a cluster for your query. No round-trip. No idle servers waiting at scale.
|
||||
When you run inference locally via Ollama, your device's GPU handles it - hardware that's already consuming power. No data center spins up a cluster for your query. No round-trip. No idle servers waiting at scale.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -54,7 +54,7 @@ fn environmental() -> String {
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"transition-delay:300ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,120,84,.40)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:rgba(0,120,84,.70);margin-bottom:0.75rem\">Persistent context = less recomputation</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Remembered once, retrieved — not re-derived</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Remembered once, retrieved - not re-derived</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
The structured memory graph means Neuron retrieves relevant context rather than re-inferring it from long conversation histories. Shorter, more targeted prompts. Less total token processing per useful outcome.
|
||||
</p>
|
||||
@@ -62,7 +62,7 @@ fn environmental() -> String {
|
||||
|
||||
<div class=\"reveal\" style=\"transition-delay:400ms;padding:1.25rem 1.75rem;background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.07);border-radius:2px\">
|
||||
<p style=\"font-family:var(--body);font-size:0.8125rem;font-weight:300;color:var(--t3);line-height:1.7\">
|
||||
<strong style=\"font-weight:500;color:var(--t2)\">The honest picture:</strong> When you use Neuron with BYOK providers (OpenAI, Anthropic, Groq) or Neuron Inference, those queries travel to inference servers — that footprint exists. The savings come from the architecture: persistent memory and local-first design reduce the total computation required to get the same work done.
|
||||
<strong style=\"font-weight:500;color:var(--t2)\">The honest picture:</strong> When you use Neuron with BYOK providers (OpenAI, Anthropic, Groq) or Neuron Inference, those queries travel to inference servers - that footprint exists. The savings come from the architecture: persistent memory and local-first design reduce the total computation required to get the same work done.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// components/footer.el — Site footer.
|
||||
// components/footer.el - Site footer.
|
||||
|
||||
fn footer() -> String {
|
||||
return "
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// founding_badge.el — Founding Member badge component.
|
||||
// founding_badge.el - Founding Member badge component.
|
||||
//
|
||||
// Renders the certificate-style badge with guilloché background,
|
||||
// navy colour scheme, and member number. Matches the React archive design.
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
// components/hero.el — Hero section.
|
||||
// components/hero.el - Hero section.
|
||||
//
|
||||
// Full-bleed hero with headline, sub-copy, and two CTAs.
|
||||
// Glow orbs are pure CSS absolute-positioned divs.
|
||||
@@ -14,12 +14,12 @@ fn hero() -> String {
|
||||
|
||||
<h1 class=\"display-xl hero-headline animate-up-2\">
|
||||
Every AI resets when you close the tab.
|
||||
<em class=\"gold\" style=\"font-style:normal\">I built the one that doesn't — and priced it below the ones that do.</em>
|
||||
<em class=\"gold\" style=\"font-style:normal\">I built the one that doesn't - and priced it below the ones that do.</em>
|
||||
</h1>
|
||||
|
||||
<p class=\"hero-sub animate-up-3\">
|
||||
Runs on your machine. Remembers everything. Cheaper than ChatGPT on day one.
|
||||
No cloud required — and when you want inference, mine costs less than theirs.
|
||||
No cloud required - and when you want inference, mine costs less than theirs.
|
||||
</p>
|
||||
|
||||
<div class=\"hero-ctas animate-up-5\">
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
// components/how_it_works.el — "Three moments. Permanent context." steps.
|
||||
// components/how_it_works.el - "Three moments. Permanent context." steps.
|
||||
|
||||
fn how_it_works() -> String {
|
||||
return "
|
||||
@@ -43,7 +43,7 @@ fn how_it_works() -> String {
|
||||
<span class=\"step-aside\">Every session</span>
|
||||
</div>
|
||||
<h3 class=\"display-md step-title\">Never start over</h3>
|
||||
<p class=\"step-body\">Open a new session days or months later. Neuron remembers. Every project, every decision, every thread — exactly where you left it.</p>
|
||||
<p class=\"step-body\">Open a new session days or months later. Neuron remembers. Every project, every decision, every thread - exactly where you left it.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+7
-7
@@ -1,4 +1,4 @@
|
||||
// components/inference.el — Neuron inference section.
|
||||
// components/inference.el - Neuron inference section.
|
||||
// "My model. My infrastructure. Cheaper than theirs."
|
||||
|
||||
fn inference() -> String {
|
||||
@@ -10,20 +10,20 @@ fn inference() -> String {
|
||||
<div>
|
||||
<div class=\"inference-label-row reveal\">
|
||||
<div class=\"navy-line-left\" style=\"width:3rem;flex-shrink:0\"></div>
|
||||
<span class=\"label\">Neuron inference — live day one</span>
|
||||
<span class=\"label\">Neuron inference - live day one</span>
|
||||
</div>
|
||||
<h2 class=\"display-lg inference-headline reveal\" style=\"transition-delay:80ms\">
|
||||
My model. My infrastructure.
|
||||
<span class=\"gold\"> Cheaper than theirs.</span>
|
||||
</h2>
|
||||
<p class=\"inference-body reveal\" style=\"transition-delay:160ms\">
|
||||
Four companies control nearly all frontier AI inference today. Every query you send strengthens their position — and their pricing power over you. That changes today.
|
||||
Four companies control nearly all frontier AI inference today. Every query you send strengthens their position - and their pricing power over you. That changes today.
|
||||
</p>
|
||||
<p class=\"inference-body reveal\" style=\"transition-delay:240ms\">
|
||||
Neuron is both the product and the model. Purpose-built for how Neuron thinks, how your context is structured, how to do more with fewer tokens. It runs on Soma, our own inference infrastructure. Priced below OpenAI, Anthropic, and Google from day one. Not as a loss leader. As a permanent competitive position.
|
||||
</p>
|
||||
<p class=\"inference-body reveal\" style=\"transition-delay:320ms\">
|
||||
You can still route to your own API keys if you want — Anthropic, OpenAI, whoever. But when we're cheaper, faster, and the model knows Neuron's architecture from the inside, why would you?
|
||||
You can still route to your own API keys if you want - Anthropic, OpenAI, whoever. But when we're cheaper, faster, and the model knows Neuron's architecture from the inside, why would you?
|
||||
</p>
|
||||
<p class=\"inference-body reveal\" style=\"transition-delay:400ms\">
|
||||
Every user on Neuron inference is compute that doesn't flow to the monopoly. That's not just a cost story. It's a power one.
|
||||
@@ -41,16 +41,16 @@ fn inference() -> String {
|
||||
<div class=\"stat-row reveal\" style=\"transition-delay:120ms\">
|
||||
<div class=\"stat-row-head\">
|
||||
<span class=\"stat-num\">Neuron</span>
|
||||
<span class=\"stat-label\">The model — live on day one</span>
|
||||
<span class=\"stat-label\">The model - live on day one</span>
|
||||
</div>
|
||||
<p class=\"stat-body\">Built on Qwen3 — open weights, Sonnet-equivalent capability. Neuron wraps it with your full context, your memory graph, and years of accumulated intelligence. The model is the floor. Neuron is the ceiling.</p>
|
||||
<p class=\"stat-body\">Built on Qwen3 - open weights, Sonnet-equivalent capability. Neuron wraps it with your full context, your memory graph, and years of accumulated intelligence. The model is the floor. Neuron is the ceiling.</p>
|
||||
</div>
|
||||
<div class=\"stat-row reveal\" style=\"transition-delay:240ms\">
|
||||
<div class=\"stat-row-head\">
|
||||
<span class=\"stat-num\">< theirs</span>
|
||||
<span class=\"stat-label\">Priced below the incumbents</span>
|
||||
</div>
|
||||
<p class=\"stat-body\">Below OpenAI's API pricing at launch. Below Anthropic's. Below Google's. Metered — you pay for what you use, not a flat subscription. And cheaper than any of them on every tier.</p>
|
||||
<p class=\"stat-body\">Below OpenAI's API pricing at launch. Below Anthropic's. Below Google's. Metered - you pay for what you use, not a flat subscription. And cheaper than any of them on every tier.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
+11
-11
@@ -1,4 +1,4 @@
|
||||
// components/local_first.el — Privacy principles / local-first manifesto.
|
||||
// components/local_first.el - Privacy principles / local-first manifesto.
|
||||
// Left: manifesto text. Right: six sticky principles.
|
||||
|
||||
fn local_first() -> String {
|
||||
@@ -17,20 +17,20 @@ fn local_first() -> String {
|
||||
<h2 class=\"display-lg lf-headline reveal\">You are not the product.</h2>
|
||||
|
||||
<p class=\"lf-manifesto-para reveal\" style=\"transition-delay:100ms\">
|
||||
The company that gave you free search built the most powerful ad-targeting machine in history. The one that promised to connect the world optimized it for outrage — because outrage drives engagement, and engagement drives revenue. The one that gave everyone a voice sold that attention to the highest bidder. These aren't accidents. They're the business model.
|
||||
The company that gave you free search built the most powerful ad-targeting machine in history. The one that promised to connect the world optimized it for outrage - because outrage drives engagement, and engagement drives revenue. The one that gave everyone a voice sold that attention to the highest bidder. These aren't accidents. They're the business model.
|
||||
</p>
|
||||
<p class=\"lf-manifesto-para reveal\" style=\"transition-delay:200ms\">
|
||||
I've watched this play out across two decades. Every free product is the same transaction: something useful in exchange for something you didn't know you were selling — your attention, your behavior, your future choices. The product is always “free.” The price is always you.
|
||||
I've watched this play out across two decades. Every free product is the same transaction: something useful in exchange for something you didn't know you were selling - your attention, your behavior, your future choices. The product is always “free.” The price is always you.
|
||||
</p>
|
||||
<p class=\"lf-manifesto-para reveal\" style=\"transition-delay:300ms\">
|
||||
The harm is real. Teenage depression rates tracked the rise of algorithmic social feeds. Political polarization accelerated when engagement algorithms learned that outrage outperformed nuance. Billions of people had their data harvested, leaked, and weaponized — often without knowing. Democratic processes were manipulated at scale. And in every case, the companies responsible kept growing.
|
||||
The harm is real. Teenage depression rates tracked the rise of algorithmic social feeds. Political polarization accelerated when engagement algorithms learned that outrage outperformed nuance. Billions of people had their data harvested, leaked, and weaponized - often without knowing. Democratic processes were manipulated at scale. And in every case, the companies responsible kept growing.
|
||||
</p>
|
||||
<p class=\"lf-manifesto-para reveal\" style=\"transition-delay:400ms\">
|
||||
Now AI is doing the same thing — faster and deeper. Your queries train their models. Your thought patterns become datasets. The way you reason, what you struggle with, what you're afraid of — it's all captured. You get a useful tool. They get a map of your mind.
|
||||
Now AI is doing the same thing - faster and deeper. Your queries train their models. Your thought patterns become datasets. The way you reason, what you struggle with, what you're afraid of - it's all captured. You get a useful tool. They get a map of your mind.
|
||||
</p>
|
||||
<div class=\"lf-manifesto-closer reveal\" style=\"transition-delay:600ms\">
|
||||
<p>
|
||||
Neuron is a direct rejection of that model. It runs on your machine. <strong>Your memory never leaves.</strong> I don't sell data, serve ads, or profile you. The only thing I sell is the software — and once you have it, it's yours.
|
||||
Neuron is a direct rejection of that model. It runs on your machine. <strong>Your memory never leaves.</strong> I don't sell data, serve ads, or profile you. The only thing I sell is the software - and once you have it, it's yours.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -39,12 +39,12 @@ fn local_first() -> String {
|
||||
|
||||
<div class=\"lf-principle reveal\">
|
||||
<p class=\"lf-principle-label\">Your machine. Full stop.</p>
|
||||
<p class=\"lf-principle-body\">Neuron runs on your hardware. The memory graph, the agent loop, every conversation — none of it leaves your machine. Not to my servers. Not to anyone's.</p>
|
||||
<p class=\"lf-principle-body\">Neuron runs on your hardware. The memory graph, the agent loop, every conversation - none of it leaves your machine. Not to my servers. Not to anyone's.</p>
|
||||
</div>
|
||||
|
||||
<div class=\"lf-principle reveal\" style=\"transition-delay:120ms\">
|
||||
<p class=\"lf-principle-label\">No training on your data.</p>
|
||||
<p class=\"lf-principle-body\">Your queries don't improve a model you don't own. Your patterns aren't analyzed to serve you better ads. Your context belongs to you — not a training pipeline.</p>
|
||||
<p class=\"lf-principle-body\">Your queries don't improve a model you don't own. Your patterns aren't analyzed to serve you better ads. Your context belongs to you - not a training pipeline.</p>
|
||||
</div>
|
||||
|
||||
<div class=\"lf-principle reveal\" style=\"transition-delay:240ms\">
|
||||
@@ -54,17 +54,17 @@ fn local_first() -> String {
|
||||
|
||||
<div class=\"lf-principle reveal\" style=\"transition-delay:360ms\">
|
||||
<p class=\"lf-principle-label\">No telemetry for local use.</p>
|
||||
<p class=\"lf-principle-body\">When Neuron runs locally, I don't collect usage data. When you opt into Neuron cloud services — sync, backup, inbox — those services use the data they need to function. Nothing more.</p>
|
||||
<p class=\"lf-principle-body\">When Neuron runs locally, I don't collect usage data. When you opt into Neuron cloud services - sync, backup, inbox - those services use the data they need to function. Nothing more.</p>
|
||||
</div>
|
||||
|
||||
<div class=\"lf-principle reveal\" style=\"transition-delay:480ms\">
|
||||
<p class=\"lf-principle-label\">Nothing to breach.</p>
|
||||
<p class=\"lf-principle-body\">I can't be hacked for your data because I don't have it. I can't be subpoenaed for your conversations because I've never seen them. I can't expose what I've never held. Your data living on your machine isn't just a privacy stance — it's a security one.</p>
|
||||
<p class=\"lf-principle-body\">I can't be hacked for your data because I don't have it. I can't be subpoenaed for your conversations because I've never seen them. I can't expose what I've never held. Your data living on your machine isn't just a privacy stance - it's a security one.</p>
|
||||
</div>
|
||||
|
||||
<div class=\"lf-principle reveal\" style=\"transition-delay:600ms\">
|
||||
<p class=\"lf-principle-label\">Unreadable even if taken.</p>
|
||||
<p class=\"lf-principle-body\">Everything Neuron touches is encrypted with post-quantum cryptography — ML-KEM for key exchange, ML-DSA for signatures. Both are NIST-finalized standards (FIPS 203/204), already deployed at scale across the web. Designed to withstand quantum computers, not just the ones that exist today.</p>
|
||||
<p class=\"lf-principle-body\">Everything Neuron touches is encrypted with post-quantum cryptography - ML-KEM for key exchange, ML-DSA for signatures. Both are NIST-finalized standards (FIPS 203/204), already deployed at scale across the web. Designed to withstand quantum computers, not just the ones that exist today.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
+5
-5
@@ -1,4 +1,4 @@
|
||||
// main.el — Neuron landing page server.
|
||||
// main.el - Neuron landing page server.
|
||||
//
|
||||
// Serves the Neuron marketing landing page at port 3001.
|
||||
// Written in El (the Engram language). Runs on the El VM (elvm).
|
||||
@@ -7,7 +7,7 @@
|
||||
// We generate the page at startup with El components, write it to
|
||||
// src/index.html, and set __html_file__ to that path.
|
||||
//
|
||||
// This means the document is always El-generated — never hand-authored.
|
||||
// This means the document is always El-generated - never hand-authored.
|
||||
// The El runtime serves it with the correct Content-Type: text/html header.
|
||||
//
|
||||
// Execution:
|
||||
@@ -101,7 +101,7 @@ fn read_asset(abs_path: String) -> String {
|
||||
// ── Request handler ───────────────────────────────────────────────────────────
|
||||
//
|
||||
// NOTE: GET / is intercepted by the El HTTP runtime before reaching this
|
||||
// function — it serves __html_file__ directly with text/html.
|
||||
// function - it serves __html_file__ directly with text/html.
|
||||
// This handler covers /api/* and /brand/* routes.
|
||||
|
||||
fn handle_request(method: String, path: String, body: String) -> String {
|
||||
@@ -290,7 +290,7 @@ fn handle_request(method: String, path: String, body: String) -> String {
|
||||
<p class=\"label\" style=\"margin-bottom:1.5rem\">You're in.</p>
|
||||
<h1 class=\"display-lg\" style=\"margin-bottom:1.25rem\">Welcome to Neuron.</h1>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:1.1rem;color:var(--t2);max-width:28rem;line-height:1.7;margin-bottom:3rem\">
|
||||
Your license is being provisioned. Check your email — your license key and download instructions will be there in the next few minutes.
|
||||
Your license is being provisioned. Check your email - your license key and download instructions will be there in the next few minutes.
|
||||
</p>
|
||||
<div style=\"margin-bottom:3rem\">" + badge_html + "</div>
|
||||
<a href=\"/\" class=\"btn-primary\">Back to home →</a>
|
||||
@@ -352,7 +352,7 @@ state_set("__stripe_price_professional__", stripe_price_professional)
|
||||
state_set("__license_api_url__", license_api_url)
|
||||
state_set("__resend_api_key__", resend_api_key)
|
||||
|
||||
println(color_bold("Neuron landing") + " — http://localhost:3001")
|
||||
println(color_bold("Neuron landing") + " - http://localhost:3001")
|
||||
println(" HTML generated by El → " + html_path)
|
||||
println(" About generated by El → " + about_html_path)
|
||||
println(" Terms generated by El → " + terms_html_path)
|
||||
|
||||
+10
-10
@@ -1,4 +1,4 @@
|
||||
// components/mission.el — Origin story + manifesto + problems grid.
|
||||
// components/mission.el - Origin story + manifesto + problems grid.
|
||||
|
||||
fn mission() -> String {
|
||||
return "
|
||||
@@ -19,7 +19,7 @@ fn mission() -> String {
|
||||
Every AI tool you use today resets when you close the tab. It doesn't know you tomorrow. It doesn't remember what mattered yesterday. It can't grow with you over years.
|
||||
</p>
|
||||
<p class=\"mission-body-para reveal\" style=\"transition-delay:240ms\">
|
||||
I built Neuron because intelligence should compound. The same way a great mentor gets more valuable the longer you work with them — knowing your context, your patterns, your goals — your AI should too.
|
||||
I built Neuron because intelligence should compound. The same way a great mentor gets more valuable the longer you work with them - knowing your context, your patterns, your goals - your AI should too.
|
||||
</p>
|
||||
<p class=\"mission-body-para mission-body-emphasis reveal\" style=\"transition-delay:320ms\">
|
||||
Neuron is private by design. It runs on your hardware. <strong>Your data never leaves your machine.</strong> No training on your data. No telemetry. No cloud dependency.
|
||||
@@ -32,16 +32,16 @@ fn mission() -> String {
|
||||
<div class=\"mission-bigtech reveal\" style=\"transition-delay:600ms\">
|
||||
<p class=\"mission-bigtech-label\">Why I stopped trying to partner with Big Tech</p>
|
||||
<p>
|
||||
I didn't just approach one of the largest technology companies in the world — I got the meeting. Got the NDAs signed. Created deliverables in real time. Showed them industry benchmarks with full auditability. Some of their own people could see exactly what it meant — what I had built and what it could do.
|
||||
I didn't just approach one of the largest technology companies in the world - I got the meeting. Got the NDAs signed. Created deliverables in real time. Showed them industry benchmarks with full auditability. Some of their own people could see exactly what it meant - what I had built and what it could do.
|
||||
</p>
|
||||
<p>
|
||||
They saw it. Seemed to engage meaningfully. Then, within two days, lawyers were engaged. Their stated concern: defending against me accusing them of stealing my IP. I laughed to myself — <em>wait, are they going to steal my IP?</em> — and decided to just finish the project on my own.
|
||||
They saw it. Seemed to engage meaningfully. Then, within two days, lawyers were engaged. Their stated concern: defending against me accusing them of stealing my IP. I laughed to myself - <em>wait, are they going to steal my IP?</em> - and decided to just finish the project on my own.
|
||||
</p>
|
||||
<p class=\"muted\">
|
||||
By the way: everything you see here, and more, is protected by six patents — and more are coming. They know about the patents. Are they going to try?
|
||||
By the way: everything you see here, and more, is protected by six patents - and more are coming. They know about the patents. Are they going to try?
|
||||
</p>
|
||||
<p class=\"muted\">
|
||||
Not: how do we solve this at scale? Not: what does this mean for the people we serve? Their instinct was to protect enterprise revenue and manage legal exposure. The actual human impact of their technology — the people whose lives those enterprises touch — didn't enter the conversation.
|
||||
Not: how do we solve this at scale? Not: what does this mean for the people we serve? Their instinct was to protect enterprise revenue and manage legal exposure. The actual human impact of their technology - the people whose lives those enterprises touch - didn't enter the conversation.
|
||||
</p>
|
||||
<p class=\"muted\">
|
||||
That's the difference. <strong style=\"color:var(--t1)\">They're optimizing for the enterprise. I'm building for the people those enterprises are supposed to serve.</strong>
|
||||
@@ -60,19 +60,19 @@ fn mission() -> String {
|
||||
<div class=\"problems-grid\">
|
||||
<div class=\"problem-item reveal\">
|
||||
<p class=\"problem-label\">Synthetic media without accountability</p>
|
||||
<p class=\"problem-body\">Generative AI makes it trivially easy to produce harmful content at scale — and nearly impossible to trace. This is a problem the industry is largely ignoring. I'm not. I'm engaged with it seriously and expect to have answers in place before it becomes unmanageable.</p>
|
||||
<p class=\"problem-body\">Generative AI makes it trivially easy to produce harmful content at scale - and nearly impossible to trace. This is a problem the industry is largely ignoring. I'm not. I'm engaged with it seriously and expect to have answers in place before it becomes unmanageable.</p>
|
||||
</div>
|
||||
<div class=\"problem-item reveal\" style=\"transition-delay:120ms\">
|
||||
<p class=\"problem-label\">Epistemic collapse</p>
|
||||
<p class=\"problem-body\">AI can now generate persuasive content at any volume, on any position. The next generation is growing up in an environment where signal and noise are becoming indistinguishable. I think deeply about what it means to build tools that contribute to that problem — and how to build ones that don't.</p>
|
||||
<p class=\"problem-body\">AI can now generate persuasive content at any volume, on any position. The next generation is growing up in an environment where signal and noise are becoming indistinguishable. I think deeply about what it means to build tools that contribute to that problem - and how to build ones that don't.</p>
|
||||
</div>
|
||||
<div class=\"problem-item reveal\" style=\"transition-delay:240ms\">
|
||||
<p class=\"problem-label\">Concentration of inference</p>
|
||||
<p class=\"problem-body\">Four companies control nearly all frontier AI inference. Every query strengthens their position. I think that concentration of power is a structural risk — not just a pricing problem — and I'm building with that in mind.</p>
|
||||
<p class=\"problem-body\">Four companies control nearly all frontier AI inference. Every query strengthens their position. I think that concentration of power is a structural risk - not just a pricing problem - and I'm building with that in mind.</p>
|
||||
</div>
|
||||
<div class=\"problem-item reveal\" style=\"transition-delay:360ms\">
|
||||
<p class=\"problem-label\">The accountability gap</p>
|
||||
<p class=\"problem-body\">When an AI agent takes a bad action, there is currently no clear legal or technical accountability. That's going to matter more as agents do more. I take this seriously. I'm building toward answers — not waiting for regulators to force the question.</p>
|
||||
<p class=\"problem-body\">When an AI agent takes a bad action, there is currently no clear legal or technical accountability. That's going to matter more as agents do more. I take this seriously. I'm building toward answers - not waiting for regulators to force the question.</p>
|
||||
</div>
|
||||
<div class=\"problems-grid-bottom\"></div>
|
||||
</div>
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
// components/nav.el — Top navigation bar.
|
||||
// components/nav.el - Top navigation bar.
|
||||
//
|
||||
// Returns an HTML string. Server-rendered, no JavaScript required for
|
||||
// the nav structure itself. Scroll-based opacity is CSS-only via
|
||||
@@ -13,6 +13,7 @@ fn nav() -> String {
|
||||
<div class=\"nav-links\">
|
||||
<a href=\"#how-it-works\" class=\"nav-link\">How it works</a>
|
||||
<a href=\"#mission\" class=\"nav-link\">Mission</a>
|
||||
<a href=\"#safety\" class=\"nav-link\">Safety</a>
|
||||
<a href=\"#pricing\" class=\"nav-link\">Pricing</a>
|
||||
<a href=\"#enterprise\" class=\"nav-link\">Enterprise</a>
|
||||
<a href=\"/about\" class=\"nav-link\">About</a>
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
// components/pillars.el — Three core pillars section.
|
||||
// components/pillars.el - Three core pillars section.
|
||||
//
|
||||
// I. Remembers / II. Learns / III. Yours
|
||||
// Cards use reveal animation class (CSS IntersectionObserver polyfill
|
||||
@@ -26,7 +26,7 @@ fn pillars() -> String {
|
||||
<span class=\"pillar-numeral\" aria-hidden=\"true\">II</span>
|
||||
<h3 class=\"display-md pillar-title\">Learns</h3>
|
||||
<div class=\"pillar-rule\"></div>
|
||||
<p class=\"pillar-body\">Gets better at you specifically. Not a generic assistant — yours. The longer you use it, the sharper it becomes. Neuron inference is live day one — a model purpose-built to work with your memory graph, your context, your way of thinking.</p>
|
||||
<p class=\"pillar-body\">Gets better at you specifically. Not a generic assistant - yours. The longer you use it, the sharper it becomes. Neuron inference is live day one - a model purpose-built to work with your memory graph, your context, your way of thinking.</p>
|
||||
<p class=\"pillar-detail\">Specific to you</p>
|
||||
</div>
|
||||
|
||||
@@ -34,7 +34,7 @@ fn pillars() -> String {
|
||||
<span class=\"pillar-numeral\" aria-hidden=\"true\">III</span>
|
||||
<h3 class=\"display-md pillar-title\">Yours</h3>
|
||||
<div class=\"pillar-rule\"></div>
|
||||
<p class=\"pillar-body\">Runs locally. Your data never leaves. No cloud dependency, no telemetry, no training on your conversations. Complete ownership. And unlike every other AI subscription — we're not charging you to remember you.</p>
|
||||
<p class=\"pillar-body\">Runs locally. Your data never leaves. No cloud dependency, no telemetry, no training on your conversations. Complete ownership. And unlike every other AI subscription - we're not charging you to remember you.</p>
|
||||
<p class=\"pillar-detail\">Fully private</p>
|
||||
</div>
|
||||
|
||||
|
||||
+14
-14
@@ -1,4 +1,4 @@
|
||||
// components/pricing.el — Three pricing cards: Free / Professional / Founding Member.
|
||||
// components/pricing.el - Three pricing cards: Free / Professional / Founding Member.
|
||||
// Accepts the founding counter values as parameters so main.el can inject
|
||||
// server-side rendered counts without JS.
|
||||
|
||||
@@ -37,7 +37,7 @@ fn pricing(sold: Int, total: Int) -> String {
|
||||
<div style=\"height:1px;width:4rem;background:linear-gradient(to left,transparent,rgba(0,82,160,.35))\"></div>
|
||||
</div>
|
||||
<h2 class=\"display-lg pricing-headline reveal\" style=\"transition-delay:80ms\">Own it. Don't rent it.</h2>
|
||||
<p class=\"pricing-sub reveal\" style=\"transition-delay:160ms\">Neuron inference on every paid plan. Cheaper than OpenAI, Anthropic, and Google — on day one.</p>
|
||||
<p class=\"pricing-sub reveal\" style=\"transition-delay:160ms\">Neuron inference on every paid plan. Cheaper than OpenAI, Anthropic, and Google - on day one.</p>
|
||||
</div>
|
||||
|
||||
<div class=\"pricing-grid\">
|
||||
@@ -50,10 +50,10 @@ fn pricing(sold: Int, total: Int) -> String {
|
||||
</div>
|
||||
<p class=\"pricing-tagline\">Start building your memory. No card required.</p>
|
||||
<ul class=\"pricing-features\">
|
||||
<li><span class=\"dash\">-</span><span>Persistent memory — never resets</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Neuron inference — metered, priced below OpenAI and Anthropic</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Persistent memory - never resets</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Neuron inference - metered, priced below OpenAI and Anthropic</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Local inference via Ollama</span></li>
|
||||
<li style=\"list-style:none\"><span style=\"font-family:var(--body);font-size:0.8rem;font-weight:300;color:var(--t3);font-style:italic;line-height:1.6\">Local models may give lower quality responses. Neuron inference is cheap — give it a try.</span></li>
|
||||
<li style=\"list-style:none\"><span style=\"font-family:var(--body);font-size:0.8rem;font-weight:300;color:var(--t3);font-style:italic;line-height:1.6\">Local models may give lower quality responses. Neuron inference is cheap - give it a try.</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Bring your own API keys (optional)</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Unlimited projects</span></li>
|
||||
<li><span class=\"dash\">-</span><span>3 marketplace plugins included</span></li>
|
||||
@@ -71,14 +71,14 @@ fn pricing(sold: Int, total: Int) -> String {
|
||||
<span class=\"pricing-price\">$19</span>
|
||||
<span class=\"pricing-cadence\">/ month</span>
|
||||
</div>
|
||||
<p class=\"pricing-tagline\">Full access. Neuron inference — cheaper than what you're paying now.</p>
|
||||
<p class=\"pricing-tagline\">Full access. Neuron inference - cheaper than what you're paying now.</p>
|
||||
<ul class=\"pricing-features\">
|
||||
<li><span class=\"dash\">-</span><span>Neuron inference — metered, below OpenAI and Anthropic rates</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Neuron inference - metered, below OpenAI and Anthropic rates</span></li>
|
||||
<li><span class=\"dash\">-</span><span>ChatGPT Plus is $20/mo and forgets you every session. Neuron remembers everything and costs less per token.</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Everything in Free</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Unlimited projects</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Full plugin marketplace</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Advanced integrations — IDE, Slack, and more</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Advanced integrations - IDE, Slack, and more</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Early access to new features</span></li>
|
||||
</ul>
|
||||
<div style=\"flex:1\"></div>
|
||||
@@ -98,12 +98,12 @@ fn pricing(sold: Int, total: Int) -> String {
|
||||
" + spots_html + "
|
||||
|
||||
<ul class=\"pricing-features\">
|
||||
<li><span class=\"dash\">-</span><span>Neuron inference — priced below competitors, forever, as it improves</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Everything in Professional — forever</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Never pay again — lifetime updates included</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Neuron inference - priced below competitors, forever, as it improves</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Everything in Professional - forever</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Never pay again - lifetime updates included</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Founding member badge in the app</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Private community — direct line to the team</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Shape the roadmap — your votes carry more weight</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Private community - direct line to the team</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Shape the roadmap - your votes carry more weight</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Beta features before general release</span></li>
|
||||
<li><span class=\"dash\">-</span><span>Name in the credits</span></li>
|
||||
</ul>
|
||||
@@ -136,7 +136,7 @@ fn pricing(sold: Int, total: Int) -> String {
|
||||
<p class=\"label\" style=\"margin-bottom:.75rem;font-size:.65rem\">For families</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:.9rem;color:var(--t2);line-height:1.8;\">
|
||||
<strong style=\"color:var(--t1);font-weight:500\">Minors require a parent account.</strong>
|
||||
Children and teens can't create accounts on their own — a parent or guardian creates the family account, configures access, and remains in the loop. The minor's experience is fully private from everyone except the trusted adult who set it up.
|
||||
Children and teens can't create accounts on their own - a parent or guardian creates the family account, configures access, and remains in the loop. The minor's experience is fully private from everyone except the trusted adult who set it up.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
+8
-8
@@ -1,7 +1,7 @@
|
||||
// components/safety.el — Child and family safety section.
|
||||
// components/safety.el - Child and family safety section.
|
||||
//
|
||||
// Describes the Hard Bell architecture and genuine protective design.
|
||||
// Not "safe for kids" marketing — actual architecture that treats
|
||||
// Not "safe for kids" marketing - actual architecture that treats
|
||||
// family safety as a structural property, not a feature checkbox.
|
||||
|
||||
fn safety() -> String {
|
||||
@@ -22,7 +22,7 @@ fn safety() -> String {
|
||||
</h2>
|
||||
|
||||
<p class=\"reveal\" style=\"transition-delay:160ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem\">
|
||||
Most AI products add parental controls as an afterthought — a toggle that tells the platform which account is the adult and which is the child. That's not safety. That's a permission system with a friendly name.
|
||||
Most AI products add parental controls as an afterthought - a toggle that tells the platform which account is the adult and which is the child. That's not safety. That's a permission system with a friendly name.
|
||||
</p>
|
||||
|
||||
<p class=\"reveal\" style=\"transition-delay:220ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem\">
|
||||
@@ -40,15 +40,15 @@ fn safety() -> String {
|
||||
<p style=\"font-family:var(--body);font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--navy-65);margin-bottom:0.75rem\">Hard Bell</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">An emergency contact the threat can't intercept</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
The Hard Bell is an emergency contact designated in a calm moment — a teacher, a relative outside the household, a trusted friend — set up independently from the guardian account. When a signal warrants it, this contact is reached. The guardian is not automatically notified.
|
||||
The Hard Bell is an emergency contact designated in a calm moment - a teacher, a relative outside the household, a trusted friend - set up independently from the guardian account. When a signal warrants it, this contact is reached. The guardian is not automatically notified.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"transition-delay:200ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--navy-65);margin-bottom:0.75rem\">Emergency routing</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Emergency services first — not parent notification</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Emergency services first - not parent notification</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
Physical danger and abuse signals route to emergency services and crisis lines — not to the guardian account. Neuron evaluates the content of the signal, not just the age of the user. The guardian cannot disable or redirect this path.
|
||||
Physical danger and abuse signals route to emergency services and crisis lines - not to the guardian account. Neuron evaluates the content of the signal, not just the age of the user. The guardian cannot disable or redirect this path.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -56,7 +56,7 @@ fn safety() -> String {
|
||||
<p style=\"font-family:var(--body);font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--navy-65);margin-bottom:0.75rem\">Parent dashboard</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Oversight without surveillance</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
Parents see what they need to see. The child's conversations remain private unless a wellbeing signal triggers parent notification — and even then, the routing logic protects against the parent being the source of harm.
|
||||
Parents see what they need to see. The child's conversations remain private unless a wellbeing signal triggers parent notification - and even then, the routing logic protects against the parent being the source of harm.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -66,7 +66,7 @@ fn safety() -> String {
|
||||
|
||||
<div class=\"reveal\" style=\"margin-top:4rem;padding:2rem 2.5rem;border:1px solid rgba(0,82,160,.15);border-left:3px solid var(--navy);background:rgba(0,82,160,.03)\">
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;\">
|
||||
<strong style=\"color:var(--t1);font-weight:500\">Minors require a parent account.</strong> Children and teens cannot create accounts on their own — a parent or guardian creates the family account, configures access, and designates the Hard Bell contact. The child's experience is private from everyone except the trusted adult who set it up — and from emergency services when the signal warrants it.
|
||||
<strong style=\"color:var(--t1);font-weight:500\">Minors require a parent account.</strong> Children and teens cannot create accounts on their own - a parent or guardian creates the family account, configures access, and designates the Hard Bell contact. The child's experience is private from everyone except the trusted adult who set it up - and from emergency services when the signal warrants it.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
+6
-6
@@ -1,7 +1,7 @@
|
||||
// styles.el — Page shell: DOCTYPE, <head>, CSS, and the minimal
|
||||
// styles.el - Page shell: DOCTYPE, <head>, CSS, and the minimal
|
||||
// inline <script> for scroll-reveal and nav scroll effect.
|
||||
//
|
||||
// This file contains NO application logic — only the outer HTML
|
||||
// This file contains NO application logic - only the outer HTML
|
||||
// document structure and presentation layer.
|
||||
//
|
||||
// CSS is kept as a string constant here to keep component files
|
||||
@@ -21,7 +21,7 @@ fn page_open() -> String {
|
||||
<head>
|
||||
<meta charset=\"UTF-8\">
|
||||
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
|
||||
<title>Neuron — The AI That Remembers You</title>
|
||||
<title>Neuron - The AI That Remembers You</title>
|
||||
<meta name=\"description\" content=\"Every AI resets when you close the tab. Neuron doesn't. Runs on your machine. Remembers everything. Cheaper than ChatGPT on day one.\">
|
||||
<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/assets/favicon-16.png\">
|
||||
<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/assets/favicon-32.png\">
|
||||
@@ -181,7 +181,7 @@ fn page_open() -> String {
|
||||
}
|
||||
.btn-ghost:hover { border-color: rgba(0,82,160,.35); color: var(--t1); }
|
||||
|
||||
/* Scroll reveal — elements start invisible; JS adds .visible */
|
||||
/* Scroll reveal - elements start invisible; JS adds .visible */
|
||||
.reveal {
|
||||
opacity: 0;
|
||||
transform: translateY(28px);
|
||||
@@ -1361,7 +1361,7 @@ fn page_close() -> String {
|
||||
revealEls.forEach(function(el) { el.classList.add('visible'); });
|
||||
}
|
||||
|
||||
// ── Founding counter — live polling ──────────────────────────────────────
|
||||
// ── Founding counter - live polling ──────────────────────────────────────
|
||||
var prevSold = null;
|
||||
function updateFoundingUI(data) {
|
||||
var remaining = data.remaining;
|
||||
@@ -1401,7 +1401,7 @@ fn page_close() -> String {
|
||||
pollFoundingCount();
|
||||
setInterval(pollFoundingCount, 90000);
|
||||
|
||||
// Checkout buttons — navigate to integrated payment page
|
||||
// Checkout buttons - navigate to integrated payment page
|
||||
var checkoutBtns = document.querySelectorAll('[data-checkout]');
|
||||
checkoutBtns.forEach(function(btn) {
|
||||
btn.addEventListener('click', function() {
|
||||
|
||||
+33
-21
@@ -1,4 +1,4 @@
|
||||
// components/terms.el — Consumer Terms of Service page.
|
||||
// components/terms.el - Consumer Terms of Service page.
|
||||
// Returns complete HTML using the shared page shell from styles.el.
|
||||
|
||||
from styles import { page_open, page_close }
|
||||
@@ -24,7 +24,7 @@ fn terms_body() -> String {
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 1</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Using Neuron</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Using Neuron means you've read these terms and agree to them. That's it. No buried consent, no dark patterns. If something here doesn't sit right with you, email us before using the product — we'll talk through it.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Using Neuron means you've read these terms and agree to them. That's it. No buried consent, no dark patterns. If something here doesn't sit right with you, email us before using the product - we'll talk through it.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">These terms cover every version of Neuron: free, Professional, and Founding Member. Enterprise use has its own agreement. If you're deploying Neuron for an organization, that's the one you want.</p>
|
||||
</div>
|
||||
|
||||
@@ -34,7 +34,7 @@ fn terms_body() -> String {
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">What You Can Do With It</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">You can install and use Neuron on devices you own or control. That's the license. Personal, non-transferable.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">The free tier doesn't expire. Paid licenses are what they say they are. Founding Member licenses are perpetual — you bought it, you own it. I won't change that.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">The free tier doesn't expire. Paid licenses are what they say they are. Founding Member licenses are perpetual - you bought it, you own it. I won't change that.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">You can't resell it, sublicense it, or redistribute it without asking first. If you want to do something creative with it, ask. The answer might be yes.</p>
|
||||
</div>
|
||||
|
||||
@@ -43,9 +43,9 @@ fn terms_body() -> String {
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 3</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Your Data</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Your memory graph, your conversations, your context — all of it lives on your device. I don't have access to it. I don't collect it. It doesn't move in the course of normal use.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">When you turn on network features — sync, relay, collaborative tools — only what those features need to run gets transmitted. Not your memory graph, not your conversations, unless you explicitly turn on something that shares them with people you've chosen. I don't sell that data. I don't use it for anything except running the feature you asked for. Turning on a network feature is your consent to that.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Network features route data through Neuron's messaging backplane. That data is encrypted end-to-end — we cannot read it — and is not stored or retained after transmission. Participating in the network is your consent to this transient routing.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Your memory graph, your conversations, your context - all of it lives on your device. I don't have access to it. I don't collect it. It doesn't move in the course of normal use.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">When you turn on network features - sync, relay, collaborative tools - only what those features need to run gets transmitted. Not your memory graph, not your conversations, unless you explicitly turn on something that shares them with people you've chosen. I don't sell that data. I don't use it for anything except running the feature you asked for. Turning on a network feature is your consent to that.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Network features route data through Neuron's messaging backplane. That data is encrypted end-to-end - we cannot read it - and is not stored or retained after transmission. Participating in the network is your consent to this transient routing.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Your data is yours. Nothing in these terms gives me any claim to your content, your memory graph, or anything you create using Neuron.</p>
|
||||
</div>
|
||||
|
||||
@@ -54,33 +54,45 @@ fn terms_body() -> String {
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 4</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Inference</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Neuron routes inference to whatever provider you configure — your own keys for OpenAI, Anthropic, Groq, any compatible endpoint. When you use a third-party provider, your prompts go through their infrastructure. Their terms apply. I don't control what they do with it.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Neuron Inference — my own inference layer, launching Q3 2026 — doesn't store your requests, doesn't train on them, doesn't share them. A separate data addendum covers the details.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Neuron routes inference to whatever provider you configure - your own keys for OpenAI, Anthropic, Groq, any compatible endpoint. When you use a third-party provider, your prompts go through their infrastructure. Their terms apply. I don't control what they do with it.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Neuron Inference - our own inference layer, live now - doesn't store your requests, doesn't train on them, doesn't share them. A separate data addendum covers the details.</p>
|
||||
</div>
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 5</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">What You Can't Do</h2>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">The Network Layer</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Don't use Neuron to generate content designed to harm people, defraud anyone, or break the law.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Don't try to reverse-engineer the licensing or security mechanisms.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Don't extract or resell proprietary components.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">If you violate these and you're using cloud services, I can suspend access to those services. I can't touch the local software — once it's on your machine, it's yours to run. But I can close the door on the network.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Neuron includes access to a proprietary distributed network infrastructure (Patent Pending: US Provisional 64/036,821) that provides cultivation, recognition, and coordination services for the Neuron AI core. Its architecture, operational logic, and internal protocols are trade secrets. What matters here is what it means for you.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">The Neuron AI you interact with evolves over time - its state, character, and responses change as its internal development progresses. This is by design. By using Neuron, you acknowledge that: (a) the AI's responses may change as development progresses; (b) Neuron Technologies makes no warranty as to the consistency, stability, or predictability of AI outputs at any given point in its development; and (c) AI outputs are a function of development state, not a fixed specification.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">When you enable network features, your interactions may be processed by or through Neuron's distributed network infrastructure. All such data is encrypted in transit. Neuron Technologies cannot read, inspect, retain, or produce the contents of network traffic as an architectural constraint - not merely as a policy. Because we cannot read network traffic, <span style=\"font-weight:500;color:var(--t1)\">Neuron Technologies is not liable for any content, output, or consequence arising from data processed within the network layer</span>, including outputs produced during AI development or content you introduce that is processed by the network.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">You agree to indemnify and hold harmless Neuron Technologies, its affiliates, and its officers from any claims, damages, or legal proceedings arising from: (a) your reliance on AI outputs during active development periods; (b) content you originate and introduce through network features; (c) your violation of applicable law in connection with network participation; or (d) any attempt to reverse-engineer, probe, circumvent, or replicate proprietary network architecture or AI development mechanisms.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">The network layer is decentralized by design. Neuron Technologies does not guarantee its availability, continuity, or performance, and may modify, suspend, or discontinue network features at any time. Network participation does not create an agency relationship between participants, and no participant acts on behalf of Neuron Technologies in any capacity.</p>
|
||||
</div>
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 6</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Ownership</h2>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">What You Can't Do</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Neuron and everything in it is my intellectual property. Six patents and counting. These terms don't transfer any of that to you.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Everything you create using Neuron — outputs, memory nodes, artifacts — is yours. I make no claim to it. Not now, not ever.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Don't use Neuron to generate content designed to harm people, defraud anyone, or break the law.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Don't try to reverse-engineer the licensing or security mechanisms.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Don't extract or resell proprietary components.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">If you violate these and you're using cloud services, I can suspend access to those services. I can't touch the local software - once it's on your machine, it's yours to run. But I can close the door on the network.</p>
|
||||
</div>
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 7</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Ownership</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Neuron and everything in it is my intellectual property. Six patents and counting. These terms don't transfer any of that to you.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Everything you create using Neuron - outputs, memory nodes, artifacts - is yours. I make no claim to it. Not now, not ever.</p>
|
||||
</div>
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 8</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">No Warranty</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-size:0.875rem;font-weight:600;color:var(--t1);line-height:1.7;margin-bottom:1rem\">THE SOFTWARE IS PROVIDED "AS IS." NEURON, LLC MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.</p>
|
||||
@@ -89,7 +101,7 @@ fn terms_body() -> String {
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 8</span>
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 9</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Liability Cap</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-size:0.875rem;font-weight:600;color:var(--t1);line-height:1.7;margin-bottom:1rem\">TO THE EXTENT PERMITTED BY LAW, NEURON, LLC IS NOT LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES ARISING FROM YOUR USE OF THE SOFTWARE.</p>
|
||||
@@ -98,7 +110,7 @@ fn terms_body() -> String {
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 9</span>
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 10</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Changes</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">I'll update these terms when I need to. Material changes get announced on the site and, where I have your email, directly. Continued use after a change means you accept the new terms.</p>
|
||||
@@ -107,17 +119,17 @@ fn terms_body() -> String {
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 10</span>
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 11</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Children and Family Accounts</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">Children under 13 may only use Neuron as part of a family account established by a parent or legal guardian. By setting up a family account that includes a minor, the parent or guardian provides verifiable consent for the child's use and accepts these terms on the child's behalf.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">When a child's Neuron instance is part of a family account, certain information — including usage activity and relevant context — may be shared from the child's local instance to the parent's local instance. This sharing happens device-to-device. It does not pass through or get stored on Neuron's servers. The parent's instance receives it; we never see it.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">When a child's Neuron instance is part of a family account, certain information - including usage activity and relevant context - may be shared from the child's local instance to the parent's local instance. This sharing happens device-to-device. It does not pass through or get stored on Neuron's servers. The parent's instance receives it; we never see it.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Parents control what is visible to them through their local instance and can revoke family account access at any time. If you believe a child is using Neuron outside of a family account, contact legal@neurontechnologies.ai and we will address it promptly.</p>
|
||||
</div>
|
||||
|
||||
<div style=\"margin-bottom:3rem\">
|
||||
<div style=\"display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\">
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 11</span>
|
||||
<span style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65)\">§ 12</span>
|
||||
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">Governing Law</h2>
|
||||
</div>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">These terms are governed by the laws of Delaware. Disputes go to the courts of Delaware.</p>
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
// components/viral.el — Share / referral section.
|
||||
// components/viral.el - Share / referral section.
|
||||
// Referral link card, invite form (mailto: href, no JS required),
|
||||
// copy hooks (links to X/Twitter), and LinkedIn share button.
|
||||
// The "Copy" buttons on the hook items are omitted since we have no JS —
|
||||
// The "Copy" buttons on the hook items are omitted since we have no JS -
|
||||
// the tweet links still work, giving users a way to share.
|
||||
|
||||
fn viral() -> String {
|
||||
|
||||
Reference in New Issue
Block a user