You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(website): describe the product on /download, not just on the landing page
/download carried only the site-wide Organization and WebSite pair, so the
one URL we want ranking for "openscreen download" said nothing about the
software it serves.
It now emits a @graph: a WebPage node that is part of the site-wide WebSite
and whose about/mainEntity is the product, plus the SoftwareApplication
itself. Referencing #software without defining it would have left a dangling
pointer with nothing for a crawler to attach to this URL, so the entity is
emitted here too — not duplication, since the shared @id makes both copies
one entity rather than two competing ones. Docs pages still get neither.
The node moves to src/lib/structured-data.ts so the two pages cannot drift,
and the download page's copy carries softwareVersion and datePublished off
the build-time release lookup it already reads. That needs the release date
in schema.org's Date form, hence publishedIso alongside the display string.
Verified against the production build: tsc and biome clean, all four nodes
present in the served DOM with no hydration errors, landing page output
unchanged.
"Free, open-source screen recorder and video editor. Native capture on macOS and Windows, multi-track timeline editing, on-device Whisper captions, and MP4/GIF export — no watermarks, no subscription, no account.",
31
+
url: SITE_URL,
32
+
// Our own page rather than the Releases list: it is the URL we want ranking
33
+
// for "openscreen download", and it routes to GitHub from there anyway.
// Shared by <Layout> and the WebPage node below so the two cannot drift: a
25
+
// structured-data description that contradicts the meta one is worse than none.
26
+
constPAGE_TITLE="Download for Windows, macOS & Linux";
27
+
constPAGE_DESCRIPTION=
28
+
"Download OpenScreen free for Windows, macOS, and Linux — .dmg, .exe, .deb, .pacman, AppImage, and a Nix flake. Open source, no account, no watermark.";
description="Download OpenScreen free for Windows, macOS, and Linux — .dmg, .exe, .deb, .pacman, AppImage, and a Nix flake. Open source, no account, no watermark."
// The product entity, distinct from the Organization/WebSite pair in
29
-
// docusaurus.config.ts. `offers` at price 0 is what lets a result carry a
30
-
// "Free" annotation; omitting it on a free app just forfeits the label.
31
-
constSOFTWARE_APPLICATION_LD={
32
-
"@context": "https://schema.org",
33
-
"@type": "SoftwareApplication",
34
-
"@id": "https://getopenscreen.com/#software",
35
-
name: "OpenScreen",
36
-
applicationCategory: "MultimediaApplication",
37
-
applicationSubCategory: "Screen Recorder",
38
-
operatingSystem: "Windows, macOS, Linux",
39
-
description:
40
-
"Free, open-source screen recorder and video editor. Native capture on macOS and Windows, multi-track timeline editing, on-device Whisper captions, and MP4/GIF export — no watermarks, no subscription, no account.",
41
-
url: "https://getopenscreen.com",
42
-
// Our own page rather than the Releases list: it is the URL we want ranking
43
-
// for "openscreen download", and it routes to GitHub from there anyway.
title="Free open-source screen recorder & video editor"
68
33
description="OpenScreen is a free, open-source screen recorder and video editor for Windows, macOS, and Linux — native capture, on-device captions, no watermarks."
0 commit comments