Skip to content

[Improve] Show richer static titles for shared app links#479

Merged
brunobergher merged 2 commits into
developfrom
improve/static-page-metadata-27chsu7plkuit
Jul 17, 2026
Merged

[Improve] Show richer static titles for shared app links#479
brunobergher merged 2 commits into
developfrom
improve/static-page-metadata-27chsu7plkuit

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Opened on behalf of Bruno Bergher. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

Shared links into the product app now resolve to short static page titles and one-line descriptions instead of the generic global fallback:

  • Task routes → Roomote Task
  • Any settings page → Roomote Settings
  • Task history (/tasks) → Roomote Task History
  • Sign in → Roomote Log In
  • Invite sign-up (/sign-in?invited=… and canVisitorSignUp()) → Roomote Sign up
  • /setupRoomote Setup
  • /onboardingRoomote Onboarding

Titles and descriptions are privacy-safe static strings (no task names or other dynamic data). Open Graph / Twitter images are intentionally omitted. Sign-up metadata now uses the same eligibility gate as the form, so a stale or fabricated invite query alone cannot flip the title to Roomote Sign up.

Why this change was made

Link previews for almost every web-app URL previously collapsed to Roomote / Cloud management for Roomote., which was too thin for sharing. We wanted slightly richer previews without leaking private work context through shared titles, and title mode should stay consistent with what the sign-in form is actually allowed to show.

Impact

When someone pastes a task, settings, history, auth, setup, or onboarding URL, crawlers and chat unfurl paths that read HTML metadata get a clearer static title and description. No OG images are generated, and no task- or user-specific content is exposed through metadata.

Use privacy-safe static titles and descriptions across key app routes so shared links no longer fall back to the generic product metadata.
@roomote-roomote

roomote-roomote Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

No new code issues found. See task

  • apps/web/src/app/(unauthenticated)/sign-in/[[...sign-in]]/page.tsx:28 derives sign-up metadata from the invited query alone, but the form only enters sign-up mode when canVisitorSignUp() is also true. An expired or fabricated ?invited=1 URL therefore renders the sign-in form under a Roomote Sign up title; base the metadata decision on the same eligibility check as the form.

Reviewed 1a9a462

@brunobergher
brunobergher marked this pull request as ready for review July 17, 2026 09:01
@roomote-roomote

roomote-roomote Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in 1a9a462.

generateMetadata now bootstraps auth config, calls canVisitorSignUp(), and only emits Roomote Sign up when eligibility is true and invited is present — same gate as the form’s default mode. Otherwise it stays Roomote Log In.

Only emit Roomote Sign up titles when canVisitorSignUp() and invit structs match the form defaultMode, so outdated invite query params no longer mislabel the sign-in surface.
@brunobergher
brunobergher merged commit 9fce7a0 into develop Jul 17, 2026
17 checks passed
@brunobergher
brunobergher deleted the improve/static-page-metadata-27chsu7plkuit branch July 17, 2026 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants