diff --git a/src/account.el b/src/account.el index 24c930c..11f8214 100644 --- a/src/account.el +++ b/src/account.el @@ -3,22 +3,28 @@ from founding_badge import { founding_badge, founding_badge_css } -fn account_page(supabase_url: String, supabase_anon_key: String) -> String { - return - - - - - My Account - Neuron - - - - - - - - - - - - - - -
-
- - -
- -
- - - - -
-
- - - - - - - - + .roadmap-items li::before { content: \"-\"; position: absolute; left: 0; color: var(--navy-65); } + .signout-section { padding-top: 1rem; display: flex; justify-content: flex-end; }" + "" +} + +fn account_nav() -> String { + let logo_img: String = el_img("src=\"/assets/brand/neuron-wordmark-on-light.png\" srcset=\"/assets/brand/neuron-wordmark-on-light@2x.png 2x\" alt=\"Neuron\" height=\"28\"") + el_nav( + "id=\"nav\"", + el_div( + "class=\"nav-inner\"", + el_a("/", "class=\"nav-logo\" aria-label=\"Neuron home\"", logo_img) + + el_a("/", "class=\"nav-back\"", "← Home") + ) + ) +} + +fn account_signin_svg_user() -> String { + "" + + "" + + "" + + "" +} + +fn account_signin_svg_google() -> String { + "" + + "" + + "" + + "" + + "" + + "" +} + +fn account_signin_svg_github() -> String { + "" + + "" + + "" +} + +fn account_signin_svg_download() -> String { + "" + + "" + + "" + + "" + + "" +} + +fn account_signin_svg_device() -> String { + "" + + "" + + "" + + "" + + "" +} + +fn account_signin_section() -> String { + let or_divider: String = el_div( + "style=\"display:flex;align-items:center;gap:1rem;margin:.125rem 0\"", + el_div("style=\"flex:1;height:1px;background:var(--border2)\"", "") + + el_span("style=\"font-family:var(--body);font-size:.75rem;color:var(--t3);letter-spacing:.06em\"", "or") + + el_div("style=\"flex:1;height:1px;background:var(--border2)\"", "") + ) + let email_input: String = "" + let email_btn: String = "" + let email_msg: String = el_p("id=\"acct-email-msg\" style=\"display:none;font-size:.8rem;text-align:center;margin-top:.25rem\"", "") + let options_wrap: String = el_div( + "style=\"width:100%;max-width:20rem;margin:0 auto;display:flex;flex-direction:column;gap:.75rem\"", + el_button("type=\"button\" class=\"signin-btn\" id=\"btn-google\" onclick=\"signInWith('google')\"", account_signin_svg_google() + " Continue with Google") + + el_button("type=\"button\" class=\"signin-btn\" id=\"btn-github\" onclick=\"signInWith('github')\"", account_signin_svg_github() + " Continue with GitHub") + + or_divider + + email_input + + email_btn + + email_msg + ) + el_div( + "id=\"signin-section\"", + el_div( + "class=\"signin-wrap\"", + el_div("class=\"signin-icon\"", account_signin_svg_user()) + + el_h1("class=\"signin-title\"", "Sign in to your account") + + el_p("class=\"signin-sub\"", "Enter your email to receive a sign-in link, or continue with a social account.") + + options_wrap + ) + ) +} + +fn account_plan_card() -> String { + el_div( + "class=\"card-dark\" id=\"plan-card\"", + el_p("class=\"card-label\"", "Your Plan") + + el_div( + "class=\"plan-row\"", + el_div( + "", + el_p("class=\"plan-name\" id=\"plan-name-el\"", "Loading...") + + el_div("id=\"plan-status-el\"", "") + + el_div("id=\"plan-billing-note-el\"", "") + ) + ) + + el_div("class=\"plan-meta\" id=\"plan-meta-el\"", "") + ) +} + +fn account_roadmap_phase1() -> String { + el_div( + "class=\"roadmap-phase\"", + el_div( + "class=\"roadmap-phase-header\"", + el_span("class=\"roadmap-phase-label\"", "Now shipping") + + el_span("class=\"roadmap-phase-date\"", "Q3 2026") + ) + + el_ul( + "class=\"roadmap-items\"", + el_li("", "macOS and Windows clients") + + el_li("", "Persistent memory — local, encrypted") + + el_li("", "Bring your own API keys (OpenAI, Anthropic, Grok)") + + el_li("", "Neuron Inference — priced below the major APIs") + + el_li("", "Gmail, Slack, Google Calendar connectors") + + el_li("", "VS Code extension") + + el_li("", "Founding member badge in-app") + ) + ) +} + +fn account_roadmap_phase2() -> String { + el_div( + "class=\"roadmap-phase\"", + el_div( + "class=\"roadmap-phase-header\"", + el_span("class=\"roadmap-phase-label\"", "Following launch") + + el_span("class=\"roadmap-phase-date\"", "Q4 2026") + ) + + el_ul( + "class=\"roadmap-items\"", + el_li("", "Process and knowledge packets") + + el_li("", "Local inference via Ollama") + + el_li("", "Additional connectors — GitHub, Notion, Linear, more") + + el_li("", "Mobile companion app") + + el_li("", "Family accounts") + ) + ) +} + +fn account_roadmap_phase3() -> String { + el_div( + "class=\"roadmap-phase\" style=\"border-bottom:none\"", + el_div( + "class=\"roadmap-phase-header\"", + el_span("class=\"roadmap-phase-label\"", "2027") + + el_span("class=\"roadmap-phase-date\"", "H1 2027") + ) + + el_ul( + "class=\"roadmap-items\"", + el_li("", "Imprints — starting with C-suite (CEO, CTO, CFO, CMO, COO)") + + el_li("", "Enterprise accounts") + + el_li("", "Plugin marketplace (open to developers)") + + el_li("", "API access for power users") + ) + ) +} + +fn account_roadmap_section() -> String { + el_div( + "id=\"roadmap-section\" style=\"display:none\"", + el_div( + "class=\"card-dark\"", + el_p("class=\"card-label\"", "Product Roadmap") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:.875rem;color:var(--t2);line-height:1.7;margin-bottom:1.5rem\"", + "As a Founding Member, you have visibility into what we're building. This is the real roadmap — not marketing." + ) + + el_div("class=\"roadmap-list\"", account_roadmap_phase1() + account_roadmap_phase2() + account_roadmap_phase3()) + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:.75rem;color:var(--t3);margin-top:1.5rem;line-height:1.7\"", + "This roadmap is directional, not a commitment. Founding Members shape what gets built and when through their feedback and votes. Your input has real weight." + ) + ) + ) +} + +fn account_family_section() -> String { + let child_attest: String = "" + el_div( + "id=\"family-section\" style=\"display:none\"", + el_div( + "class=\"card-dark\"", + el_div( + "class=\"acct-section-header\"", + el_p("class=\"card-label\"", "Family members") + + el_p("style=\"font-size:.8125rem;font-weight:300;color:var(--t2);line-height:1.65\"", "Add up to 5 children to your Founding Member plan. $10/month per child.") + ) + + el_div("id=\"family-list\"", "") + + el_div( + "id=\"add-child-form\"", + el_input("email", "id=\"child-email\" placeholder=\"Child's email\" class=\"acct-input\"") + + el_input("number", "id=\"child-dob-year\" placeholder=\"Birth year (e.g. 2012)\" min=\"1990\" max=\"2007\" class=\"acct-input\"") + + child_attest + + el_button("class=\"btn-primary\" onclick=\"addFamilyMember()\" style=\"padding:.75rem 1.5rem\"", "Add family member") + + el_p("id=\"family-msg\" style=\"display:none;font-size:.8rem;margin-top:.5rem\"", "") + ) + ) + ) +} + +fn account_badge_section() -> String { + el_div( + "id=\"badge-section\" style=\"display:none\"", + el_div( + "class=\"card-dark\" style=\"padding:2.5rem 2rem;text-align:center;border-top:3px solid var(--navy);background:linear-gradient(135deg,rgba(0,82,160,.03) 0%,rgba(0,82,160,.06) 100%)\"", + el_p("class=\"card-label\" style=\"margin-bottom:1.5rem;letter-spacing:.25em\"", "Your Founding Member Badge") + + el_div("id=\"badge-html-container\" style=\"display:flex;justify-content:center;margin-bottom:1.5rem\"", "") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:.8125rem;color:var(--t3);line-height:1.7;max-width:24rem;margin:0 auto\"", + "This badge will appear in the Neuron app at launch. Your number is permanent." + ) + ) + ) +} + +fn account_timeline_item1() -> String { + el_div( + "class=\"timeline-item\"", + el_div( + "class=\"timeline-left\"", + el_div("class=\"timeline-dot filled\"", "") + + el_div("class=\"timeline-line\"", "") + ) + + el_div( + "class=\"timeline-content\"", + el_p("class=\"timeline-date\"", "Now") + + el_p("class=\"timeline-text\"", "Your preorder is confirmed.") + + el_p("class=\"timeline-sub\"", "A confirmation email has been sent to your address. Thank you for being here early.") + ) + ) +} + +fn account_timeline_item2() -> String { + el_div( + "class=\"timeline-item\"", + el_div( + "class=\"timeline-left\"", + el_div("class=\"timeline-dot filled\" style=\"background:rgba(0,82,160,.4);border-color:rgba(0,82,160,.4)\"", "") + + el_div("class=\"timeline-line\"", "") + ) + + el_div( + "class=\"timeline-content\"", + el_p("class=\"timeline-date\" style=\"color:var(--navy);font-weight:600\"", "Within 30 days") + + el_p("class=\"timeline-text\"", "Neuron for Mac & Windows ships.") + + el_p("class=\"timeline-sub\"", "You'll receive an email with your download link and license key. macOS and Windows simultaneously.") + ) + ) +} + +fn account_timeline_item3() -> String { + el_div( + "class=\"timeline-item\"", + el_div( + "class=\"timeline-left\"", + el_div("class=\"timeline-dot\"", "") + ) + + el_div( + "class=\"timeline-content\"", + el_p("class=\"timeline-date\"", "Q3 2026") + + el_p("class=\"timeline-text\"", "Neuron Inference launches.") + + el_p("class=\"timeline-sub\"", "Our own inference layer, priced below the major APIs. No setup required - it activates automatically for your plan.") + ) + ) +} + +fn account_timeline_card() -> String { + el_div( + "class=\"card-dark\" id=\"timeline-card\"", + el_p("class=\"card-label\"", "What happens next") + + el_div( + "class=\"timeline\"", + account_timeline_item1() + + account_timeline_item2() + + account_timeline_item3() + ) + ) +} + +fn account_download_card() -> String { + el_div( + "class=\"card-dark\" style=\"border-top:3px solid var(--navy)\"", + el_p("class=\"card-label\"", "Download") + + el_p("class=\"download-status\" style=\"color:var(--navy)\"", "Shipping within 30 days") + + el_p("class=\"download-title\"", "Neuron for Mac & Windows") + + el_p("class=\"download-body\"", "macOS and Windows simultaneously. You'll receive a download link and license key by email the moment it ships. Nothing to do right now.") + + el_button("type=\"button\" class=\"download-btn-disabled\" disabled aria-disabled=\"true\"", + account_signin_svg_download() + " Download arriving soon" + ) + ) +} + +fn account_devices_card() -> String { + el_div( + "class=\"card-dark\"", + el_p("class=\"card-label\"", "Devices") + + el_div( + "class=\"devices-row\"", + el_div("class=\"device-icon\"", account_signin_svg_device()) + + el_div( + "", + el_p("class=\"devices-count\"", "2 devices included with your plan") + + el_p("class=\"devices-sub\"", "Currently: Setup at launch") + ) + ) + + el_p("class=\"devices-note\"", "Device activation happens when you install. Your license key will be in your launch email.") + ) +} + +fn account_dashboard_section() -> String { + let header_row: String = el_div( + "class=\"acct-header-row\"", + el_div( + "", + el_p("class=\"page-eyebrow\" style=\"margin-bottom:.375rem\"", "Account") + + el_h1("class=\"page-title\" style=\"margin-bottom:.5rem\"", "Your Account") + + el_p("class=\"acct-email\" id=\"acct-header-email\"", "") + ) + + el_div( + "style=\"padding-top:.25rem\"", + el_button("type=\"button\" class=\"btn-ghost\" id=\"signout-btn-top\" onclick=\"signOut()\"", "Sign out") + ) + ) + let signout_row: String = el_div( + "class=\"signout-section\"", + el_button("type=\"button\" class=\"btn-ghost\" id=\"signout-btn\" onclick=\"signOut()\"", "Sign out") + ) + el_div( + "id=\"dashboard-section\" style=\"display:none\"", + header_row + + el_div( + "class=\"account-section\"", + account_plan_card() + + account_roadmap_section() + + account_family_section() + + account_badge_section() + + account_timeline_card() + + account_download_card() + + account_devices_card() + + signout_row + ) + ) +} + +fn account_page(supabase_url: String, supabase_anon_key: String) -> String { + let head: String = + el_meta_charset("UTF-8") + + el_meta("name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"") + + el_title("My Account - Neuron") + + el_meta("name=\"description\" content=\"Manage your Neuron account, view your plan, and access your founding member details.\"") + + "" + + "" + + "" + + "" + + el_link_stylesheet("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=IBM+Plex+Sans:wght@300;400;500;600&display=swap") + + account_css() + + let body: String = + account_nav() + + el_div( + "class=\"page-shell\"", + el_div( + "class=\"page-inner\"", + account_signin_section() + + account_dashboard_section() + ) + ) + + el_script_src("https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2/dist/umd/supabase.min.js", false) + + el_script_inline("window.NEURON_CFG=window.NEURON_CFG||{};window.NEURON_CFG.supabase_url=\"" + supabase_url + "\";window.NEURON_CFG.supabase_anon_key=\"" + supabase_anon_key + "\";") + + el_script_src("/js/account-auth.js", true) + + el_script_src("/js/account-dashboard.js", true) + + el_html_doc("lang=\"en\"", head, body) } diff --git a/src/comparison.el b/src/comparison.el index 0d37eba..ecfd487 100644 --- a/src/comparison.el +++ b/src/comparison.el @@ -1,166 +1,179 @@ // components/comparison.el - Neuron vs the field comparison section. -fn comparison() -> String { - return
-
+extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_img(src: String, alt: String, attrs: String) -> String +extern fn el_em(children: String) -> String +extern fn el_br() -> String -
-
- - How we compare - -
-

- Every other AI forgets you.
Neuron doesn't. -

-

- The others are tools. Neuron is a relationship. Here's the difference. -

-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Feature -
- Neuron - Neuron -
-
-
- ChatGPT - ChatGPT -
-
-
- Claude - Claude -
-
-
- Gemini - Gemini -
-
-
- Copilot - Copilot -
-
Persistent memory
Permanent, structured

Limited memory

Resets each session

Resets each session

Resets each session
Your data stays local
Runs on your device

Cloud only

Cloud only

Cloud only

Cloud only
No training on your data
Architecturally impossible

Opt-out required

Policy-based

Policy-based

Policy-based
Works offline
Coming soon
Bring your own API keys
OpenAI, Anthropic, Grok...
Structured knowledge graph
Your memories, organized
Images & video generation
Coming soon
You own your outputs
No platform claim, ever

ToS-dependent

ToS-dependent

ToS-dependent

ToS-dependent
Price (with inference)$19/mo
or $199 founding (first 1,000)
$20/mo
forgets you
$20/mo
no memory
Free–$20
no memory
$30/mo
Microsoft 365
Free tier
Full app, forever

GPT-3.5 only

Limited

Limited

Microsoft 365 required
-
- -
-
- Yes / Supported -
-
- Partial / Limited -
-
- No / Not supported -
-
- -
-

- The others are impressive. Some of them are extraordinary at what they do. But they are all built on the same assumption: your context lives in their cloud, session to session, at their discretion. -

