Commit Graph

7 Commits

Author SHA1 Message Date
Will Anderson 609a123012 assets: serve social icons locally, remove simpleicons CDN dependency
LinkedIn, X, Facebook, WhatsApp, TikTok, Snapchat icons now served from
/assets/social/ instead of cdn.simpleicons.org. LinkedIn uses the official
brand PNG from Downloads; remaining icons are scraped SVGs.
2026-05-02 15:11:38 -05:00
Will Anderson ccbe243eab share: render markdown + preview-before-publish + soul-history probe
Share card now displays the AI bubble's marked-rendered HTML (after
basic tag allowlist sanitization) instead of escaped plaintext.
Markdown bold, lists, code, headers all show.

Share click in chat now opens a preview modal. Publishing to the
gallery only happens when the user explicitly clicks Publish in the
modal - removes the click-and-immediately-public surprise.
2026-05-02 12:11:12 -05:00
Will Anderson b76c0c995a swap simpleicons silhouettes for actual brand marks on comparison table 2026-05-02 11:30:14 -05:00
Will Anderson 640813e42e migrate stage build to native elc; chat restores from localStorage on return
Build pipeline
- build-stage.sh replaces the old in-Dockerfile bootstrap.py path. Host
  pre-compiles src/*.el into dist/main.c via the canonical native elc at
  foundation/el/dist/platform/elc and applies the stub-decl sed before
  docker buildx runs.
- Dockerfile.stage drops bootstrap.py + python3 from the builder stage
  and just runs cc on the host-supplied dist/main.c.
- Pre-rendered HTML shells under /srv/landing/ are now chowned to the
  landing user so the El page-builder's fs_write at startup can rewrite
  them — without that, post-COPY edits never reach the served HTML and
  the served page stays as the stale build-time fallback.

Chat restore
- session.verified + session.verifiedAt persist through localStorage so
  a return visit within 24h skips the Turnstile gate and lands directly
  in the restored conversation.
- restoreOrGreet() is the single source of truth for what shows up in
  the message pane after the gate clears: replays prior messages with
  skipSave, else drops the canned hello once and remembers it.
- applyVerifiedDom() hides the gate / reveals the chat row, called both
  from the verified-on-load path (DOMContentLoaded if loading, else
  immediate) and from the Turnstile callback.
- neuronDemoReset clears verified + verifiedAt so the gate returns next
  open.

Extracted JS assets (src/assets/js/*.js + manifest.json) and the
extract-js.py helper land here too — they match what the new build-stage
flow produces and removes the inline <script> blobs from the served HTML.
2026-05-02 11:15:09 -05:00
Will Anderson ff1f9577db Add marketplace section, OAuth checkout, social icons, 35% efficiency claim, preorder CTAs, enterprise Q1 2027, founding member limits, paragraph spacing in demo chat, no em dashes 2026-05-01 09:20:45 -05:00
Will Anderson 1d8143cdbc Rewrite landing to El component architecture
Full El component split: nav, hero, pillars, inference, pricing, footer, about,
enterprise, mission, viral, local_first, comparison, efficiency, environmental.

- About page rewritten first-person (Will's voice), photo included, no product spoilers
- Stripe checkout wired: env() reads STRIPE_SECRET_KEY/PRICE_* at startup
- Minor parent-onboarding callout added to pricing section
- Inference pricing: "at cost" removed, now "priced below competitors"
- Nav: wordmark image, About link active on /about
- .gitignore: excludes .env, dist/, generated HTML
2026-04-29 16:21:08 -05:00
Will Anderson e5a5666dd7 initial commit — Neuron landing page
Bubble-style chat UI, return visit memory replay, values section,
favicon, Neuron-generated email bodies, 3-question return flow.
2026-04-28 17:57:30 -05:00