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
+75
View File
@@ -0,0 +1,75 @@
// 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
// architecture; it wasn't engineered as a feature, but it's real.
fn environmental() -> String {
return "
<section id=\"environmental\" aria-label=\"Environmental impact\" style=\"padding:8rem 2.5rem;background:var(--bg)\">
<div class=\"container-lg\">
<div style=\"display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start\">
<div>
<div style=\"display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem\">
<div class=\"navy-line-left\" style=\"width:3rem;flex-shrink:0\"></div>
<span class=\"label reveal\" style=\"color:var(--navy-85)\">Environmental impact</span>
</div>
<h2 class=\"display-lg reveal\" style=\"transition-delay:80ms;margin-bottom:1.5rem\">
The AI that remembers<br>doesn&#39;t have to<br><span class=\"gold\">recompute.</span>
</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\">
Every time you open ChatGPT and explain who you are again, that&#39;s computation that didn&#39;t need to happen. Every time the AI re-establishes your context from scratch, energy is spent re-deriving what it already knew.
</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&#39;s memory graph persists. The context tax &#8212; the repeated re-inference of who you are and what you&#39;re working on &#8212; doesn&#39;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\">
This isn&#39;t a green marketing claim. It&#39;s a consequence of the design. The same architecture that makes Neuron better for you also makes it lighter on the planet.
</p>
</div>
<div style=\"display:flex;flex-direction:column;gap:1.5rem;padding-top:1rem\">
<div class=\"reveal card-dark\" style=\"transition-delay:100ms;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\">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&#39;s GPU handles it &#8212; hardware that&#39;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>
<div class=\"reveal card-dark\" style=\"transition-delay:200ms;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\">No database server for your data</p>
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">SQLite on your machine</p>
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
Your memory graph lives in a single SQLite file. No cloud database servers running 24&#x2F;7 to store and serve your conversations. No replication across availability zones. Just a file on your device.
</p>
</div>
<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: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>
</div>
<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 &#8212; 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>
</div>
</div>
</div>
</section>
"
}