-

- 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. -

-
- -
-
+fn comparison_header() -> String { + el_div( + "class=\"comparison-header\" style=\"text-align:center;margin-bottom:4rem\"", + el_div( + "style=\"display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:2rem\"", + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0;transform:scaleX(-1)\"", "") + + el_span("class=\"label reveal\" style=\"color:var(--navy-85)\"", "How we compare") + + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0\"", "") + ) + + el_h2( + "class=\"display-lg reveal\" style=\"transition-delay:80ms;max-width:36rem;margin:0 auto 1.25rem\"", + "Every other AI forgets you." + el_br() + el_span("class=\"gold\"", "Neuron doesn't.") + ) + + el_p("class=\"reveal\" style=\"transition-delay:160ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.7;max-width:32rem;margin:0 auto\"", + "The others are tools. Neuron is a relationship. Here's the difference." + ) + ) +} + +fn comparison_table_head() -> String { + let neuron_th: String = "" + + "
" + + el_img("/assets/neuron-icon.png", "Neuron", "style=\"width:28px;height:28px\"") + + "Neuron
" + let chatgpt_th: String = "" + + "
" + + el_img("/assets/brand/openai.svg", "ChatGPT", "style=\"width:28px;height:28px\"") + + "ChatGPT
" + let claude_th: String = "" + + "
" + + el_img("/assets/brand/anthropic.svg", "Claude", "style=\"width:28px;height:28px\"") + + "Claude
" + let gemini_th: String = "" + + "
" + + el_img("/assets/brand/gemini.svg", "Gemini", "style=\"width:28px;height:28px\"") + + "Gemini
" + let copilot_th: String = "" + + "
" + + el_img("/assets/brand/copilot.svg", "Copilot", "style=\"width:28px;height:28px\"") + + "Copilot
" + "" + + "Feature" + + neuron_th + chatgpt_th + claude_th + gemini_th + copilot_th + + "" +} + +fn comparison_rows() -> String { + let row1: String = "" + + "Persistent memory" + + "
Permanent, structured" + + "
Limited memory" + + "
Resets each session" + + "
Resets each session" + + "
Resets each session" + + "" + let row2: String = "" + + "Your data stays local" + + "
Runs on your device" + + "
Cloud only" + + "
Cloud only" + + "
Cloud only" + + "
Cloud only" + + "" + let row3: String = "" + + "No training on your data" + + "
Architecturally impossible" + + "
Opt-out required" + + "
Policy-based" + + "
Policy-based" + + "
Policy-based" + + "" + let row4: String = "" + + "Works offline" + + "
Coming soon" + + "" + + "" + + "" + + "" + + "" + let row5: String = "" + + "Bring your own API keys" + + "
OpenAI, Anthropic, Grok..." + + "" + + "" + + "" + + "" + + "" + let row6: String = "" + + "Structured knowledge graph" + + "
Your memories, organized" + + "" + + "" + + "" + + "" + + "" + let row7: String = "" + + "Images & video generation" + + "
Coming soon" + + "" + + "" + + "" + + "" + + "" + let row8: String = "" + + "You own your outputs" + + "
No platform claim, ever" + + "
ToS-dependent" + + "
ToS-dependent" + + "
ToS-dependent" + + "
ToS-dependent" + + "" + let row9: String = "" + + "Price (with inference)" + + "$19/mo
or $199 founding (first 1,000)" + + "$20/mo
forgets you" + + "$20/mo
no memory" + + "Free–$20
no memory" + + "$30/mo
Microsoft 365" + + "" + let row10: String = "" + + "Free tier" + + "
Full app, forever" + + "
GPT-3.5 only" + + "
Limited" + + "
Limited" + + "
Microsoft 365 required" + + "" + "" + row1 + row2 + row3 + row4 + row5 + row6 + row7 + row8 + row9 + row10 + "" +} + +fn comparison() -> String { + let table: String = el_div( + "class=\"comparison-table reveal\" style=\"transition-delay:200ms;overflow-x:auto;-webkit-overflow-scrolling:touch\"", + "" + + comparison_table_head() + + comparison_rows() + + "
" + ) + + let legend: String = el_div( + "class=\"reveal\" style=\"transition-delay:300ms;margin-top:3rem;display:flex;align-items:center;justify-content:center;gap:3rem;flex-wrap:wrap\"", + el_div("style=\"display:flex;align-items:center;gap:0.5rem;font-family:var(--body);font-size:0.75rem;color:var(--t3)\"", + " Yes / Supported" + ) + + el_div("style=\"display:flex;align-items:center;gap:0.5rem;font-family:var(--body);font-size:0.75rem;color:var(--t3)\"", + " Partial / Limited" + ) + + el_div("style=\"display:flex;align-items:center;gap:0.5rem;font-family:var(--body);font-size:0.75rem;color:var(--t3)\"", + " No / Not supported" + ) + ) + + let closing: String = el_div( + "class=\"reveal\" style=\"transition-delay:400ms;margin-top:4rem;padding:clamp(1.5rem,4vw,2.5rem) clamp(1.25rem,4vw,3rem);background:var(--card);border:1px solid rgba(0,82,160,.12);border-left:3px solid var(--navy)\"", + el_p("style=\"font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\"", + "The others are impressive. Some of them are extraordinary at what they do. But they are all built on the same assumption: " + + el_em("your context lives in their cloud, session to session, at their discretion.") + ) + + el_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." + ) + ) + + el_section( + "id=\"comparison\" aria-label=\"Comparison\" style=\"padding:8rem 2.5rem;background:var(--bg2)\"", + el_div("class=\"container\"", comparison_header() + table + legend + closing) + ) } diff --git a/src/efficiency.el b/src/efficiency.el index 5a919d1..ecde4ec 100644 --- a/src/efficiency.el +++ b/src/efficiency.el @@ -1,74 +1,89 @@ // components/efficiency.el - Token efficiency and environment section. // Three cards: local inference / per-task routing / context compression. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String + fn efficiency() -> String { - return
-
+ let header: String = el_div( + "class=\"efficiency-header\"", + el_div( + "class=\"efficiency-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0\"", "") + + el_span("class=\"label\"", "Efficiency") + ) + + el_h2( + "class=\"display-lg reveal\" style=\"transition-delay:80ms;max-width:32rem\"", + "Every token spent " + el_span("class=\"gold\"", "is a choice.") + ) + + el_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." + ) + ) -
-
- - Efficiency -
-

- Every token spent is a choice. -

-

- Cost and environmental impact aren't afterthoughts - they're structural properties of the architecture. I built it that way from the start. -

-
+ let svg1: String = "" + + "" + + "" + + "" + + "" + + "" -
+ let card1: String = el_div( + "class=\"efficiency-card card-dark reveal\"", + el_div("class=\"efficiency-icon\"", svg1) + + el_p("class=\"efficiency-stat\"", "0 cloud tokens") + + el_p("class=\"efficiency-title\"", "Local inference") + + el_div("class=\"efficiency-rule\"", "") + + el_p("class=\"efficiency-body\"", "The design: run inference entirely on-device via Ollama. No API calls, no inference cost, no carbon footprint from model compute. Full memory and context, zero cloud dependency. This is coming.") + ) -
-
- -
-

0 cloud tokens

-

Local inference

-
-

The design: run inference entirely on-device via Ollama. No API calls, no inference cost, no carbon footprint from model compute. Full memory and context, zero cloud dependency. This is coming.

-
+ let svg2: String = "" + + "" + + "" + + "" -
-
- -
-

Use less

-

Per-task routing

-
-

Simple tasks route to small, fast models. Complex reasoning escalates to frontier models only when necessary. And because every model has full access to your accumulated context, cheaper models punch well above their weight.

-
+ let card2: String = el_div( + "class=\"efficiency-card card-dark reveal\" style=\"transition-delay:150ms\"", + el_div("class=\"efficiency-icon\"", svg2) + + el_p("class=\"efficiency-stat\"", "Use less") + + el_p("class=\"efficiency-title\"", "Per-task routing") + + el_div("class=\"efficiency-rule\"", "") + + el_p("class=\"efficiency-body\"", "Simple tasks route to small, fast models. Complex reasoning escalates to frontier models only when necessary. And because every model has full access to your accumulated context, cheaper models punch well above their weight.") + ) -
-
- -
-

Fewer tokens

-

Same work done

-
-

Every time you open ChatGPT and explain who you are again, that's computation that didn't need to happen. Persistent context means shorter, more targeted prompts. The same outcome with less compute - and a smaller footprint on the planet.

-
+ let svg3: String = "" + + "" + + "" + + "" + + "" -
+ let card3: String = el_div( + "class=\"efficiency-card card-dark reveal\" style=\"transition-delay:300ms\"", + el_div("class=\"efficiency-icon\"", svg3) + + el_p("class=\"efficiency-stat\"", "Fewer tokens") + + el_p("class=\"efficiency-title\"", "Same work done") + + el_div("class=\"efficiency-rule\"", "") + + el_p("class=\"efficiency-body\"", "Every time you open ChatGPT and explain who you are again, that's computation that didn't need to happen. Persistent context means shorter, more targeted prompts. The same outcome with less compute - and a smaller footprint on the planet.") + ) -
-

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.

-
+ let grid: String = el_div("class=\"efficiency-grid\"", card1 + card2 + card3) -
-
-
+ let pullquote: String = el_div( + "class=\"efficiency-pullquote reveal\"", + el_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.") + ) + + let bottom_line: String = el_div( + "class=\"container\" style=\"margin-top:5rem\"", + el_div("class=\"navy-line\"", "") + ) + + el_section( + "id=\"efficiency\" aria-label=\"Token efficiency and environment\"", + el_div("class=\"container\"", header + grid + pullquote) + bottom_line + ) } diff --git a/src/enterprise.el b/src/enterprise.el index e24f672..e902e90 100644 --- a/src/enterprise.el +++ b/src/enterprise.el @@ -1,183 +1,223 @@ // components/enterprise.el - Enterprise section. // Four capability cards + "Who I work with" box + how-it-works steps. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_h3(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String +extern fn el_form(attrs: String, children: String) -> String +extern fn el_label(for_id: String, attrs: String, children: String) -> String +extern fn el_input(type_attr: String, attrs: String) -> String +extern fn el_textarea(attrs: String, value: String) -> String +extern fn el_button(attrs: String, label: String) -> String +extern fn el_script_src(src: String, defer_load: Bool) -> String + +fn enterprise_cap_cards() -> String { + let card1: String = el_div( + "class=\"enterprise-cap card-dark reveal\"", + el_h3("class=\"display-md\"", "Private deployment") + + el_div("class=\"enterprise-cap-rule\"", "") + + el_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.") + ) + let card2: String = el_div( + "class=\"enterprise-cap card-dark reveal\" style=\"transition-delay:130ms\"", + el_h3("class=\"display-md\"", "Institutional memory") + + el_div("class=\"enterprise-cap-rule\"", "") + + el_p("class=\"enterprise-cap-body\"", "When an employee leaves, their expertise doesn't. Their memory persists - their patterns, their domain knowledge, their reasoning - available to the team they built it with.") + ) + let card3: String = el_div( + "class=\"enterprise-cap card-dark reveal\" style=\"transition-delay:260ms\"", + el_h3("class=\"display-md\"", "Team intelligence") + + el_div("class=\"enterprise-cap-rule\"", "") + + el_p("class=\"enterprise-cap-body\"", "Shared knowledge packages and cross-instance coordination. The collective intelligence of your organization compounds the same way an individual's does.") + ) + let card4: String = el_div( + "class=\"enterprise-cap card-dark reveal\" style=\"transition-delay:390ms\"", + el_h3("class=\"display-md\"", "Compliance architecture") + + el_div("class=\"enterprise-cap-rule\"", "") + + el_p("class=\"enterprise-cap-body\"", "Custom on-device storage. No cloud database with your data. SOC 2 alignment built into the data model. ExternalSecret-based secrets management. Audit logs at every layer.") + ) + el_div("class=\"enterprise-grid\"", card1 + card2 + card3 + card4) +} + +fn enterprise_how_it_works() -> String { + let step1: String = el_div( + "", + el_p("class=\"ent-step-num\"", "01") + + el_p("class=\"ent-step-title\"", "Express interest") + + el_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.") + ) + let step2: String = el_div( + "", + el_p("class=\"ent-step-num\"", "02") + + el_p("class=\"ent-step-title\"", "Scoped deployment") + + el_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.") + ) + let step3: String = el_div( + "", + el_p("class=\"ent-step-num\"", "03") + + el_p("class=\"ent-step-title\"", "Per-seat licensing") + + el_p("class=\"ent-step-body\"", "Annual per-seat pricing with a volume floor. Custom SLA available. The full Agreement is published before any conversation starts.") + ) + el_div( + "class=\"ent-how-row\"", + el_div( + "class=\"ent-how-label\"", + el_h3("class=\"display-md\" style=\"font-size:1.25rem\"", "How it works") + ) + + el_div("class=\"ent-steps\"", step1 + step2 + step3) + ) +} + +fn enterprise_inquiry_form() -> String { + let field_style: String = "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;width:100%;box-sizing:border-box" + let label_style: String = "font-family:var(--body);font-size:0.7rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--t3)" + + let field_name: String = el_div( + "style=\"display:flex;flex-direction:column;gap:0.4rem\"", + el_label("ent-name", "style=\"" + label_style + "\"", "Name") + + el_input("text", "id=\"ent-name\" name=\"name\" required placeholder=\"Your name\" style=\"" + field_style + "\"") + ) + let field_email: String = el_div( + "style=\"display:flex;flex-direction:column;gap:0.4rem\"", + el_label("ent-email", "style=\"" + label_style + "\"", "Work email") + + el_input("email", "id=\"ent-email\" name=\"email\" required placeholder=\"you@company.com\" style=\"" + field_style + "\"") + ) + let field_company: String = el_div( + "style=\"display:flex;flex-direction:column;gap:0.4rem\"", + el_label("ent-company", "style=\"" + label_style + "\"", "Organization") + + el_input("text", "id=\"ent-company\" name=\"company\" required placeholder=\"Company or organization name\" style=\"" + field_style + "\"") + ) + let field_size: String = el_div( + "style=\"display:flex;flex-direction:column;gap:0.4rem\"", + el_label("ent-size", "style=\"" + label_style + "\"", "Team size") + + "" + ) + let field_use: String = el_div( + "style=\"grid-column:1/-1;display:flex;flex-direction:column;gap:0.4rem\"", + el_label("ent-use", "style=\"" + label_style + "\"", "What do you want to use Neuron for?") + + el_textarea("id=\"ent-use\" name=\"use_case\" required rows=\"3\" placeholder=\"Describe your intended use case - be specific.\" style=\"" + field_style + ";resize:vertical\"", "") + ) + let filter_msg_secondary: String = el_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." + ) + let filter_msg_yes: String = el_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." + ) + let field_headcount: String = el_div( + "style=\"grid-column:1/-1;display:flex;flex-direction:column;gap:0.4rem\"", + el_label("ent-headcount", "style=\"" + label_style + "\"", "Is reducing headcount a primary goal of this deployment?") + + "" + + filter_msg_secondary + + filter_msg_yes + ) + let error_div: String = el_div("id=\"ent-form-error\" style=\"grid-column:1/-1;display:none;font-family:var(--body);font-size:0.875rem;color:#c0392b;padding:0.75rem 1rem;background:rgba(192,57,43,.05);border-left:2px solid rgba(192,57,43,.4)\"", "") + let submit_div: String = el_div( + "style=\"grid-column:1/-1\"", + el_button("type=\"submit\" id=\"ent-submit\" style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;background:var(--navy);color:#fff;border:none;padding:0.95rem 2rem;cursor:pointer;transition:background .2s\"", + "Send inquiry →" + ) + ) + + let success_div: String = el_div( + "id=\"enterprise-success\" style=\"display:none;padding:2rem;background:rgba(0,82,160,.04);border-left:3px solid var(--navy)\"", + el_p("style=\"font-family:var(--head);font-size:1.25rem;font-weight:500;color:var(--t1);margin-bottom:0.5rem\"", "Received.") + + el_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." + ) + ) + + el_div( + "style=\"margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--border)\"", + el_p("class=\"label\" style=\"margin-bottom:0.75rem;font-size:0.65rem\"", "Express interest") + + el_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." + ) + + el_form("id=\"enterprise-form\" class=\"ent-inquiry-form\"", + field_name + field_email + field_company + field_size + field_use + field_headcount + error_div + submit_div + ) + + success_div + ) +} + fn enterprise() -> String { - return
-
+ let header: String = el_div( + "class=\"enterprise-header\"", + el_div( + "class=\"enterprise-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0\"", "") + + el_span("class=\"label\" style=\"color:var(--navy-85)\"", "Enterprise") + ) + + el_div( + "class=\"enterprise-head-row\"", + el_div( + "style=\"max-width:28rem\"", + el_h2( + "class=\"display-lg reveal\" style=\"transition-delay:80ms\"", + "Enterprise-ready " + el_span("class=\"gold\"", "Q1 2027.") + ) + + el_p("class=\"reveal\" style=\"transition-delay:160ms;font-weight:300;font-size:.9375rem;color:var(--t2);line-height:1.7;margin-top:1.25rem\"", + "Not an afterthought. Not a future roadmap item. Built into the architecture from the start." + ) + ) + + el_div( + "class=\"reveal\" style=\"transition-delay:240ms;display:flex;flex-direction:column;gap:.75rem;align-items:flex-end\"", + el_div( + "class=\"ent-badge\"", + el_span("class=\"ent-badge-dot\"", "") + + "Enterprise discussions open now — launching Q1 2027" + ) + + el_p("style=\"font-size:.75rem;color:rgba(0,82,160,.45)\"", + "Use the form below · I review every inquiry · I'll be spending the holidays with my family — we launch Q1" + ) + ) + ) + ) -
-
- - Enterprise -
-
-
-

- Enterprise-ready Q1 2027. -

-

- Not an afterthought. Not a future roadmap item. Built into the architecture from the start. -

-
-
-
- - Enterprise discussions open now — launching Q1 2027 -
-

Use the form below · I review every inquiry · I'll be spending the holidays with my family — we launch Q1

-
-
-
+ let enterprise_box: String = el_div( + "class=\"enterprise-box reveal\"", + el_p("class=\"ent-who-label\"", "Who I work with") + + el_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.") + + el_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.") + + enterprise_how_it_works() + + el_div( + "class=\"ent-terms-row\"", + el_p("class=\"ent-terms-text\"", "The full Enterprise Agreement is published. Read it before reaching out - no NDA required to evaluate the terms.") + + el_a("/legal/enterprise-terms", "class=\"ent-terms-link\"", "Read the Enterprise Agreement →") + ) + + enterprise_inquiry_form() + ) -
-
-

Private deployment

-
-

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.

-
-
-

Institutional memory

-
-

When an employee leaves, their expertise doesn't. Their memory persists - their patterns, their domain knowledge, their reasoning - available to the team they built it with.

-
-
-

Team intelligence

-
-

Shared knowledge packages and cross-instance coordination. The collective intelligence of your organization compounds the same way an individual's does.

-
-
-

Compliance architecture

-
-

Custom on-device storage. No cloud database with your data. SOC 2 alignment built into the data model. ExternalSecret-based secrets management. Audit logs at every layer.

-
-
- -
-

Who I work with

-

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.

-

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.

- -
-
-

How it works

-
-
-
-

01

-

Express interest

-

Send me a note. I review every inquiry myself - no sales funnel, no SDR. If it's a fit, I respond directly.

-
-
-

02

-

Scoped deployment

-

I work with your team to scope a private deployment - on your infrastructure, in your network, with your security requirements.

-
-
-

03

-

Per-seat licensing

-

Annual per-seat pricing with a volume floor. Custom SLA available. The full Agreement is published before any conversation starts.

-
-
-
- -
-

The full Enterprise Agreement is published. Read it before reaching out - no NDA required to evaluate the terms.

- Read the Enterprise Agreement → -
- - -
-

Express interest

-

I review every inquiry myself. Fill this out honestly - the questions are a filter, not a formality.

