feat(web): add downloads page and wire account download card
The funnel dead-ended at "we'll email you" — there was no downloads
surface. Add a real /downloads page in the landing template style
(shared nav + footer + page shell) with client-side navigator.platform
OS detection. macOS (Apple Silicon .dmg) is featured as the shipping
build; Windows (.msi) and Linux (.deb/.AppImage) are linked but clearly
marked "coming soon" to match current product state — Windows chat and
the Linux soul backend are not yet ready, so presenting them as fully
working would overpromise.
Also un-break the account dashboard download card, which was hardcoded
disabled ("Shipping within 30 days"). It now links the live macOS
installer plus the full /downloads page.
This commit is contained in:
+10
@@ -87,6 +87,7 @@ from checkout import { checkout_page }
|
||||
from safety import { safety }
|
||||
from gallery import { gallery_page }
|
||||
from account import { account_page }
|
||||
from downloads import { downloads_page }
|
||||
|
||||
// ── Share-card HTML allowlist ─────────────────────────────────────────────────
|
||||
//
|
||||
@@ -1971,6 +1972,15 @@ fn handle_request_inner(method: String, path: String, headers: Map, body: String
|
||||
) + badge_css + success_body + page_close()
|
||||
}
|
||||
|
||||
// ── Downloads ─────────────────────────────────────────────────────────────
|
||||
// Public installer page. macOS ships today; Windows/Linux linked but marked
|
||||
// coming soon. Live-rendered like /about (page shell wraps downloads_page()).
|
||||
if str_starts_with(path, "/downloads") {
|
||||
let dl_title: String = "Download Neuron - macOS, Windows & Linux"
|
||||
let dl_desc: String = "Download Neuron for macOS. Your AI that remembers you, running on your own machine. Windows and Linux support is on the way."
|
||||
return page_open_seo(dl_title, dl_desc, "/downloads", dl_desc, "false") + downloads_page() + page_close()
|
||||
}
|
||||
|
||||
// ── Account dashboard ─────────────────────────────────────────────────────
|
||||
// Use prefix match so OAuth/email-confirmation redirects with query strings still hit.
|
||||
if str_starts_with(path, "/account") {
|
||||
|
||||
Reference in New Issue
Block a user