Public homepage, pricing, privacy, changelog, and SEO (#117)
## Summary - Logged-out `/` is a public landing page. Signed-in `/` still opens chat. - Adds `/pricing/`, `/privacy/`, and `/changelog/`, plus header and footer links. - Primary path is **Create account** when registration is on, and an email **waitlist** when it is off. - Titles, canonicals, Organization and Product JSON-LD, `sitemap.xml`, `robots.txt`, and `llms.txt`. - Usage counts render only from `GET /api/public/usage/`. No avatars. No founder block. No testimonials. - Closes #113, #114, #115, and #116. Needs [chat_backend#75](https://git.aimloperations.com/ai_ml_operations/chat_backend/pulls) for the waitlist and usage API, and the server-infra crawler-file change so those root files are not the SPA shell. The account and document numbers in the screenshots come from a local mock of the usage API, not production. ## Screenshots ### Landing, registration off  ### Landing, mobile  ### Landing, registration on  ### Pricing  ### Privacy  ### Changelog  ### Sign in unchanged  ## Test plan - [x] `react-scripts test` — 234 passed - [ ] Incognito `/` shows the landing page, not Sign In - [ ] Signed-in `/` still opens chat - [ ] `/account/` still redirects to `/signin/` when logged out - [ ] Waitlist POST and usage GET against the new API - [ ] `/robots.txt`, `/sitemap.xml`, and `/llms.txt` return plain text, not HTML Reviewed-on: #117
No files matched your search
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 118 KiB |