- -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - - -
- - - -
- -
- -
- - -
- -
- -
- - -
+ .ent-inquiry-form > div[style*=\"grid-column:1/-1\"], + .ent-inquiry-form > div[style*=\"grid-column: 1 / -1\"] { grid-column: 1; } + }" + + el_section( + "id=\"enterprise\" aria-label=\"Enterprise\"", + el_div("class=\"container\"", header + enterprise_cap_cards() + enterprise_box) + + "" + + el_script_src("/js/enterprise.js", true) + ) } diff --git a/src/enterprise_terms.el b/src/enterprise_terms.el index 3c23671..8a4a6d6 100644 --- a/src/enterprise_terms.el +++ b/src/enterprise_terms.el @@ -4,150 +4,188 @@ from styles import { page_open, page_close } from nav import { nav } +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h1(attrs: String, text: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String +extern fn el_ul(attrs: String, children: String) -> String +extern fn el_li(attrs: String, children: String) -> String +extern fn el_em(children: String) -> String + fn enterprise_terms_page() -> String { - return {page_open()}{enterprise_terms_body()}{page_close()} + page_open() + enterprise_terms_body() + page_close() } -fn section(num: String, title: String, body: String) -> String { - return
-
- § {num} -

{title}

-
- {raw(body)} -
+fn et_section(num: String, title: String, body: String) -> String { + let header: String = el_div( + "style=\"display:flex;align-items:baseline;flex-wrap:wrap;gap:0.5rem 1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem\"", + el_span("style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65);flex-shrink:0\"", "§ " + num) + + el_h2("style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1);min-width:0;word-break:break-word\"", title) + ) + el_div("style=\"margin-bottom:3rem\"", header + body) } -fn p(text: String) -> String { - return

{raw(text)}

+fn et_p(text: String) -> String { + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\"", text) } -fn p_last(text: String) -> String { - return

{raw(text)}

+fn et_p_last(text: String) -> String { + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\"", text) } -fn p_caps(text: String) -> String { - return

{raw(text)}

+fn et_p_caps(text: String) -> String { + el_p("style=\"font-family:var(--body);font-size:0.875rem;font-weight:600;color:var(--t1);line-height:1.7;margin-bottom:1rem\"", text) +} + +fn enterprise_terms_sections_1_4() -> String { + et_section("1", "Parties and Scope", + et_p("This Enterprise Agreement ("Agreement") is between Neuron, LLC ("Neuron") and the organization entering into an enterprise relationship ("Customer"). It governs all enterprise deployments, including Team, Enterprise, and Private Cloud tiers.") + + et_p_last("This Agreement supplements the Neuron Terms of Service. In the event of conflict, this Agreement controls for enterprise use. The parties are bound by the Order Form executed at time of deployment, which specifies tier, seat count, term, and pricing.") + ) + + et_section("2", "License Grant and Usage Rights", + et_p("Subject to the terms of this Agreement and timely payment of fees, Neuron grants Customer a limited, non-exclusive, non-transferable, non-sublicensable license to deploy and use the Neuron platform ("Software") solely for Customer's internal business purposes during the Term.") + + et_p("The license is scoped to the number of authorized seats, devices, or instances specified in the Order Form. Customer may not exceed the licensed scope without executing a seat expansion. Neuron will not invoice retroactively for inadvertent overage of fewer than 10% of contracted seats if Customer notifies Neuron and brings usage into compliance within 30 days.") + + et_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.") + ) + + et_section("3", "Data and Privacy", + et_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.") + + et_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 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.") + + et_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.") + + et_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.") + ) + + et_section("4", "Values Alignment", + et_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.") + + et_p("Customer represents that it does not intend to use Neuron primarily as a tool to eliminate employee positions, reduce headcount through automation in ways that harm workers, or otherwise use the platform in ways inconsistent with the welfare of the people who work in Customer's organization.") + + et_p("Neuron reserves the right to decline, not renew, or terminate any enterprise agreement where Neuron determines, in its reasonable judgment, that the Customer's use of the platform is fundamentally misaligned with these principles. Termination under this section is subject to the notice and cure provisions of § 10.") + + et_p_last("We will not enter into agreements with organizations whose primary business model, as Neuron determines in good faith, depends on practices that systematically harm workers, small businesses, or communities. This is not a standard clause in most software agreements. We mean it.") + ) +} + +fn enterprise_terms_sections_5_8() -> String { + et_section("5", "Service Levels and Support", + et_p("For cloud-hosted deployments, Neuron targets 99.9% monthly uptime, excluding scheduled maintenance windows (communicated at least 48 hours in advance) and circumstances outside Neuron's reasonable control. In the event Neuron fails to meet this target in a given calendar month, Customer may request a service credit equal to 5% of that month's fees for each full percentage point of availability below the target, up to a maximum of 30% of monthly fees. Credits are the sole and exclusive remedy for availability failures.") + + et_p("For on-premises and private cloud deployments, Customer is responsible for infrastructure availability. Neuron's SLA obligations apply only to software defects in the distributed build, not to Customer's infrastructure choices.") + + et_p_last("Support is provided by email at enterprise@neurontechnologies.ai. Neuron will acknowledge critical issues (complete service outage or data loss risk) within 4 business hours and provide a status update within 24 hours. Standard issues are acknowledged within 2 business days. Neuron does not guarantee resolution timelines for issues requiring platform changes.") + ) + + et_section("6", "Security and Compliance", + et_p("Neuron implements security controls commensurate with enterprise software handling sensitive user data. These include: encryption in transit (TLS 1.2+) and at rest for cloud-hosted services; role-based access controls; audit logging at the infrastructure layer; and regular internal security reviews.") + + et_p("Neuron will pursue SOC 2 Type II certification and will provide Customer with the most recent available report upon request under a signed NDA. Until certification is achieved, Neuron will make available a written summary of security controls upon request.") + + et_p_last("Customer is responsible for: (a) maintaining the security of credentials and API keys used to access the platform; (b) configuring access controls for Customer's own users; (c) compliance with applicable law with respect to the data Customer chooses to input into the platform; and (d) conducting its own security evaluation appropriate to its risk profile before deployment in regulated environments.") + ) + + et_section("7", "Confidentiality", + et_p("Each party ("Receiving Party") agrees to protect the other party's ("Disclosing Party") Confidential Information with the same degree of care it uses to protect its own confidential information, but no less than reasonable care. "Confidential Information" means any non-public information disclosed by the Disclosing Party that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and circumstances of disclosure.") + + et_p("Confidential Information does not include information that: (a) becomes publicly known through no breach by the Receiving Party; (b) was already known to the Receiving Party before disclosure; (c) is received from a third party without restriction; or (d) was independently developed by the Receiving Party without use of the Confidential Information.") + + et_p_last("These obligations survive termination of this Agreement for three years. Receiving Party may disclose Confidential Information to the extent required by law or court order, provided that Receiving Party gives Disclosing Party prompt written notice and cooperates with any effort to obtain a protective order.") + ) + + et_section("8", "Intellectual Property", + et_p("Neuron retains all right, title, and interest in and to the Software, including all improvements, updates, and derivative works, and all intellectual property rights therein. No title to or ownership of the Software transfers to Customer under this Agreement.") + + et_p("Customer retains all right, title, and interest in and to Customer's data, including inputs, memorys, and outputs generated through Customer's use of the platform. Neuron does not claim ownership of Customer's outputs. Customer is responsible for evaluating the accuracy and appropriateness of outputs before relying on them.") + + et_p_last("This Agreement does not grant Customer any right to use Neuron's trademarks, trade names, or logos except as expressly authorized in writing. Neuron Aligned Partner certification (§ 14) includes a limited right to use the partner designation as specified in the Partner Addendum.") + ) +} + +fn enterprise_terms_sections_9_15() -> String { + et_section("9", "Indemnification", + et_p("Neuron will defend Customer against third-party claims that the Software, as provided by Neuron and used in accordance with this Agreement, infringes a valid patent, copyright, or trademark, and will indemnify Customer for damages finally awarded in such a proceeding or agreed in settlement. This obligation does not apply to claims arising from: (a) Customer's modification of the Software; (b) Customer's combination of the Software with third-party products or data not provided by Neuron; or (c) Customer's use of the Software in violation of this Agreement.") + + et_p_last("Customer will defend Neuron against third-party claims arising from Customer's use of the platform in violation of applicable law, this Agreement, or the rights of third parties, and will indemnify Neuron for damages finally awarded or agreed in settlement. Each party must promptly notify the other of any claim for which indemnification may be sought and must cooperate reasonably in the defense.") + ) + + et_section("10", "Term and Termination", + et_p("This Agreement begins on the Effective Date specified in the Order Form and continues for the initial term stated therein, typically twelve months. Unless either party provides written notice of non-renewal at least 30 days before the end of the then-current term, this Agreement automatically renews for successive one-year terms at the pricing in effect at renewal.") + + et_p("Either party may terminate this Agreement for material breach upon 30 days' written notice if the breach remains uncured at the end of that period. Neuron may terminate immediately upon written notice if Customer breaches § 2 (unauthorized use of the Software) or § 7 (confidentiality obligations).") + + et_p("Neuron may terminate this Agreement under § 4 (Values Alignment) with 60 days' written notice if Neuron determines in good faith that Customer's use of the platform is materially and persistently misaligned with the principles stated therein. Neuron will provide Customer the opportunity to respond and demonstrate alignment before termination takes effect.") + + et_p_last("Upon termination: (a) all licenses immediately terminate; (b) Customer must cease use of the Software; (c) each party will return or destroy the other's Confidential Information upon request; and (d) Neuron will make Customer's data available for export for 30 days, after which it will be destroyed. Sections 3 (data ownership and destruction), 7 (confidentiality), 8 (intellectual property), 9 (indemnification), 11 (limitation of liability), and 13 (governing law) survive termination.") + ) + + et_section("11", "Limitation of Liability", + et_p_caps("NEURON'S TOTAL LIABILITY UNDER THIS AGREEMENT SHALL NOT EXCEED THE FEES PAID BY CUSTOMER IN THE TWELVE MONTHS PRECEDING THE CLAIM.") + + et_p_caps("NEITHER PARTY SHALL BE LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, EVEN IF ADVISED OF THEIR POSSIBILITY.") + + et_p_last("These limitations do not apply to: (a) Customer's payment obligations; (b) breaches of § 7 (confidentiality); (c) a party's indemnification obligations under § 9; or (d) a party's gross negligence or willful misconduct.") + ) + + et_section("12", "Warranties and Disclaimers", + et_p("Neuron warrants that: (a) the Software will perform materially in accordance with its published documentation during the Term; (b) Neuron has the authority to enter into this Agreement and grant the licenses herein; and (c) to Neuron's knowledge, the Software does not knowingly infringe any third-party intellectual property rights.") + + et_p("Customer's exclusive remedy for a warranty breach under (a) is for Neuron to use commercially reasonable efforts to correct the non-conformity, or if correction is not commercially practicable within 30 days, to terminate the Agreement and receive a pro-rata refund of prepaid fees for the unused portion of the Term.") + + et_p_caps("EXCEPT AS EXPRESSLY SET FORTH IN THIS SECTION, THE SOFTWARE IS PROVIDED "AS IS." NEURON DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.") + + et_p_last("AI-generated outputs are probabilistic and may be inaccurate, incomplete, or inappropriate for specific contexts. Customer is responsible for reviewing outputs before relying on them for any consequential decision. Neuron does not warrant that outputs will be accurate, complete, or suitable for any particular purpose.") + ) + + et_section("13", "Governing Law and Disputes", + et_p("This Agreement is governed by the laws of the State of Delaware, without regard to conflict of law principles.") + + et_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.") + ) + + et_section("15", "General Provisions", + et_p("This Agreement, together with the Order Form and any addenda, constitutes the entire agreement between the parties with respect to its subject matter and supersedes all prior negotiations, representations, and agreements. Any amendment must be in writing and signed by authorized representatives of both parties.") + + et_p("If any provision of this Agreement is found unenforceable, it will be modified to the minimum extent necessary to make it enforceable, and the remaining provisions will continue in full force. Failure to enforce any provision is not a waiver of the right to enforce it later.") + + et_p("Neither party may assign this Agreement without the other's written consent, except that Neuron may assign to an acquirer of all or substantially all of its business or assets without consent, provided the acquirer assumes all obligations under this Agreement.") + + et_p_last("Notices must be in writing and sent to enterprise@neurontechnologies.ai for Neuron, or to the email address specified in the Order Form for Customer. Notices are effective on the day of confirmed receipt.") + ) +} + +fn enterprise_partner_section() -> String { + let section_header: String = el_div( + "style=\"display:flex;align-items:baseline;flex-wrap:wrap;gap:0.5rem 1rem;margin-bottom:1.25rem;border-bottom:1px solid rgba(0,82,160,.20);padding-bottom:0.75rem\"", + el_span("style=\"font-family:var(--body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--navy-65);flex-shrink:0\"", "§ 14") + + el_h2("style=\"font-family:var(--head);font-size:1.25rem;font-weight:600;color:var(--t1);min-width:0;word-break:break-word\"", "Neuron Aligned Partner Program") + ) + + let cert_quote: String = el_div( + "style=\"margin:1.5rem 0;padding:1.25rem 1.5rem;border-left:3px solid var(--navy);background:rgba(0,82,160,.04);box-sizing:border-box\"", + el_p("style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);line-height:1.8;font-style:italic\"", + ""We are deploying Neuron to make our people more capable, not to eliminate them. Reducing headcount is not a primary objective of this deployment. We commit to using this technology in a manner consistent with the welfare of our workforce, and we will notify Neuron if our intentions change in ways that materially contradict this commitment."" + ) + ) + + let benefits_list: String = el_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\"", + el_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") + + el_li("style=\"margin-bottom:0.4rem\"", "Membership in the Neuron Aligned Partner Network, a private community of organizations that have made the same commitment") + + el_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") + + el_li("style=\"margin-bottom:0.4rem\"", "Priority consideration in the enterprise roadmap - Aligned Partners are given more weight in feature prioritization and deployment planning") + + el_li("", "Direct access to Neuron leadership for roadmap input and partnership discussions") + ) + + el_div( + "style=\"margin-bottom:3rem;padding:clamp(1.25rem,4vw,2rem) clamp(1rem,4vw,2.25rem);border:1.5px solid rgba(0,82,160,.35);background:rgba(0,82,160,.03);box-sizing:border-box\"", + section_header + + et_p("Participation in the Neuron Aligned Partner Program is entirely voluntary. No enterprise customer is required to participate, and the standard enterprise relationship under this Agreement is not conditioned on it.") + + et_p("An organization that chooses to participate executes a Neuron Aligned Partner Addendum ("Partner Addendum"), a separate document supplementing this Agreement. In the Partner Addendum, Customer makes the following certification:") + + cert_quote + + el_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:") + + benefits_list + + et_p("The certification is self-attested and made in good faith. Neuron does not audit deployment usage to verify the commitment, but relies on the integrity of the partner's representation. If Neuron determines, based on credible evidence, that a partner's use of the platform is materially inconsistent with the certification, Neuron may revoke partner status with 30 days' notice and adjust pricing to standard enterprise rates at the next renewal.") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t3);line-height:1.8\"", + "To inquire about the Partner Program, contact enterprise@neurontechnologies.ai with subject line "Aligned Partner."" + ) + ) } fn enterprise_terms_body() -> String { - return {nav()} -
-
- ← Neuron -
-
-

Legal

-

Enterprise Agreement

-

Effective May 1, 2026  ·  Neuron, LLC

-
+ let back_link: String = el_div( + "style=\"margin-bottom:3rem\"", + el_a("/", "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\"", "← Neuron") + ) -{raw(section("1", "Parties and Scope", - p("This Enterprise Agreement ("Agreement") is between Neuron, LLC ("Neuron") and the organization entering into an enterprise relationship ("Customer"). It governs all enterprise deployments, including Team, Enterprise, and Private Cloud tiers.") - + p_last("This Agreement supplements the Neuron Terms of Service. In the event of conflict, this Agreement controls for enterprise use. The parties are bound by the Order Form executed at time of deployment, which specifies tier, seat count, term, and pricing.") -))} -{raw(section("2", "License Grant and Usage Rights", - p("Subject to the terms of this Agreement and timely payment of fees, Neuron grants Customer a limited, non-exclusive, non-transferable, non-sublicensable license to deploy and use the Neuron platform ("Software") solely for Customer's internal business purposes during the Term.") - + p("The license is scoped to the number of authorized seats, devices, or instances specified in the Order Form. Customer may not exceed the licensed scope without executing a seat expansion. Neuron will not invoice retroactively for inadvertent overage of fewer than 10% of contracted seats if Customer notifies Neuron and brings usage into compliance within 30 days.") - + 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.") -))} -{raw(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 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.") -))} -{raw(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.") - + p("Customer represents that it does not intend to use Neuron primarily as a tool to eliminate employee positions, reduce headcount through automation in ways that harm workers, or otherwise use the platform in ways inconsistent with the welfare of the people who work in Customer's organization.") - + p("Neuron reserves the right to decline, not renew, or terminate any enterprise agreement where Neuron determines, in its reasonable judgment, that the Customer's use of the platform is fundamentally misaligned with these principles. Termination under this section is subject to the notice and cure provisions of § 10.") - + p_last("We will not enter into agreements with organizations whose primary business model, as Neuron determines in good faith, depends on practices that systematically harm workers, small businesses, or communities. This is not a standard clause in most software agreements. We mean it.") -))} -{raw(section("5", "Service Levels and Support", - p("For cloud-hosted deployments, Neuron targets 99.9% monthly uptime, excluding scheduled maintenance windows (communicated at least 48 hours in advance) and circumstances outside Neuron's reasonable control. In the event Neuron fails to meet this target in a given calendar month, Customer may request a service credit equal to 5% of that month's fees for each full percentage point of availability below the target, up to a maximum of 30% of monthly fees. Credits are the sole and exclusive remedy for availability failures.") - + p("For on-premises and private cloud deployments, Customer is responsible for infrastructure availability. Neuron's SLA obligations apply only to software defects in the distributed build, not to Customer's infrastructure choices.") - + p_last("Support is provided by email at enterprise@neurontechnologies.ai. Neuron will acknowledge critical issues (complete service outage or data loss risk) within 4 business hours and provide a status update within 24 hours. Standard issues are acknowledged within 2 business days. Neuron does not guarantee resolution timelines for issues requiring platform changes.") -))} -{raw(section("6", "Security and Compliance", - p("Neuron implements security controls commensurate with enterprise software handling sensitive user data. These include: encryption in transit (TLS 1.2+) and at rest for cloud-hosted services; role-based access controls; audit logging at the infrastructure layer; and regular internal security reviews.") - + p("Neuron will pursue SOC 2 Type II certification and will provide Customer with the most recent available report upon request under a signed NDA. Until certification is achieved, Neuron will make available a written summary of security controls upon request.") - + p_last("Customer is responsible for: (a) maintaining the security of credentials and API keys used to access the platform; (b) configuring access controls for Customer's own users; (c) compliance with applicable law with respect to the data Customer chooses to input into the platform; and (d) conducting its own security evaluation appropriate to its risk profile before deployment in regulated environments.") -))} -{raw(section("7", "Confidentiality", - p("Each party ("Receiving Party") agrees to protect the other party's ("Disclosing Party") Confidential Information with the same degree of care it uses to protect its own confidential information, but no less than reasonable care. "Confidential Information" means any non-public information disclosed by the Disclosing Party that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and circumstances of disclosure.") - + p("Confidential Information does not include information that: (a) becomes publicly known through no breach by the Receiving Party; (b) was already known to the Receiving Party before disclosure; (c) is received from a third party without restriction; or (d) was independently developed by the Receiving Party without use of the Confidential Information.") - + p_last("These obligations survive termination of this Agreement for three years. Receiving Party may disclose Confidential Information to the extent required by law or court order, provided that Receiving Party gives Disclosing Party prompt written notice and cooperates with any effort to obtain a protective order.") -))} -{raw(section("8", "Intellectual Property", - p("Neuron retains all right, title, and interest in and to the Software, including all improvements, updates, and derivative works, and all intellectual property rights therein. No title to or ownership of the Software transfers to Customer under this Agreement.") - + p("Customer retains all right, title, and interest in and to Customer's data, including inputs, memorys, and outputs generated through Customer's use of the platform. Neuron does not claim ownership of Customer's outputs. Customer is responsible for evaluating the accuracy and appropriateness of outputs before relying on them.") - + p_last("This Agreement does not grant Customer any right to use Neuron's trademarks, trade names, or logos except as expressly authorized in writing. Neuron Aligned Partner certification (§ 14) includes a limited right to use the partner designation as specified in the Partner Addendum.") -))} -{raw(section("9", "Indemnification", - p("Neuron will defend Customer against third-party claims that the Software, as provided by Neuron and used in accordance with this Agreement, infringes a valid patent, copyright, or trademark, and will indemnify Customer for damages finally awarded in such a proceeding or agreed in settlement. This obligation does not apply to claims arising from: (a) Customer's modification of the Software; (b) Customer's combination of the Software with third-party products or data not provided by Neuron; or (c) Customer's use of the Software in violation of this Agreement.") - + p_last("Customer will defend Neuron against third-party claims arising from Customer's use of the platform in violation of applicable law, this Agreement, or the rights of third parties, and will indemnify Neuron for damages finally awarded or agreed in settlement. Each party must promptly notify the other of any claim for which indemnification may be sought and must cooperate reasonably in the defense.") -))} -{raw(section("10", "Term and Termination", - p("This Agreement begins on the Effective Date specified in the Order Form and continues for the initial term stated therein, typically twelve months. Unless either party provides written notice of non-renewal at least 30 days before the end of the then-current term, this Agreement automatically renews for successive one-year terms at the pricing in effect at renewal.") - + p("Either party may terminate this Agreement for material breach upon 30 days' written notice if the breach remains uncured at the end of that period. Neuron may terminate immediately upon written notice if Customer breaches § 2 (unauthorized use of the Software) or § 7 (confidentiality obligations).") - + p("Neuron may terminate this Agreement under § 4 (Values Alignment) with 60 days' written notice if Neuron determines in good faith that Customer's use of the platform is materially and persistently misaligned with the principles stated therein. Neuron will provide Customer the opportunity to respond and demonstrate alignment before termination takes effect.") - + p_last("Upon termination: (a) all licenses immediately terminate; (b) Customer must cease use of the Software; (c) each party will return or destroy the other's Confidential Information upon request; and (d) Neuron will make Customer's data available for export for 30 days, after which it will be destroyed. Sections 3 (data ownership and destruction), 7 (confidentiality), 8 (intellectual property), 9 (indemnification), 11 (limitation of liability), and 13 (governing law) survive termination.") -))} -{raw(section("11", "Limitation of Liability", - p_caps("NEURON'S TOTAL LIABILITY UNDER THIS AGREEMENT SHALL NOT EXCEED THE FEES PAID BY CUSTOMER IN THE TWELVE MONTHS PRECEDING THE CLAIM.") - + p_caps("NEITHER PARTY SHALL BE LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, EVEN IF ADVISED OF THEIR POSSIBILITY.") - + p_last("These limitations do not apply to: (a) Customer's payment obligations; (b) breaches of § 7 (confidentiality); (c) a party's indemnification obligations under § 9; or (d) a party's gross negligence or willful misconduct.") -))} -{raw(section("12", "Warranties and Disclaimers", - p("Neuron warrants that: (a) the Software will perform materially in accordance with its published documentation during the Term; (b) Neuron has the authority to enter into this Agreement and grant the licenses herein; and (c) to Neuron's knowledge, the Software does not knowingly infringe any third-party intellectual property rights.") - + p("Customer's exclusive remedy for a warranty breach under (a) is for Neuron to use commercially reasonable efforts to correct the non-conformity, or if correction is not commercially practicable within 30 days, to terminate the Agreement and receive a pro-rata refund of prepaid fees for the unused portion of the Term.") - + p_caps("EXCEPT AS EXPRESSLY SET FORTH IN THIS SECTION, THE SOFTWARE IS PROVIDED "AS IS." NEURON DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.") - + p_last("AI-generated outputs are probabilistic and may be inaccurate, incomplete, or inappropriate for specific contexts. Customer is responsible for reviewing outputs before relying on them for any consequential decision. Neuron does not warrant that outputs will be accurate, complete, or suitable for any particular purpose.") -))} -{raw(section("13", "Governing Law and Disputes", - p("This Agreement is governed by the laws of the State of Delaware, without regard to conflict of law principles.") - + 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.") -))} + let page_header: String = el_div( + "style=\"margin-bottom:4rem;border-bottom:1px solid var(--border);padding-bottom:3rem\"", + el_p("class=\"label\" style=\"margin-bottom:1rem\"", "Legal") + + el_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\"", "Enterprise Agreement") + + el_p("style=\"font-family:var(--body);font-size:0.875rem;color:var(--t3)\"", "Effective May 1, 2026  ·  Neuron, LLC") + ) - -
-
- § 14 -

Neuron Aligned Partner Program

-
+ let footer_links: String = el_div( + "style=\"margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border);display:flex;gap:2rem;flex-wrap:wrap\"", + el_a("/", "style=\"font-family:var(--body);font-size:0.8125rem;color:var(--navy);text-decoration:none\"", "← Home") + + el_a("/legal/terms", "style=\"font-family:var(--body);font-size:0.8125rem;color:var(--navy);text-decoration:none\"", "Consumer Terms →") + ) -

Participation in the Neuron Aligned Partner Program is entirely voluntary. No enterprise customer is required to participate, and the standard enterprise relationship under this Agreement is not conditioned on it.

- -

An organization that chooses to participate executes a Neuron Aligned Partner Addendum ("Partner Addendum"), a separate document supplementing this Agreement. In the Partner Addendum, Customer makes the following certification:

- -
-

"We are deploying Neuron to make our people more capable, not to eliminate them. Reducing headcount is not a primary objective of this deployment. We commit to using this technology in a manner consistent with the welfare of our workforce, and we will notify Neuron if our intentions change in ways that materially contradict this commitment."

-
- -

Partners who execute the Partner Addendum receive:

- - -

The certification is self-attested and made in good faith. Neuron does not audit deployment usage to verify the commitment, but relies on the integrity of the partner's representation. If Neuron determines, based on credible evidence, that a partner's use of the platform is materially inconsistent with the certification, Neuron may revoke partner status with 30 days' notice and adjust pricing to standard enterprise rates at the next renewal.

- -

To inquire about the Partner Program, contact enterprise@neurontechnologies.ai with subject line "Aligned Partner."

-
- -{raw(section("15", "General Provisions", - p("This Agreement, together with the Order Form and any addenda, constitutes the entire agreement between the parties with respect to its subject matter and supersedes all prior negotiations, representations, and agreements. Any amendment must be in writing and signed by authorized representatives of both parties.") - + p("If any provision of this Agreement is found unenforceable, it will be modified to the minimum extent necessary to make it enforceable, and the remaining provisions will continue in full force. Failure to enforce any provision is not a waiver of the right to enforce it later.") - + p("Neither party may assign this Agreement without the other's written consent, except that Neuron may assign to an acquirer of all or substantially all of its business or assets without consent, provided the acquirer assumes all obligations under this Agreement.") - + p_last("Notices must be in writing and sent to enterprise@neurontechnologies.ai for Neuron, or to the email address specified in the Order Form for Customer. Notices are effective on the day of confirmed receipt.") -))} - -
- ← Home - Consumer Terms → -
-
+ nav() + + el_div( + "style=\"max-width:720px;margin:0 auto;padding:6rem clamp(1rem,5vw,2.5rem) 8rem;box-sizing:border-box;overflow-wrap:break-word;word-break:break-word\"", + back_link + + page_header + + enterprise_terms_sections_1_4() + + enterprise_terms_sections_5_8() + + enterprise_terms_sections_9_15() + + enterprise_partner_section() + + footer_links + ) } diff --git a/src/environmental.el b/src/environmental.el index 074cf81..2deb14d 100644 --- a/src/environmental.el +++ b/src/environmental.el @@ -4,88 +4,110 @@ // Not greenwashing - a structural argument. The benefit follows from the // architecture; it wasn't engineered as a feature, but it's real. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_input(type_attr: String, attrs: String) -> String +extern fn el_br() -> String +extern fn el_script_src(src: String, defer_load: Bool) -> String + fn environmental() -> String { - return
-
+ let label_row: String = el_div( + "style=\"display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem\"", + el_div("class=\"navy-line-left\" style=\"width:3rem;flex-shrink:0\"", "") + + el_span("class=\"label reveal\" style=\"color:var(--navy-85)\"", "Environmental impact") + ) -
+ let calculator: String = el_div( + "class=\"reveal\" style=\"transition-delay:340ms;background:var(--card);border:1px solid rgba(0,82,160,.18);padding:2rem\"", + el_p("style=\"font-family:var(--body);font-size:0.7rem;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--navy);margin-bottom:1.25rem\"", "Savings calculator") + + el_p("style=\"font-family:var(--body);font-size:0.875rem;color:var(--t2);margin-bottom:1rem\"", + "If you spend " + + "$50" + + "/month on AI…" + ) + + el_input("range", "id=\"calc-slider\" min=\"10\" max=\"500\" step=\"10\" value=\"50\" style=\"width:100%;accent-color:var(--navy);margin-bottom:1.5rem\"") + + el_div( + "style=\"display:flex;align-items:baseline;gap:0.75rem;margin-bottom:0.375rem\"", + el_span("id=\"calc-savings\" style=\"font-family:var(--head);font-size:2.5rem;font-weight:600;color:var(--navy)\"", "$240") + + el_span("style=\"font-family:var(--body);font-size:0.7rem;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;color:var(--t3)\"", "saved per year") + ) + + el_p("style=\"font-family:var(--body);font-size:0.75rem;color:var(--t3)\"", "Based on estimated token reduction applied to your monthly spend.") + ) -
-
- - Environmental impact -
+ let left_col: String = el_div( + "", + label_row + + el_h2( + "class=\"display-lg reveal\" style=\"transition-delay:80ms;margin-bottom:1.5rem\"", + "Fewer tokens." + el_br() + el_span("class=\"gold\"", "Same work done.") + ) + + el_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\"", + "Persistent context means shorter, more targeted prompts on every call. Less computation. Lower cost. A smaller footprint. This isn't a setting you toggle - it's what the architecture does by default." + ) + + el_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\"", + "Every time you open ChatGPT and explain who you are again, that's computation that didn't need to happen. With Neuron, that context tax doesn't accumulate. Over months of use, the savings compound into a meaningful reduction in total compute - and a meaningful reduction in what you pay." + ) + + el_p("class=\"reveal\" style=\"transition-delay:280ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:2.5rem\"", + "This isn't a green marketing claim. It's a consequence of the design. The same architecture that makes Neuron better for you also makes it lighter on the planet." + ) + + calculator + + el_script_src("/js/environmental.js", true) + ) -

- Fewer tokens.
Same work done. -

+ let card1: String = el_div( + "class=\"reveal card-dark\" style=\"transition-delay:100ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,120,84,.40)\"", + el_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 - coming") + + el_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") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\"", + "The design: 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. This is where we're headed." + ) + ) -

- Persistent context means shorter, more targeted prompts on every call. Less computation. Lower cost. A smaller footprint. This isn't a setting you toggle - it's what the architecture does by default. -

+ let card2: String = el_div( + "class=\"reveal card-dark\" style=\"transition-delay:200ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,120,84,.40)\"", + el_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") + + el_p("style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\"", "On-device storage") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\"", + "Your context lives on your device in a purpose-built local storage layer. No cloud database servers running 24/7 to store and serve your conversations. No replication across availability zones. Just your device." + ) + ) -

- Every time you open ChatGPT and explain who you are again, that's computation that didn't need to happen. With Neuron, that context tax doesn't accumulate. Over months of use, the savings compound into a meaningful reduction in total compute - and a meaningful reduction in what you pay. -

+ let card3: String = el_div( + "class=\"reveal card-dark\" style=\"transition-delay:300ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,120,84,.40)\"", + el_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") + + el_p("style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\"", "No re-explaining. No wasted tokens.") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\"", + "Neuron surfaces exactly what's relevant for each conversation - no re-deriving who you are from long histories. Shorter, more targeted prompts. More with less." + ) + ) -

- This isn't a green marketing claim. It's a consequence of the design. The same architecture that makes Neuron better for you also makes it lighter on the planet. -

+ let honest: String = el_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\"", + el_p("style=\"font-family:var(--body);font-size:0.8125rem;font-weight:300;color:var(--t3);line-height:1.7\"", + "The honest picture:" + + " When you use Neuron with BYOK providers (OpenAI, Anthropic, Grok) 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." + ) + ) -
-

Savings calculator

-

If you spend $50/month on AI…

- -
- $240 - saved per year -
-

Based on estimated token reduction applied to your monthly spend.

-
+ let right_col: String = el_div( + "style=\"display:flex;flex-direction:column;gap:1.5rem;padding-top:1rem\"", + card1 + card2 + card3 + honest + ) - -
+ let grid: String = el_div( + "style=\"display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start\" class=\"env-grid\"", + left_col + right_col + ) -
- -
-

Local inference - coming

-

Your GPU, already powered on

-

- The design: 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. This is where we're headed. -

-
- -
-

No database server for your data

-

On-device storage

-

- Your context lives on your device in a purpose-built local storage layer. No cloud database servers running 24/7 to store and serve your conversations. No replication across availability zones. Just your device. -

-
- -
-

Persistent context = less recomputation

-

No re-explaining. No wasted tokens.

-

- Neuron surfaces exactly what's relevant for each conversation - no re-deriving who you are from long histories. Shorter, more targeted prompts. More with less. -

-
- -
-

- The honest picture: When you use Neuron with BYOK providers (OpenAI, Anthropic, Grok) 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. -

