Add public Let's Chat landing page with mascot + bird brand icons #448

Merged
vas2000-work merged 3 commits from feat/LC-470-landing-page into main 2026-06-26 04:19:02 +02:00
Owner

Adds a public marketing landing page for Let's Chat, served at / to logged-out visitors (authenticated users still go straight to the chat home). Mirrors the Bunyip / Mokosh landing pattern.

What's in it:

  • New public landing: hero with the messenger-bird mascot + "Talk on your own terms." tagline pill, a four-card feature grid (real-time, self-hosted/private, voice+video, threads/search/email-in), a CTA band, and a footer, all behind a "Sign in with Bunyip" CTA. The / handler now uses OptionalUser; anonymous requests render the new LandingPage (landing.html), authed requests are unchanged.
  • Let's Chat bird mascot + rebranded icons: favicon.svg (transparent, centered) and the unread-mention favicon-dot.svg (bird + red dot), PWA icon-192/512 + maskable, and the nav/footer logo. Hero keeps the speech-bubble bird; nav/tab/app icons use the clean no-bubble bird.
  • Self-hosted Nunito woff2 for the wordmark (no external CDN).
  • base.html gains a body_class block so the landing scrolls; the app shell stays h-screen overflow-hidden.
  • README gains the suite brand line and points its hero image at the mascot.

Notes:

  • Operators can still override the favicon/logo via the existing branding upload; these are only the bundled defaults.
  • sw.js precaches the favicon/icons by plain path, so the service-worker cache version must bump on deploy to pick up the new bytes (the <link> tags already carry ?v=asset_version).
  • Desktop bundle icons (desktop/icons/*) are unchanged (separate from the web icon set).

#LC-470

Adds a public marketing landing page for Let's Chat, served at / to logged-out visitors (authenticated users still go straight to the chat home). Mirrors the Bunyip / Mokosh landing pattern. What's in it: - New public landing: hero with the messenger-bird mascot + "Talk on your own terms." tagline pill, a four-card feature grid (real-time, self-hosted/private, voice+video, threads/search/email-in), a CTA band, and a footer, all behind a "Sign in with Bunyip" CTA. The `/` handler now uses `OptionalUser`; anonymous requests render the new `LandingPage` (`landing.html`), authed requests are unchanged. - Let's Chat bird mascot + rebranded icons: `favicon.svg` (transparent, centered) and the unread-mention `favicon-dot.svg` (bird + red dot), PWA `icon-192/512` + maskable, and the nav/footer logo. Hero keeps the speech-bubble bird; nav/tab/app icons use the clean no-bubble bird. - Self-hosted Nunito woff2 for the wordmark (no external CDN). - `base.html` gains a `body_class` block so the landing scrolls; the app shell stays `h-screen overflow-hidden`. - README gains the suite brand line and points its hero image at the mascot. Notes: - Operators can still override the favicon/logo via the existing branding upload; these are only the bundled defaults. - `sw.js` precaches the favicon/icons by plain path, so the service-worker cache version must bump on deploy to pick up the new bytes (the `<link>` tags already carry `?v=asset_version`). - Desktop bundle icons (`desktop/icons/*`) are unchanged (separate from the web icon set). #LC-470
feat(landing): add public marketing landing page with mascot and bird brand icons
Some checks failed
check-secrets / Nosey parker (push) Successful in 3s
check-secrets / TruffleHog (push) Successful in 10s
check-secrets / Kingfisher (push) Failing after 12s
check-secrets / Kingfisher (pull_request) Failing after 4s
check-secrets / TruffleHog (pull_request) Successful in 5s
check-secrets / Nosey parker (pull_request) Successful in 5s
Check / clippy + fmt + tests (pull_request) Has been cancelled
b6a4261527
Adds a public marketing landing page served at `/` to logged-out visitors (authenticated users still go straight to the chat home). The `/` handler now uses the `OptionalUser` extractor and renders a new `LandingPage` (Askama `landing.html`) for anonymous requests: a hero with the messenger-bird mascot and the "Talk on your own terms." tagline pill, a four-card feature grid, a CTA band, and a footer, all behind a "Sign in with Bunyip" call to action. Mirrors the Bunyip and Mokosh landing pattern.

Introduces the Let's Chat bird mascot and rebrands the icon set off it: `favicon.svg` and the unread-mention `favicon-dot.svg` variant, the PWA `icon-192/512` and maskable icon, and the nav/footer logo. The hero keeps the speech-bubble bird; the nav, tab favicon, and app icons use the clean no-bubble bird, centered and filling each square. The wordmark uses a self-hosted Nunito woff2 (no external CDN, to keep the app self-contained).

`base.html` gains a `body_class` block so the landing can scroll (the app shell stays `h-screen overflow-hidden`). README gains the suite brand line (mascot + tagline) and its hero image points at the new mascot.

Operators can still override the favicon and logo via the existing branding upload; these are only the bundled defaults.

#LC-470

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(landing): use lets-chat.png for the README banner image
Some checks failed
check-secrets / Nosey parker (push) Successful in 3s
check-secrets / Nosey parker (pull_request) Successful in 4s
check-secrets / Kingfisher (pull_request) Failing after 6s
check-secrets / TruffleHog (pull_request) Successful in 7s
check-secrets / Kingfisher (push) Failing after 11s
check-secrets / TruffleHog (push) Successful in 12s
Check / clippy + fmt + tests (pull_request) Has been cancelled
fbdd9e0572
Renames the README hero image to the repo's existing hyphenated convention (lets-chat.png) and drops the redundant letschat.png. The image is the messenger-bird mascot banner; README copy and the app assets are unchanged.

#LC-470

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(readme): restore the original screenshot as the README image
Some checks failed
check-secrets / Nosey parker (push) Successful in 3s
check-secrets / Kingfisher (push) Failing after 5s
check-secrets / TruffleHog (push) Successful in 5s
check-secrets / Nosey parker (pull_request) Successful in 4s
check-secrets / TruffleHog (pull_request) Successful in 11s
check-secrets / Kingfisher (pull_request) Failing after 13s
Check / clippy + fmt + tests (pull_request) Successful in 2m50s
Create release / Create release from merged PR (pull_request) Has been skipped
856d56e4fc
Reverts the README hero image back to the original lets-chat.png screenshot; the messenger-bird mascot stays in the app (hero, nav, favicon, icons) but is no longer used as the README banner.

#LC-470

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
vas2000-work deleted branch feat/LC-470-landing-page 2026-06-26 04:19:02 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!448
No description provided.