Rewrite landing to El component architecture

Full El component split: nav, hero, pillars, inference, pricing, footer, about,
enterprise, mission, viral, local_first, comparison, efficiency, environmental.

- About page rewritten first-person (Will's voice), photo included, no product spoilers
- Stripe checkout wired: env() reads STRIPE_SECRET_KEY/PRICE_* at startup
- Minor parent-onboarding callout added to pricing section
- Inference pricing: "at cost" removed, now "priced below competitors"
- Nav: wordmark image, About link active on /about
- .gitignore: excludes .env, dist/, generated HTML
This commit is contained in:
Will Anderson
2026-04-29 16:21:08 -05:00
parent 686ab1ee2f
commit 1d8143cdbc
27 changed files with 3165 additions and 1467 deletions
+132
View File
@@ -0,0 +1,132 @@
// 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 }
fn terms_page() -> String {
return page_open() + terms_body() + page_close()
}
fn terms_body() -> String {
return "
<div style=\"max-width:720px;margin:0 auto;padding:6rem 2.5rem 8rem\">
<div style=\"margin-bottom:3rem\">
<a href=\"/\" style=\"font-family:var(--body);font-size:0.75rem;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy);text-decoration:none\">&#8592; Neuron</a>
</div>
<div style=\"margin-bottom:4rem;border-bottom:1px solid var(--border);padding-bottom:3rem\">
<p class=\"label\" style=\"margin-bottom:1rem\">Legal</p>
<h1 style=\"font-family:var(--head);font-size:clamp(2rem,4vw,3rem);font-weight:600;color:var(--t1);margin-bottom:0.75rem;line-height:1.1\">Terms of Service</h1>
<p style=\"font-family:var(--body);font-size:0.875rem;color:var(--t3)\">Effective May 1, 2026 &nbsp;&middot;&nbsp; Neuron, LLC</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)\">&#167; 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&#39;ve read these terms and agree to them. That&#39;s it. No buried consent, no dark patterns. If something here doesn&#39;t sit right with you, email us before using the product &#8212; we&#39;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&#39;re deploying Neuron for an organization, that&#39;s the one you want.</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)\">&#167; 2</span>
<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&#39;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&#39;t expire. Paid licenses are what they say they are. Founding Member licenses are perpetual &#8212; you bought it, you own it. I won&#39;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&#39;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>
<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)\">&#167; 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 &#8212; all of it lives on your device. I don&#39;t have access to it. I don&#39;t collect it. It doesn&#39;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 &#8212; sync, relay, collaborative tools &#8212; 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&#39;ve chosen. I don&#39;t sell that data. I don&#39;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&#39;s messaging backplane. That data is encrypted end-to-end &#8212; we cannot read it &#8212; 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>
<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)\">&#167; 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 &#8212; 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&#39;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 &#8212; my own inference layer, launching Q3 2026 &#8212; doesn&#39;t store your requests, doesn&#39;t train on them, doesn&#39;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)\">&#167; 5</span>
<h2 style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1)\">What You Can&#39;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\">Don&#39;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&#39;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&#39;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&#39;re using cloud services, I can suspend access to those services. I can&#39;t touch the local software &#8212; once it&#39;s on your machine, it&#39;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)\">&#167; 6</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&#39;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 &#8212; outputs, memory nodes, artifacts &#8212; 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)\">&#167; 7</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 &#34;AS IS.&#34; NEURON, LLC MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.</p>
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Software has bugs. Security has limits. Use your judgment. You use Neuron at your own risk.</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)\">&#167; 8</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>
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">If something goes wrong and you have a claim against me, the most I owe you is what you paid in the twelve months before it happened. That&#39;s the cap.</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)\">&#167; 9</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&#39;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>
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">Founding Member licenses are locked. I won&#39;t retroactively change what you signed up for.</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)\">&#167; 10</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&#39;s use and accepts these terms on the child&#39;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&#39;s Neuron instance is part of a family account, certain information &#8212; including usage activity and relevant context &#8212; may be shared from the child&#39;s local instance to the parent&#39;s local instance. This sharing happens device-to-device. It does not pass through or get stored on Neuron&#39;s servers. The parent&#39;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)\">&#167; 11</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>
</div>
<div style=\"margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border);display:flex;gap:2rem;flex-wrap:wrap\">
<a href=\"/\" style=\"font-family:var(--body);font-size:0.8125rem;color:var(--navy);text-decoration:none\">&larr; Home</a>
<a href=\"/legal/enterprise-terms\" style=\"font-family:var(--body);font-size:0.8125rem;color:var(--navy);text-decoration:none\">Enterprise Agreement &rarr;</a>
</div>
</div>
"
}