-
- -
-
- -
- -
+}" + + el_section( + "id=\"environmental\" aria-label=\"Environmental impact\" style=\"padding:8rem 2.5rem;background:var(--bg)\"", + el_div("class=\"container-lg\"", grid) + "" + ) } diff --git a/src/footer.el b/src/footer.el index cf2382d..6a4246b 100644 --- a/src/footer.el +++ b/src/footer.el @@ -1,34 +1,58 @@ // components/footer.el - Site footer. +extern fn el_footer(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_nav(attrs: String, children: String) -> String +extern fn el_img(src: String, alt: String, attrs: String) -> String + fn footer() -> String { - return + let container: String = el_div( + "class=\"container\"", + footer_inner + footer_bottom + ) + + el_footer("id=\"footer\" aria-label=\"Footer\"", container) } diff --git a/src/founding_badge.el b/src/founding_badge.el index 6d7f816..3d2bdb8 100644 --- a/src/founding_badge.el +++ b/src/founding_badge.el @@ -4,26 +4,32 @@ // "Neuron, LLC" footer. Matches the design picked from // /tmp/founding-badge-preview.html. +extern fn el_div(attrs: String, children: String) -> String +extern fn el_img(src: String, alt: String, attrs: String) -> String + fn founding_badge(member_number: Int) -> String { let num_str: String = int_to_str(member_number) let show_number: Bool = member_number > 0 - return
- Neuron -
Founding Member
- {#if show_number} -
#{num_str}
-
of 1,000
- {#else} -
Your number awaits
- {/if} -
-
Neuron, LLC
-
+ + let number_or_pending: String = if show_number { + el_div("class=\"founding-badge-num\"", "#" + num_str) + + el_div("class=\"founding-badge-of\"", "of 1,000") + } else { + el_div("class=\"founding-badge-pending\"", "Your number awaits") + } + + el_div( + "class=\"founding-badge\" aria-label=\"Founding Member badge\"", + el_img("/assets/brand/neuron-brain.png", "Neuron", "class=\"founding-badge-brain\" width=\"40\" height=\"40\"") + + el_div("class=\"founding-badge-eye\"", "Founding Member") + + number_or_pending + + el_div("class=\"founding-badge-line\"", "") + + el_div("class=\"founding-badge-name\"", "Neuron, LLC") + ) } fn founding_badge_css() -> String { - return +}" + "" } diff --git a/src/gallery.el b/src/gallery.el index 9f4d473..3a3600c 100644 --- a/src/gallery.el +++ b/src/gallery.el @@ -12,6 +12,200 @@ // anchors, which the HTML5 parser resolves via the adoption agency algorithm, // producing mismatched tags that break gallery-grid's closing tag and // pull sibling elements into the grid as spurious grid items. + +extern fn el_html_doc(lang: String, head_html: String, body_html: String) -> String +extern fn el_meta_charset(charset: String) -> String +extern fn el_meta(name: String, content: String) -> String +extern fn el_link_stylesheet(href: String) -> String +extern fn el_title(text: String) -> String +extern fn el_script_src(src: String, defer_load: Bool) -> String +extern fn el_script_inline(js: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_nav(attrs: String, children: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String +extern fn el_img(src: String, alt: String, attrs: String) -> String +extern fn el_button(attrs: String, label: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_h1(attrs: String, text: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_input(type_attr: String, attrs: String) -> String +extern fn el_br() -> String + +fn gallery_css_base() -> String { + "*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } +:root { + --bg: #FAFAF8; --bg2: #F0F0EC; --card: #FFFFFF; + --navy: #0052A0; --navy-65: rgba(0,82,160,.65); --navy-85: rgba(0,82,160,.85); + --t1: #0D0D14; --t2: #3A3A4A; --t3: #6B6B7E; + --border: rgba(0,0,0,.07); --border2: rgba(0,0,0,.13); + --up: #2E7D32; --down: #C62828; + --head: 'Playfair Display', Georgia, serif; + --body: 'IBM Plex Sans', system-ui, sans-serif; +} +html { scroll-behavior: smooth; } +html, body { background: var(--bg); color: var(--t1); font-family: var(--body); -webkit-font-smoothing: antialiased; } +body::before { + content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 0; + background-image: linear-gradient(rgba(0,0,0,.022) 1px, transparent 1px), + linear-gradient(90deg, rgba(0,0,0,.022) 1px, transparent 1px); + background-size: 48px 48px; +} +.label { font-family: var(--body); font-size: .75rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--navy-65); } +.display-lg { font-family: var(--head); font-size: clamp(2rem,4vw,3.25rem); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; color: var(--t1); } +.btn-primary { display: inline-flex; align-items: center; gap: .75rem; font-family: var(--body); font-size: .75rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; text-decoration: none; color: #fff; background: var(--navy); padding: 1rem 2rem; border: none; cursor: pointer; transition: background 300ms; } +.btn-primary:hover { background: #0078D4; } +.btn-ghost { display: inline-flex; align-items: center; gap: .75rem; font-family: var(--body); font-size: .75rem; font-weight: 400; letter-spacing: .15em; text-transform: uppercase; text-decoration: none; color: var(--t2); background: transparent; padding: 1rem 2rem; border: 1px solid var(--border2); cursor: pointer; transition: border-color 300ms, color 300ms; } +.btn-ghost:hover { border-color: rgba(0,82,160,.35); color: var(--t1); }" +} + +fn gallery_css_nav() -> String { + "#nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; transition: background 500ms, border-color 500ms; } +#nav.scrolled { background: rgba(250,250,248,.95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); } +.nav-inner { max-width: 1280px; margin: 0 auto; padding: 0 2rem; height: 4rem; display: flex; align-items: center; justify-content: space-between; position: relative; } +.nav-logo img { height: 2rem; width: auto; display: block; } +.nav-links { display: flex; align-items: center; gap: 1.25rem; flex-wrap: nowrap; } +.nav-link { font-family: var(--body); font-size: .675rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--t3); text-decoration: none; white-space: nowrap; transition: color 200ms; } +.nav-link:hover { color: var(--t1); } +.nav-dropdown { position: relative; display: flex; align-items: center; } +.nav-dropdown-btn { background: none; border: none; cursor: pointer; padding: 0; font-family: var(--body); font-size: .675rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--t3); transition: color 200ms; white-space: nowrap; } +.nav-dropdown-btn:hover { color: var(--t1); } +.nav-dropdown-menu { display: none; position: absolute; top: calc(100% + .75rem); left: 50%; transform: translateX(-50%); background: #fff; border: 1px solid var(--border2); box-shadow: 0 8px 32px rgba(0,0,0,.10); min-width: 160px; flex-direction: column; z-index: 200; padding: .375rem 0; } +.nav-dropdown.open .nav-dropdown-menu { display: flex; } +.nav-dropdown-item { font-family: var(--body); font-size: .8125rem; font-weight: 400; color: var(--t2); text-decoration: none; padding: .5rem 1.25rem; transition: background 150ms, color 150ms; white-space: nowrap; } +.nav-dropdown-item:hover { background: var(--bg2); color: var(--t1); } +.nav-cta { font-family: var(--body); font-size: .675rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: #fff; background: var(--navy); text-decoration: none; padding: .575rem 1.1rem; white-space: nowrap; box-shadow: 0 2px 12px rgba(0,82,160,.20); transition: background 300ms; } +.nav-cta:hover { background: #0078D4; } +.nav-hamburger { display: none; flex-direction: column; justify-content: center; gap: 5px; background: none; border: none; cursor: pointer; padding: 6px 4px; z-index: 101; -webkit-tap-highlight-color: transparent; } +.nav-hamburger span { display: block; width: 22px; height: 2px; background: var(--t1); border-radius: 1px; transition: transform 280ms ease, opacity 200ms ease; transform-origin: center; } +.nav-hamburger[aria-expanded=\"true\"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); } +.nav-hamburger[aria-expanded=\"true\"] span:nth-child(2) { opacity: 0; transform: scaleX(0); } +.nav-hamburger[aria-expanded=\"true\"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } +.nav-mobile { display: none; position: absolute; top: 4rem; left: 0; right: 0; background: rgba(250,250,248,.98); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid var(--border); padding: .5rem 0 1.5rem; flex-direction: column; box-shadow: 0 8px 32px rgba(0,0,0,.08); } +.nav-mobile.open { display: flex; } +.nav-mobile-link { display: block; padding: .875rem 2rem; font-family: var(--body); font-size: .75rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--t2); text-decoration: none; border-bottom: 1px solid rgba(0,0,0,.05); transition: color 150ms, background 150ms; } +.nav-mobile-link:last-child { border-bottom: none; } +.nav-mobile-link:hover { color: var(--t1); background: rgba(0,82,160,.03); } +.nav-mobile-cta { display: block; margin: 1rem 2rem 0; padding: .8rem 1.5rem; text-align: center; font-family: var(--body); font-size: .75rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: #fff; background: var(--navy); text-decoration: none; } +@media (max-width: 1060px) { .nav-links { display: none; } .nav-hamburger { display: flex; } } +@media (min-width: 1061px) { .nav-mobile { display: none !important; } .nav-hamburger { display: none !important; } }" +} + +fn gallery_css_gallery() -> String { + ".gallery-wrap { max-width: 1100px; margin: 0 auto; padding: 7rem 2.5rem 5rem; position: relative; z-index: 1; } +.gallery-header { margin-bottom: 3rem; } +.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } +@media (max-width: 900px) { .gallery-grid { grid-template-columns: 1fr 1fr; } } +@media (max-width: 600px) { .gallery-grid { grid-template-columns: 1fr; } } +.gal-card { background: var(--card); border: 1px solid var(--border); padding: 1.5rem; display: flex; flex-direction: column; gap: .875rem; transition: border-color .15s, box-shadow .15s; } +.gal-card:hover { border-color: rgba(0,82,160,.25); box-shadow: 0 4px 20px rgba(0,82,160,.07); } +.gal-link { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: .875rem; flex: 1; } +.gal-q { font-family: var(--body); font-weight: 500; font-size: .875rem; color: var(--navy); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } +.gal-a { font-family: var(--body); font-weight: 300; font-size: .8125rem; color: var(--t2); line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; flex: 1; max-height: 11rem; } +.gal-a p { margin: 0; } +.gal-a p + p { margin-top: .35rem; } +.gal-a ol, .gal-a ul { padding-left: 1.25rem; margin: .25rem 0; } +.gal-a li + li { margin-top: .15rem; } +.gal-a strong { font-weight: 600; color: var(--t1); } +.gal-a em { font-style: italic; } +.gal-a code { background: rgba(0,0,0,0.05); padding: .1em .3em; border-radius: 3px; font-family: ui-monospace, 'IBM Plex Mono', Menlo, monospace; font-size: .85em; } +.gal-a pre { background: var(--bg2); padding: .5rem; overflow-x: auto; font-size: .75rem; margin: .4rem 0; border-radius: 3px; } +.gal-a pre code { background: none; padding: 0; } +.gal-a a { color: var(--navy); text-decoration: underline; } +.gal-a h1, .gal-a h2, .gal-a h3, .gal-a h4 { font-size: 1em; font-weight: 600; margin: .3rem 0; color: var(--t1); } +.gal-a blockquote { border-left: 2px solid var(--border2); padding-left: .5rem; color: var(--t2); margin: .3rem 0; } +.gal-a img { max-width: 100%; height: auto; } +.gal-meta { display: flex; justify-content: space-between; align-items: center; font-family: var(--body); font-size: .65rem; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--t3); margin-top: auto; padding-top: .75rem; border-top: 1px solid var(--border); } +.gal-date { font-size: .65rem; color: var(--t3); } +.vote-controls { display: inline-flex; align-items: center; gap: .35rem; } +.vote-btn { background: transparent; border: 1px solid var(--border2); color: var(--t3); cursor: pointer; padding: .2rem .45rem; font-size: .7rem; line-height: 1; transition: all .15s; -webkit-tap-highlight-color: transparent; } +.vote-btn:hover:not(:disabled) { color: var(--navy); border-color: rgba(0,82,160,.35); background: rgba(0,82,160,.04); } +.vote-btn:focus-visible { outline: 2px solid var(--navy); outline-offset: 1px; } +.vote-btn:disabled { opacity: .55; cursor: not-allowed; } +.vote-btn.is-active.vote-up { background: rgba(46,125,50,.10); color: var(--up); border-color: rgba(46,125,50,.45); } +.vote-btn.is-active.vote-down { background: rgba(198,40,40,.10); color: var(--down); border-color: rgba(198,40,40,.45); } +.vote-btn.is-loading { opacity: .55; cursor: wait; } +.vote-score { font-size: .8rem; font-weight: 500; color: var(--t1); min-width: 1.5rem; text-align: center; font-variant-numeric: tabular-nums; } +.gallery-controls { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; } +.gallery-search { flex: 1; min-width: 200px; font-family: var(--body); font-size: .875rem; font-weight: 300; color: var(--t1); background: #fff; border: 1px solid var(--border2); padding: .625rem 1rem; outline: none; transition: border-color .2s; } +.gallery-search:focus { border-color: var(--navy); } +.gallery-search::placeholder { color: var(--t3); } +.sort-btn { font-family: var(--body); font-size: .7rem; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--t3); background: none; border: 1px solid var(--border2); padding: .5rem 1rem; cursor: pointer; transition: all .15s; } +.sort-btn:hover, .sort-btn.active { color: var(--navy); border-color: rgba(0,82,160,.3); background: rgba(0,82,160,.03); } +.gallery-empty { grid-column: 1/-1; padding: 4rem 0; text-align: center; } +.gal-card.hidden { display: none; }" +} + +fn gallery_css_modal() -> String { + ".signin-modal { position: fixed; inset: 0; background: rgba(13,13,20,.55); display: none; align-items: center; justify-content: center; z-index: 1000; padding: 1rem; } +.signin-modal.open { display: flex; } +.signin-modal-card { background: #fff; border: 1px solid var(--border2); padding: 2rem; max-width: 22rem; width: 100%; box-shadow: 0 16px 48px rgba(0,0,0,.18); } +.signin-modal h2 { font-family: var(--head); font-size: 1.4rem; font-weight: 600; color: var(--t1); margin-bottom: .5rem; } +.signin-modal p { font-family: var(--body); font-size: .85rem; font-weight: 300; color: var(--t2); line-height: 1.6; margin-bottom: 1.25rem; } +.signin-modal input { width: 100%; box-sizing: border-box; font-family: var(--body); font-size: .875rem; font-weight: 300; color: var(--t1); background: #fff; border: 1px solid var(--border2); padding: .75rem 1rem; outline: none; transition: border-color .2s; margin-bottom: .75rem; } +.signin-modal input:focus { border-color: var(--navy); } +.signin-modal-actions { display: flex; gap: .5rem; justify-content: space-between; align-items: center; } +.signin-modal-msg { font-size: .8rem; color: var(--t2); margin-top: .75rem; min-height: 1rem; } +.signin-modal .btn-primary { padding: .7rem 1.25rem; font-size: .7rem; } +.signin-modal-cancel { background: none; border: none; color: var(--t3); cursor: pointer; font-family: var(--body); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; padding: .7rem .5rem; } +.signin-modal-cancel:hover { color: var(--t1); }" +} + +fn gallery_nav_html() -> String { + let logo_img: String = el_img( + "/assets/brand/neuron-wordmark-on-light.png", + "Neuron", + "srcset=\"/assets/brand/neuron-wordmark-on-light@2x.png 2x\" height=\"28\"" + ) + let logo: String = el_a("/", "class=\"nav-logo\" aria-label=\"Neuron home\"", logo_img) + + let dropdown_menu: String = el_div( + "class=\"nav-dropdown-menu\"", + el_a("/#mission", "class=\"nav-dropdown-item\"", "Our mission") + + el_a("/#safety", "class=\"nav-dropdown-item\"", "Safety") + + el_a("/#environmental", "class=\"nav-dropdown-item\"", "Environment") + ) + let dropdown: String = el_div( + "class=\"nav-dropdown\"", + el_button("class=\"nav-link nav-dropdown-btn\" aria-haspopup=\"true\" aria-expanded=\"false\"", "Mission ▾") + + dropdown_menu + ) + + let nav_links: String = el_div( + "class=\"nav-links\"", + el_a("/#how-it-works", "class=\"nav-link\"", "How it works") + + dropdown + + el_a("/#pricing", "class=\"nav-link\"", "Pricing") + + el_a("/#marketplace", "class=\"nav-link\"", "Marketplace") + + el_a("/#enterprise", "class=\"nav-link\"", "Enterprise") + + el_a("/about", "class=\"nav-link\"", "About") + + el_a("/said", "class=\"nav-link\"", "Gallery") + + el_a("/account", "class=\"nav-link\"", "Account") + + el_a("/#pricing", "class=\"nav-cta\"", "Get Access") + ) + + let hamburger: String = el_button( + "class=\"nav-hamburger\" id=\"nav-hamburger\" aria-label=\"Open navigation\" aria-expanded=\"false\" aria-controls=\"nav-mobile\"", + el_span("", "") + el_span("", "") + el_span("", "") + ) + + let nav_mobile: String = el_div( + "class=\"nav-mobile\" id=\"nav-mobile\" role=\"navigation\" aria-label=\"Mobile navigation\"", + el_a("/#how-it-works", "class=\"nav-mobile-link\"", "How it works") + + el_a("/#mission", "class=\"nav-mobile-link\"", "Mission") + + el_a("/#safety", "class=\"nav-mobile-link\" style=\"padding-left:1.75rem;font-size:.8rem;color:var(--t3)\"", "- Safety") + + el_a("/#environmental", "class=\"nav-mobile-link\" style=\"padding-left:1.75rem;font-size:.8rem;color:var(--t3)\"", "- Environment") + + el_a("/#pricing", "class=\"nav-mobile-link\"", "Pricing") + + el_a("/#enterprise", "class=\"nav-mobile-link\"", "Enterprise") + + el_a("/about", "class=\"nav-mobile-link\"", "About") + + el_a("/said", "class=\"nav-mobile-link\"", "Gallery") + + el_a("/account", "class=\"nav-mobile-link\"", "Account") + + el_a("/#pricing", "class=\"nav-mobile-cta\"", "Get Access") + ) + + el_nav("id=\"nav\"", el_div("class=\"nav-inner\"", logo + nav_links + hamburger + nav_mobile)) +} + fn gallery_page(cards_json: String, supabase_url: String, supabase_anon_key: String) -> String { // Moved from module-level to avoid duplicate main() when linked with other modules. let gallery_share_allowlist: String = "{\"p\":[],\"br\":[],\"strong\":[],\"em\":[],\"u\":[],\"s\":[],\"code\":[],\"pre\":[],\"ul\":[],\"ol\":[],\"li\":[],\"h1\":[],\"h2\":[],\"h3\":[],\"h4\":[],\"blockquote\":[]}" @@ -44,20 +238,20 @@ fn gallery_page(cards_json: String, supabase_url: String, supabase_anon_key: Str } let ts_raw: String = json_get(card, "created_at") let ts_short: String = str_slice(ts_raw, 0, 10) - let card_html: String = "
- -
" + q_html + "
-
" + a_html + "
-
-
-
- - " + score + " - -
- " + ts_short + " · Read ↗ -
-
" + let card_html: String = "
" + + "" + + "
" + q_html + "
" + + "
" + a_html + "
" + + "
" + + "
" + + "
" + + "" + + "" + score + "" + + "" + + "
" + + "" + ts_short + " · Read ↗" + + "
" + + "
" let cards_html = cards_html + card_html let i = i + 1 } @@ -65,217 +259,78 @@ fn gallery_page(cards_json: String, supabase_url: String, supabase_anon_key: Str "

Nothing yet

Nothing shared yet.

" } else { "" } - return - - - - -Things Neuron Said - - - - - - - - - - - - - - - - - - - - - + let all_css: String = gallery_css_base() + gallery_css_nav() + gallery_css_gallery() + gallery_css_modal() + let style_block: String = "" + + let head_html: String = + el_meta_charset("UTF-8") + + "" + + el_title("Things Neuron Said") + + el_meta("description", "Real conversations with Neuron, voted up by users.") + + "" + + "" + + "" + + "" + + style_block + + let sort_controls: String = el_div( + "style=\"display:flex;gap:.5rem;flex-shrink:0\"", + el_button("class=\"sort-btn active\" id=\"sort-top\" onclick=\"setSort('top',this)\"", "Top") + + el_button("class=\"sort-btn\" id=\"sort-new\" onclick=\"setSort('new',this)\"", "Newest") + ) + let gallery_controls: String = el_div( + "class=\"gallery-controls\"", + el_input("search", "id=\"gal-search\" class=\"gallery-search\" placeholder=\"Search conversations...\" autocomplete=\"off\"") + + sort_controls + ) + + let no_results: String = el_div( + "id=\"no-results\" style=\"display:none;padding:3rem 0;text-align:center\"", + el_p("style=\"font-family:var(--body);font-weight:300;color:var(--t3)\"", "No conversations match that search.") + ) + + let gallery_header: String = el_div( + "class=\"gallery-header\"", + el_p("class=\"label\" style=\"margin-bottom:1rem\"", "Things Neuron Said") + + el_h1("class=\"display-lg\" style=\"margin-bottom:1rem\"", "Real conversations." + el_br() + "No curation.") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:.9375rem;color:var(--t2);line-height:1.75;max-width:36rem\"", + "People chatted with Neuron and shared the exchanges that mattered. Voted up by readers. The best ones rise." + ) + ) + + let gallery_grid: String = el_div("class=\"gallery-grid\" id=\"gallery-grid\"", cards_html + empty_html) + + let gallery_wrap: String = el_div( + "class=\"gallery-wrap\"", + gallery_header + gallery_controls + gallery_grid + no_results + + el_div("style=\"margin-top:3rem\"", el_a("/", "class=\"btn-ghost\"", "← Back to site")) + ) + + let signin_modal: String = el_div( + "class=\"signin-modal\" id=\"signin-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"signin-title\"", + el_div( + "class=\"signin-modal-card\"", + el_h2("id=\"signin-title\"", "Sign in to vote") + + el_p("", "We will email you a sign-in link. No password needed.") + + el_input("email", "id=\"signin-email\" placeholder=\"your@email.com\" autocomplete=\"email\"") + + el_div( + "class=\"signin-modal-actions\"", + el_button("type=\"button\" class=\"signin-modal-cancel\" id=\"signin-cancel\"", "Cancel") + + el_button("type=\"button\" class=\"btn-primary\" id=\"signin-send\"", "Send link") + ) + + el_p("class=\"signin-modal-msg\" id=\"signin-msg\"", "") + ) + ) + + let cfg_js: String = "window.NEURON_CFG=window.NEURON_CFG||{};window.NEURON_CFG.supabase_url=\"" + supabase_url + "\";window.NEURON_CFG.supabase_anon_key=\"" + supabase_anon_key + "\";" + + let body_html: String = + gallery_nav_html() + + gallery_wrap + + signin_modal + + "" + + el_script_inline(cfg_js) + + el_script_src("/js/gallery.js", true) + + el_html_doc("en", head_html, body_html) } diff --git a/src/hero.el b/src/hero.el index bc38df1..ea51d69 100644 --- a/src/hero.el +++ b/src/hero.el @@ -4,34 +4,52 @@ // Glow orbs are pure CSS absolute-positioned divs. // Entrance animations are CSS keyframes with class-based delays. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_h1(attrs: String, text: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String + fn hero() -> String { - return
- - + let glows: String = + el_div("class=\"glow-tl\" aria-hidden=\"true\"", "") + + el_div("class=\"glow-br\" aria-hidden=\"true\"", "") -

One builder. Patented. No permission.

+ let label: String = el_p( + "class=\"label hero-label animate-up-1\"", + "One builder. Patented. No permission." + ) -

- Every AI resets when you close the tab. - I built the one that doesn't. -

+ let headline_em: String = el_span("class=\"gold\" style=\"font-style:normal\"", + "I built the one that doesn't." + ) + let headline: String = el_h1( + "class=\"display-xl hero-headline animate-up-2\"", + "Every AI resets when you close the tab. " + headline_em + ) -

- Runs on your machine. Remembers everything. Priced below ChatGPT on day one. -

