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
+26
View File
@@ -0,0 +1,26 @@
// 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
// :has() and scroll-driven animations where supported; we default to
// a clean transparent state that looks great on first load.
fn nav() -> String {
return "
<nav id=\"nav\">
<div class=\"nav-inner\">
<a href=\"/\" class=\"nav-logo\" aria-label=\"Neuron home\"><img src=\"/assets/brand/neuron-wordmark-on-light.png\" srcset=\"/assets/brand/neuron-wordmark-on-light@2x.png 2x\" alt=\"Neuron\" height=\"28\"></a>
<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=\"#pricing\" class=\"nav-link\">Pricing</a>
<a href=\"#enterprise\" class=\"nav-link\">Enterprise</a>
<a href=\"/about\" class=\"nav-link\">About</a>
<a href=\"/docs\" class=\"nav-link\">Docs</a>
<a href=\"#share\" class=\"nav-link cta\">Share Neuron →</a>
<a href=\"#pricing\" class=\"nav-cta\">Get Access</a>
</div>
</div>
</nav>
"
}