diff --git a/apps/server/src/static/web.ts b/apps/server/src/static/web.ts index 9833ed7d5..df2cb4fed 100644 --- a/apps/server/src/static/web.ts +++ b/apps/server/src/static/web.ts @@ -60,8 +60,9 @@ const BASE_SECURITY_HEADERS = { }; const ROOT_TITLE = "Reactive Resume — A free and open-source resume builder"; +// Keep under ~120 characters so Google's mobile SERP snippet is not truncated at 3 lines. const ROOT_DESCRIPTION = - "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."; + "Free, open-source resume builder. Create, update, and share a professional resume in minutes — no ads, no paywall."; const ROOT_POSTER_PATH = "/videos/timelapse-v1.webp"; const ROOT_FAQ_ITEMS = [ { diff --git a/apps/web/index.html b/apps/web/index.html index 8ae633e64..e5d305ce0 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -9,7 +9,8 @@ - + + diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx index 689f16dc7..e3586bb5c 100644 --- a/apps/web/src/routes/__root.tsx +++ b/apps/web/src/routes/__root.tsx @@ -43,8 +43,9 @@ type RouterContext = { const appName = "Reactive Resume"; const tagline = "A free and open-source resume builder"; const title = `${appName} — ${tagline}`; +// Keep under ~120 characters so Google's mobile SERP snippet is not truncated at 3 lines. const description = - "Reactive Resume is a free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume."; + "Free, open-source resume builder. Create, update, and share a professional resume in minutes — no ads, no paywall."; const iconContextValue: IconProps = { size: 16, weight: "regular" }; export const Route = createRootRouteWithContext()({