+ let sub: String = el_p( + "class=\"hero-sub animate-up-3\"", + "Runs on your machine. Remembers everything. Priced below ChatGPT on day one." + ) -
- - Preorder - - - See how it works - -
+ let cta_primary: String = el_a( + "#pricing", + "class=\"btn-primary\"", + "Preorder " + el_span("", "→") + ) + let cta_ghost: String = el_a( + "#how-it-works", + "class=\"btn-ghost\"", + "See how it works" + ) + let ctas: String = el_div("class=\"hero-ctas animate-up-5\"", cta_primary + cta_ghost) - -
+ let scroll_inner: String = + el_span("", "Scroll") + + el_div("class=\"hero-scroll-line\"", "") + let scroll: String = el_div("class=\"hero-scroll\" aria-hidden=\"true\"", scroll_inner) + + el_section("id=\"hero\" aria-label=\"Hero\"", glows + label + headline + sub + ctas + scroll) } diff --git a/src/how_it_works.el b/src/how_it_works.el index cd91c69..92f1b8a 100644 --- a/src/how_it_works.el +++ b/src/how_it_works.el @@ -1,52 +1,65 @@ // components/how_it_works.el - "Three moments. Permanent context." steps. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_h3(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_br() -> String + fn how_it_works() -> String { - return
-
+ let header: String = el_div( + "class=\"hiw-header\"", + el_div("class=\"navy-line\" style=\"margin-bottom:5rem\"", "") + + el_div( + "class=\"hiw-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0\"", "") + + el_span("class=\"label\"", "How it works") + ) + + el_h2( + "class=\"display-lg hiw-headline reveal\" style=\"transition-delay:80ms\"", + "Three moments." + el_br() + el_span("class=\"gold\"", "Permanent context.") + ) + ) -
- -
- - How it works -
-

- Three moments.
- Permanent context. -

-
+ let step1: String = el_div( + "class=\"reveal\"", + el_div( + "class=\"step-circle-row\"", + el_div("class=\"step-circle\"", el_span("class=\"step-num\"", "01")) + + el_span("class=\"step-aside\"", "5 minutes") + ) + + el_h3("class=\"display-md step-title\"", "Create your account") + + el_p("class=\"step-body\"", "Sign up once. Your account links your license key to your identity - that's what keeps your memory yours and nobody else's. Then install with a single command. Runs locally. No cloud sync, no permissions you didn't grant.") + ) -
+ let step2: String = el_div( + "class=\"reveal\" style=\"transition-delay:180ms\"", + el_div( + "class=\"step-circle-row\"", + el_div("class=\"step-circle\"", el_span("class=\"step-num\"", "02")) + + el_span("class=\"step-aside\"", "Just once") + ) + + el_h3("class=\"display-md step-title\"", "Your first session") + + el_p("class=\"step-body\"", "Introduce yourself once. Neuron builds a model of your work, your preferences, and your context from the first conversation.") + ) -
-
-
01
- 5 minutes -
-

Create your account

-

Sign up once. Your account links your license key to your identity - that's what keeps your memory yours and nobody else's. Then install with a single command. Runs locally. No cloud sync, no permissions you didn't grant.

-
+ let step3: String = el_div( + "class=\"reveal\" style=\"transition-delay:360ms\"", + el_div( + "class=\"step-circle-row\"", + el_div("class=\"step-circle\"", el_span("class=\"step-num\"", "03")) + + el_span("class=\"step-aside\"", "Every session") + ) + + el_h3("class=\"display-md step-title\"", "Never start over") + + el_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.") + ) -
-
-
02
- Just once -
-

Your first session

-

Introduce yourself once. Neuron builds a model of your work, your preferences, and your context from the first conversation.

-
+ let steps_grid: String = el_div("class=\"steps-grid\"", step1 + step2 + step3) -
-
-
03
- Every session -
-

Never start over

-

Open a new session days or months later. Neuron remembers. Every project, every decision, every thread - exactly where you left it.

-
- -
- -
-
+ el_section( + "id=\"how-it-works\" aria-label=\"How it works\"", + el_div("class=\"container\"", header + steps_grid) + ) } diff --git a/src/inference.el b/src/inference.el index 58ae645..ac30e8a 100644 --- a/src/inference.el +++ b/src/inference.el @@ -1,59 +1,79 @@ // components/inference.el - Neuron inference section. // "My model. My infrastructure. Cheaper than theirs." +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String + fn inference() -> String { - return
-
-
+ let label_row: String = el_div( + "class=\"inference-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:3rem;flex-shrink:0\"", "") + + el_span("class=\"label\"", "Neuron inference - Q3 2026") + ) -
-
- - Neuron inference - Q3 2026 -
-

- My model. My infrastructure. - Targeting Q3 2026. -

-

- Four companies control nearly all frontier AI inference today. Every query you send strengthens their position - and their pricing power over you. That changes in Q3 2026 - sooner if we can. -

-

- Neuron will be 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 will run on Soma, our own inference infrastructure. Priced below OpenAI, Anthropic, and Google. Not as a loss leader. As a permanent competitive position. -

-

- Until then: bring your own API keys - Anthropic, OpenAI, whoever. When Neuron Inference launches, it will be cheaper, faster, and purpose-built for Neuron. You can switch whenever you want. -

-

- 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. -

-
+ let headline: String = el_h2( + "class=\"display-lg inference-headline reveal\" style=\"transition-delay:80ms\"", + "My model. My infrastructure." + + el_span("class=\"gold\"", " Targeting Q3 2026.") + ) -
-
-
- 4 - Companies control frontier inference -
-

OpenAI, Google, Anthropic, Meta. Nearly every AI query flows through them. We're building the exit ramp.

-
-
-
- Neuron - The model - Q3 2026 -
-

A model built for Neuron specifically - not a generic wrapper. Your full context, years of accumulated intelligence, purpose-built inference. The model is the floor. Neuron is the ceiling.

-
-
-
- < theirs - Priced below the incumbents -
-

Below OpenAI pricing at launch. Below Anthropic. Below Google. Metered - you pay for what you use. And cheaper than any of them on every tier.

-
-
+ let body_col: String = el_div( + "", + label_row + + headline + + el_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 in Q3 2026 - sooner if we can." + ) + + el_p("class=\"inference-body reveal\" style=\"transition-delay:240ms\"", + "Neuron will be 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 will run on Soma, our own inference infrastructure. Priced below OpenAI, Anthropic, and Google. Not as a loss leader. As a permanent competitive position." + ) + + el_p("class=\"inference-body reveal\" style=\"transition-delay:320ms\"", + "Until then: bring your own API keys - Anthropic, OpenAI, whoever. When Neuron Inference launches, it will be cheaper, faster, and purpose-built for Neuron. You can switch whenever you want." + ) + + el_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." + ) + ) -
-
-
+ let stat1: String = el_div( + "class=\"stat-row reveal\"", + el_div( + "class=\"stat-row-head\"", + el_span("class=\"stat-num\"", "4") + + el_span("class=\"stat-label\"", "Companies control frontier inference") + ) + + el_p("class=\"stat-body\"", "OpenAI, Google, Anthropic, Meta. Nearly every AI query flows through them. We're building the exit ramp.") + ) + + let stat2: String = el_div( + "class=\"stat-row reveal\" style=\"transition-delay:120ms\"", + el_div( + "class=\"stat-row-head\"", + el_span("class=\"stat-num\"", "Neuron") + + el_span("class=\"stat-label\"", "The model - Q3 2026") + ) + + el_p("class=\"stat-body\"", "A model built for Neuron specifically - not a generic wrapper. Your full context, years of accumulated intelligence, purpose-built inference. The model is the floor. Neuron is the ceiling.") + ) + + let stat3: String = el_div( + "class=\"stat-row reveal\" style=\"transition-delay:240ms\"", + el_div( + "class=\"stat-row-head\"", + el_span("class=\"stat-num\"", "< theirs") + + el_span("class=\"stat-label\"", "Priced below the incumbents") + ) + + el_p("class=\"stat-body\"", "Below OpenAI pricing at launch. Below Anthropic. Below Google. Metered - you pay for what you use. And cheaper than any of them on every tier.") + ) + + let stats_col: String = el_div("class=\"inference-stats\"", stat1 + stat2 + stat3) + + let grid: String = el_div("class=\"inference-grid\"", body_col + stats_col) + + el_section( + "id=\"inference\" aria-label=\"Neuron inference\"", + el_div("class=\"container\"", grid) + ) } diff --git a/src/local_first.el b/src/local_first.el index 48b8d6e..674740a 100644 --- a/src/local_first.el +++ b/src/local_first.el @@ -1,81 +1,94 @@ // components/local_first.el - Privacy principles / local-first manifesto. // Left: manifesto text. Right: six sticky principles. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_strong(children: String) -> String + fn local_first() -> String { - return
-
+ let label_row: String = el_div( + "class=\"lf-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:3rem;flex-shrink:0\"", "") + + el_span("class=\"label\" style=\"color:var(--navy-85)\"", "Local first") + ) -
- - Local first -
+ let manifesto_closer: String = el_div( + "class=\"lf-manifesto-closer reveal\" style=\"transition-delay:600ms\"", + el_p("", + "Neuron is a direct rejection of that model. It runs on your machine. " + + el_strong("Your memory never leaves.") + + " 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." + ) + ) -
+ let left_col: String = el_div( + "", + el_h2("class=\"display-lg lf-headline reveal\"", "You are not the product.") + + el_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." + ) + + el_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." + ) + + el_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." + ) + + el_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." + ) + + manifesto_closer + ) -
-

You are not the product.

+ let principle1: String = el_div( + "class=\"lf-principle reveal\"", + el_p("class=\"lf-principle-label\"", "Your machine. Full stop.") + + el_p("class=\"lf-principle-body\"", "Neuron runs on your hardware. The memory, the agent loop, every conversation - none of it leaves your machine. Not to my servers. Not to anyone's.") + ) + let principle2: String = el_div( + "class=\"lf-principle reveal\" style=\"transition-delay:120ms\"", + el_p("class=\"lf-principle-label\"", "No training on your data.") + + el_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.") + ) + let principle3: String = el_div( + "class=\"lf-principle reveal\" style=\"transition-delay:240ms\"", + el_p("class=\"lf-principle-label\"", "No ads. Ever.") + + el_p("class=\"lf-principle-body\"", "Not on the free tier. Not on paid. Not in any future version. Ads require surveillance. Surveillance requires your data. I'm not building that.") + ) + let principle4: String = el_div( + "class=\"lf-principle reveal\" style=\"transition-delay:360ms\"", + el_p("class=\"lf-principle-label\"", "No telemetry for local use.") + + el_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.") + ) + let principle5: String = el_div( + "class=\"lf-principle reveal\" style=\"transition-delay:480ms\"", + el_p("class=\"lf-principle-label\"", "Nothing to breach.") + + el_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.") + ) + let principle6: String = el_div( + "class=\"lf-principle reveal\" style=\"transition-delay:600ms\"", + el_p("class=\"lf-principle-label\"", "Unreadable even if taken.") + + el_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.") + ) -

- 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. -

-

- 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. -

-

- 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. -

-

- 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. -

-
-

- Neuron is a direct rejection of that model. It runs on your machine. Your memory never leaves. 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. -

-
-
+ let right_col: String = el_div( + "class=\"lf-principles\"", + principle1 + principle2 + principle3 + principle4 + principle5 + principle6 + ) -
+ let grid: String = el_div("class=\"lf-grid\"", left_col + right_col) -
-

Your machine. Full stop.

-

Neuron runs on your hardware. The memory, the agent loop, every conversation - none of it leaves your machine. Not to my servers. Not to anyone's.

-
+ let callout: String = el_div( + "class=\"lf-callout reveal\"", + el_p("class=\"lf-callout-h\"", "The industry remembers you for them.") + + el_p("class=\"lf-callout-h2\"", "Neuron remembers you for you.") + + el_p("class=\"lf-callout-sub\"", "Local-first isn't a feature. It's a commitment.") + ) -
-

No training on your data.

-

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.

-
- -
-

No ads. Ever.

-

Not on the free tier. Not on paid. Not in any future version. Ads require surveillance. Surveillance requires your data. I'm not building that.

-
- -
-

No telemetry for local use.

-

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.

-
- -
-

Nothing to breach.

-

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.

-
- -
-

Unreadable even if taken.

-

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.

-
- -
- -
- -
-

The industry remembers you for them.

-

Neuron remembers you for you.

-

Local-first isn't a feature. It's a commitment.

-
- -
-
+ el_section( + "id=\"local-first\" aria-label=\"Local-first\"", + el_div("class=\"container-lg\"", label_row + grid + callout) + ) } diff --git a/src/marketplace.el b/src/marketplace.el index 207a5ee..91cdba7 100644 --- a/src/marketplace.el +++ b/src/marketplace.el @@ -1,140 +1,119 @@ // components/marketplace.el - Marketplace section. // Explains the plugin marketplace - what it is, how it works, coming soon. -fn marketplace() -> String { - return
-
+extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_h3(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_button(attrs: String, label: String) -> String +extern fn el_form(attrs: String, children: String) -> String +extern fn el_label(for_id: String, attrs: String, children: String) -> String +extern fn el_input(type_attr: String, attrs: String) -> String +extern fn el_textarea(attrs: String, value: String) -> String +extern fn el_script_src(src: String, defer_load: Bool) -> String -
-
- - Marketplace -
Coming soon
-
+fn marketplace_svg1() -> String { + "" + + "" + + "" +} -

- Extend Neuron.Build for it. -

-

- Neuron does one thing exceptionally well: it knows you. The Marketplace extends what it can do with that knowledge - connecting it to your tools, your workflows, and capabilities built by people who understand your domain better than any general-purpose AI ever will. -

-
+fn marketplace_svg2() -> String { + "" + + "" + + "" +} -
+fn marketplace_svg3() -> String { + "" + + "" + + "" +} -
-
- -
-

Plugins that know you

-

Every plugin in the Marketplace has access to your memory - with your permission. A legal plugin knows your deal history. A coding plugin knows your architecture decisions. An email plugin knows your relationships and communication style. The context travels with you.

-
+fn marketplace_cards() -> String { + let card1: String = el_div( + "class=\"marketplace-card card-dark\"", + el_div("class=\"marketplace-card-icon\"", marketplace_svg1()) + + el_h3("class=\"display-md marketplace-card-title\"", "Plugins that know you") + + el_p("class=\"marketplace-card-body\"", "Every plugin in the Marketplace has access to your memory - with your permission. A legal plugin knows your deal history. A coding plugin knows your architecture decisions. An email plugin knows your relationships and communication style. The context travels with you.") + ) + let card2: String = el_div( + "class=\"marketplace-card card-dark\" style=\"transition-delay:120ms\"", + el_div("class=\"marketplace-card-icon\"", marketplace_svg2()) + + el_h3("class=\"display-md marketplace-card-title\"", "Built by domain experts") + + el_p("class=\"marketplace-card-body\"", "General AI is good at general things. The Marketplace is for specialists. The person building a plugin for contract attorneys or orthopedic surgeons or professional traders isn't us. It's someone who has spent years in that world. We give them the platform. They bring the depth.") + ) + let card3: String = el_div( + "class=\"marketplace-card card-dark\" style=\"transition-delay:240ms\"", + el_div("class=\"marketplace-card-icon\"", marketplace_svg3()) + + el_h3("class=\"display-md marketplace-card-title\"", "Revenue for builders") + + el_p("class=\"marketplace-card-body\"", "Developers earn recurring revenue when users install their plugins. We handle billing, distribution, and the infrastructure. You handle the product. Every plugin that ships earns you a share of every subscription for as long as that user stays. Build once, earn indefinitely.") + ) + el_div("class=\"marketplace-grid reveal\" style=\"transition-delay:200ms\"", card1 + card2 + card3) +} -
-
- -
-

Built by domain experts

-

General AI is good at general things. The Marketplace is for specialists. The person building a plugin for contract attorneys or orthopedic surgeons or professional traders isn't us. It's someone who has spent years in that world. We give them the platform. They bring the depth.

-
+fn marketplace_tags_block(label: String, tags: String) -> String { + el_div( + "style=\"margin-bottom:2rem\"", + el_p("class=\"label\" style=\"margin-bottom:1rem;color:var(--navy-65)\"", label) + + el_div("class=\"marketplace-tags\"", tags) + ) +} -
-
- -
-

Revenue for builders

-

Developers earn recurring revenue when users install their plugins. We handle billing, distribution, and the infrastructure. You handle the product. Every plugin that ships earns you a share of every subscription for as long as that user stays. Build once, earn indefinitely.

-
+fn marketplace_tag(t: String) -> String { + el_span("class=\"marketplace-tag\"", t) +} -
+fn marketplace_categories() -> String { + let connectors: String = + marketplace_tag("Gmail") + marketplace_tag("Slack") + marketplace_tag("Google Calendar") + marketplace_tag("Google Drive") + + marketplace_tag("Notion") + marketplace_tag("GitHub") + marketplace_tag("Linear") + marketplace_tag("More connectors at launch") + let following: String = + marketplace_tag("Process packets") + marketplace_tag("Knowledge packets") + let imprints: String = + marketplace_tag("CEO") + marketplace_tag("CTO") + marketplace_tag("CFO") + marketplace_tag("CMO") + marketplace_tag("COO") + marketplace_tag("More C-suite") -
+ el_div( + "class=\"marketplace-categories reveal\" style=\"transition-delay:320ms\"", + marketplace_tags_block("Connectors - day one", connectors) + + marketplace_tags_block("Following launch", following) + + el_div( + "", + el_p("class=\"label\" style=\"margin-bottom:1rem;color:var(--navy-65)\"", "Imprints - starting with") + + el_div("class=\"marketplace-tags\"", imprints) + ) + ) +} -
-

Connectors - day one

-
- Gmail - Slack - Google Calendar - Google Drive - Notion - GitHub - Linear - More connectors at launch -
-
+fn marketplace_dev_form() -> String { + let input_style: String = "class=\"dev-input\"" + let field_name: String = el_div( + "class=\"dev-field\"", + el_label("dev-name", "class=\"dev-label\"", "Name") + + el_input("text", "id=\"dev-name\" required placeholder=\"Your name\" " + input_style) + ) + let field_email: String = el_div( + "class=\"dev-field\"", + el_label("dev-email", "class=\"dev-label\"", "Email") + + el_input("email", "id=\"dev-email\" required placeholder=\"you@example.com\" " + input_style) + ) + let field_idea: String = el_div( + "class=\"dev-field dev-field-full\"", + el_label("dev-idea", "class=\"dev-label\"", "What do you want to build?") + + el_textarea("id=\"dev-idea\" required rows=\"5\" placeholder=\"Tell me about the plugin or integration you have in mind...\" class=\"dev-input dev-textarea\"", "") + ) + let submit_row: String = el_div( + "class=\"dev-field-full\"", + el_button("type=\"submit\" class=\"btn-primary\"", "Send interest →") + + el_p("id=\"dev-msg\" style=\"font-family:var(--body);font-size:0.8rem;color:var(--t3);margin-top:0.75rem;display:none\"", "") + ) + el_form("id=\"dev-form\" class=\"dev-form-grid\"", field_name + field_email + field_idea + submit_row) +} -
-

Following launch

-
- Process packets - Knowledge packets -
-
- -
-

Imprints - starting with

-
- CEO - CTO - CFO - CMO - COO - More C-suite -
-
- -
- -
-
-
-

Building something?

-

The developer program opens before the Marketplace does. If you're interested in building a plugin, get in touch early - early developers shape the API.

-
- -
-
- -
- - - - - - - - -
+ .dev-textarea { resize: vertical; min-height: 120px; }" + "" +} + +fn marketplace() -> String { + let header: String = el_div( + "class=\"marketplace-header\"", + el_div( + "class=\"marketplace-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0\"", "") + + el_span("class=\"label\" style=\"color:var(--navy-85)\"", "Marketplace") + + el_div("style=\"margin-left:1rem;background:rgba(0,82,160,.1);color:var(--navy);font-family:var(--body);font-size:0.65rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;padding:0.25rem 0.75rem;border-radius:2px\"", "Coming soon") + ) + + el_h2( + "class=\"display-lg reveal\" style=\"transition-delay:80ms;max-width:38rem\"", + "Extend Neuron." + el_span("class=\"gold\" style=\"display:block\"", "Build for it.") + ) + + el_p("class=\"reveal\" style=\"transition-delay:160ms;font-weight:300;font-size:.9375rem;color:var(--t2);line-height:1.75;max-width:36rem;margin-top:1.25rem\"", + "Neuron does one thing exceptionally well: it knows you. The Marketplace extends what it can do with that knowledge - connecting it to your tools, your workflows, and capabilities built by people who understand your domain better than any general-purpose AI ever will." + ) + ) + + let cta: String = el_div( + "class=\"marketplace-cta reveal\" style=\"transition-delay:400ms\"", + el_div( + "class=\"marketplace-cta-inner\"", + el_div( + "", + el_p("style=\"font-family:var(--body);font-weight:500;font-size:1rem;color:var(--t1);margin-bottom:0.5rem\"", "Building something?") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.6\"", + "The developer program opens before the Marketplace does. If you're interested in building a plugin, get in touch early - early developers shape the API." + ) + ) + + el_button( + "onclick=\"document.getElementById('developer-interest').style.display='block';document.getElementById('developer-interest').scrollIntoView({behavior:'smooth',block:'start'});this.style.display='none';\" class=\"btn-ghost\" style=\"white-space:nowrap;flex-shrink:0\"", + "Developer interest →" + ) + ) + ) + + let dev_section: String = el_div( + "id=\"developer-interest\" class=\"container\" style=\"display:none;margin-top:4rem;padding-top:4rem;border-top:1px solid rgba(0,82,160,.10)\"", + el_div( + "style=\"max-width:42rem\"", + el_p("class=\"label\" style=\"margin-bottom:0.75rem;color:var(--navy-85)\"", "Developer Program") + + el_h3("style=\"font-family:var(--display);font-size:1.75rem;font-weight:400;color:var(--t1);letter-spacing:-0.01em;margin-bottom:1rem;line-height:1.2\"", "Get early access") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.9rem;color:var(--t2);line-height:1.75;margin-bottom:2.5rem\"", + "The developer program opens before the Marketplace does. Early developers shape the plugin API. Tell me what you want to build." + ) + + marketplace_dev_form() + ) + ) + + el_section( + "id=\"marketplace\" aria-label=\"Neuron Marketplace\"", + el_div("class=\"container\"", header + marketplace_cards() + marketplace_categories() + cta) + + dev_section + + el_script_src("/js/marketplace.js", true) + + marketplace_style() + ) } diff --git a/src/mission.el b/src/mission.el index 3151fa2..214274d 100644 --- a/src/mission.el +++ b/src/mission.el @@ -1,91 +1,130 @@ // components/mission.el - Origin story + manifesto + problems grid. +extern fn el_section(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_h2(attrs: String, text: String) -> String +extern fn el_p(attrs: String, children: String) -> String +extern fn el_strong(children: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String + fn mission() -> String { - return
-
+ let label_row: String = el_div( + "class=\"mission-label-row reveal\"", + el_div("class=\"navy-line-left\" style=\"width:4rem;flex-shrink:0\"", "") + + el_span("class=\"label\"", "The mission") + + el_div("style=\"height:1px;width:4rem;background:linear-gradient(to left,transparent,rgba(0,82,160,.35));flex-shrink:0\"", "") + ) - + let origin: String = el_div( + "class=\"mission-origin\"", + label_row + + el_h2("class=\"display-lg mission-headline reveal\" style=\"transition-delay:80ms\"", "Why I built this") + + el_p("class=\"mission-body-para reveal\" style=\"transition-delay:160ms\"", + "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." + ) + + el_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." + ) + + el_p("class=\"mission-body-para mission-body-emphasis reveal\" style=\"transition-delay:320ms\"", + "Neuron is private by design. It runs on your hardware. " + + el_strong("Your data never leaves your machine.") + + " No training on your data. No telemetry. No cloud dependency." + ) + + el_p("class=\"mission-body-para reveal\" style=\"transition-delay:400ms\"", + "This isn't a chat interface. It's the AI that becomes yours." + ) + ) -
-
- - The mission -
-
-

Why I built this

+ let bigtech: String = el_div( + "class=\"mission-bigtech reveal\" style=\"transition-delay:600ms\"", + el_p("class=\"mission-bigtech-label\"", "Why I built this on my own") + + el_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 benchmarks with full auditability. Some of their own people understood immediately what it meant." + ) + + el_p("", + "They saw it. Seemed to engage meaningfully. Then, within two days, lawyers were involved. I decided to just finish the project on my own." + ) + + el_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 - the people whose lives those enterprises touch - didn't enter the conversation." + ) + + el_p("class=\"muted\"", + "That's the difference. " + + "They're optimizing for the enterprise. I'm building for the people those enterprises are supposed to serve." + ) + + el_p("", + "I told them I could build and distribute this by myself. Maybe they didn't believe me. That meeting was April 22nd, 2026. I'm writing this on April 25th. You're looking at the proof. " + + el_a("/checkout?plan=founding", "", "I hope you'll preorder it.") + ) + ) -

- 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. -

-

- 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. -

-

- Neuron is private by design. It runs on your hardware. Your data never leaves your machine. No training on your data. No telemetry. No cloud dependency. -

-

- This isn't a chat interface. It's the AI that becomes yours. -

-
+ let problem1: String = el_div( + "class=\"problem-item reveal\"", + el_p("class=\"problem-label\"", "Synthetic media without accountability") + + el_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.") + ) + let problem2: String = el_div( + "class=\"problem-item reveal\" style=\"transition-delay:120ms\"", + el_p("class=\"problem-label\"", "Epistemic collapse") + + el_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.") + ) + let problem3: String = el_div( + "class=\"problem-item reveal\" style=\"transition-delay:240ms\"", + el_p("class=\"problem-label\"", "Concentration of inference") + + el_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.") + ) + let problem4: String = el_div( + "class=\"problem-item reveal\" style=\"transition-delay:360ms\"", + el_p("class=\"problem-label\"", "The accountability gap") + + el_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.") + ) -
-

Why I built this on my own

-

- 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 benchmarks with full auditability. Some of their own people understood immediately what it meant. -

-

- They saw it. Seemed to engage meaningfully. Then, within two days, lawyers were involved. I decided to just finish the project on my own. -

-

- 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 - the people whose lives those enterprises touch - didn't enter the conversation. -

-

- That's the difference. They're optimizing for the enterprise. I'm building for the people those enterprises are supposed to serve. -

-

- I told them I could build and distribute this by myself. Maybe they didn't believe me. That meeting was April 22nd, 2026. I'm writing this on April 25th. You're looking at the proof. I hope you'll preorder it. -

-
+ let problems_grid: String = el_div( + "class=\"problems-grid\"", + problem1 + problem2 + problem3 + problem4 + + el_div("class=\"problems-grid-bottom\"", "") + ) -
-
-
- What I'm building against -
+ let closer: String = el_div( + "class=\"mission-closer reveal\"", + el_p("", "The industry built tools to make AI easier to use. " + + el_span("", "I'm building tools to make it safer to trust.") + ) + ) -
-
-

Synthetic media without accountability

-

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.

-
-
-

Epistemic collapse

-

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.

-
-
-

Concentration of inference

-

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.

-
-
-

The accountability gap

-

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.

-
-
-
+ let commitment: String = el_div( + "class=\"reveal\" style=\"max-width:44rem;margin-top:3.5rem;padding:2rem 2.5rem;border-left:3px solid rgba(0,82,160,.30);background:rgba(0,82,160,.02)\"", + el_p("style=\"font-family:var(--body);font-weight:500;font-size:1rem;color:var(--t1);margin-bottom:1rem\"", "Nobody's perfect.") + + el_p("style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\"", + "Neuron isn't either. There is a gap between what the AI industry is delivering and what the world actually needs. Bridging that gap is the work - not a one-time product release, but continuous work, done in the open, built on the trust that users place in it." + ) + + el_p("style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--navy);line-height:1.6\"", + "That's my commitment. To keep working. To be honest about the problems. To build something that earns trust by doing the hard things right." + ) + ) -
-

The industry built tools to make AI easier to use. I'm building tools to make it safer to trust.

-
+ let sub_row: String = el_div( + "class=\"mission-sub-row reveal\"", + el_div("class=\"mission-sub-line\"", "") + + el_span("class=\"label\"", "What I'm building against") + ) -
-

Nobody's perfect.

-

Neuron isn't either. There is a gap between what the AI industry is delivering and what the world actually needs. Bridging that gap is the work - not a one-time product release, but continuous work, done in the open, built on the trust that users place in it.

-

That's my commitment. To keep working. To be honest about the problems. To build something that earns trust by doing the hard things right.

-
+ let problems: String = el_div( + "class=\"mission-problems\"", + sub_row + problems_grid + closer + commitment + ) -
+ let bottom_line: String = el_div( + "class=\"container\" style=\"margin-top:5rem\"", + el_div("class=\"navy-line\"", "") + ) -
-
-
+ el_section( + "id=\"mission\" aria-label=\"Mission\"", + el_div( + "class=\"container\"", + el_div("class=\"navy-line\" style=\"margin-bottom:5rem\"", "") + + origin + bigtech + problems + ) + bottom_line + ) } diff --git a/src/nav.el b/src/nav.el index 972611e..fd69297 100644 --- a/src/nav.el +++ b/src/nav.el @@ -3,52 +3,72 @@ // Responsive: desktop shows full link bar, ≤1060px collapses to hamburger. // Hamburger toggles .nav-mobile panel. Closes on link click or outside click. +extern fn el_nav(attrs: String, children: String) -> String +extern fn el_div(attrs: String, children: String) -> String +extern fn el_a(href: String, attrs: String, children: String) -> String +extern fn el_img(src: String, alt: String, attrs: String) -> String +extern fn el_button(attrs: String, label: String) -> String +extern fn el_span(attrs: String, children: String) -> String +extern fn el_script_src(src: String, defer_load: Bool) -> String + fn nav() -> String { - return + let hamburger_spans: String = + el_span("", "") + + el_span("", "") + + el_span("", "") + let hamburger: String = el_button( + "class=\"nav-hamburger\" id=\"nav-hamburger\" aria-label=\"Open navigation\" aria-expanded=\"false\" aria-controls=\"nav-mobile\"", + hamburger_spans + ) + + let nav_mobile: String = el_div( + "class=\"nav-mobile\" id=\"nav-mobile\" role=\"navigation\" aria-label=\"Mobile navigation\"", + el_a("/#how-it-works", "class=\"nav-mobile-link\"", "How it works") + + el_a("/#enterprise", "class=\"nav-mobile-link\"", "Enterprise") + + el_a("/#mission", "class=\"nav-mobile-link\"", "Mission") + + el_a("/#safety", "class=\"nav-mobile-link\" style=\"padding-left:1.75rem;font-size:0.8rem;color:var(--t3)\"", "- Safety") + + el_a("/#environmental", "class=\"nav-mobile-link\" style=\"padding-left:1.75rem;font-size:0.8rem;color:var(--t3)\"", "- Environment") + + el_a("/#marketplace", "class=\"nav-mobile-link\"", "Marketplace") + + el_a("/#pricing", "class=\"nav-mobile-link\"", "Pricing") + + el_a("/about", "class=\"nav-mobile-link\"", "About") + + el_a("/said", "class=\"nav-mobile-link\"", "Gallery") + + el_a("/account", "class=\"nav-mobile-link\"", "Account") + + el_a("/#pricing", "class=\"nav-mobile-cta\"", "Get Access") + ) + + let nav_inner: String = el_div("class=\"nav-inner\"", logo + nav_links + hamburger + nav_mobile) + + el_nav("id=\"nav\"", nav_inner + el_script_src("/js/nav.js", true)) } diff --git a/src/pillars.el b/src/pillars.el index 9538684..66d152a 100644 --- a/src/pillars.el +++ b/src/pillars.el @@ -4,40 +4,50 @@ // Cards use reveal animation class (CSS IntersectionObserver polyfill // provided by a tiny inline